[Catalog Icon]

Computer Science


College of Integrated Science and Technology

CS 100. Introduction to BASIC. 1 credit.

Introduction to the programming language BASIC.

CS/MATH 101. Introduction to FORTRAN. 1 credit.

Introduction to the programming language FORTRAN. Recommended for students who desire a short course in FORTRAN. This course is not open to students who have previously earned credit in CS/MATH 248 or equivalent.

CS 138. Introduction to Computer Programming (3, 2). 4 credits.

Introduction to computer programming in a high level, structured programming language. This course is intended for those not majoring in computer science, mathematics or physics. Not open to students who have previously earned credit in CS 238.

CS 238. Digital Computer Programming (3, 2). 4 credits.

Top-down development of algorithms in a high level, structured programming language.

CS 239. Advanced Programming and Data Structures (3, 2). 4 credits.

Introduction to data structures through the design and implementation of moderately large computer programs. Top-down and bottom-up design. Abstract data types. Stacks, queues, tables, character strings, linked lists and binary trees, hashing, sorting and recursion. Static and dynamic memory allocations. Prerequisite: CS 238 with a grade of "C" or better.

CS/MATH 248. Computer Methods in Engineering and Science (3, 2). 4 credits.

Programming in a high-level computer language such as BASIC or FORTRAN. Use of the computer to solve problems in areas basic to numerical work in engineering and science. Prerequisite: MATH 206 or 236. This course is not open to students who have previously earned credit in CS/MATH 448.

CS/MATH 252. Discrete Structures. 3 credits.

Introduction to the mathematical structures used in computer science. Topics include logic and set theory, algebraic structures, automata theory and computability. Prerequisite or corequisite: CS 238, CS/MATH 248 or equivalent.

CS 280. Projects in Computer Science. 1-3 credits.

Projects or topics in computer science which are of interest to the lower division student. May be repeated for credit when course content changes. Projects or topics selected may dictate prerequisites. Students should consult the instructor prior to enrolling for the course.

CS 350. Computer Organization and Assembly Language (3, 2). 4 credits.

Principles of hierarchic computer organization. Hardware, including registers, busses and arithmetic logic units. Microprogramming and machine language. Machine instruction sets, addressing techniques, input/output processing and interrupt handling. Introduction to assembly language programming, interpretation, translation and macro processing. Prerequisite: CS 239.

CS 351. Operating Systems (3, 2). 4 credits.

Systems programming and operating systems. Network environments, windowing environments, user interfaces. Memory management, process management, file system management and device management. Prerequisite: CS 350.

CS 352. Design and Analysis of Algorithms (3, 2). 4 credits.

An introduction to the analysis, design and theory of algorithms. Algorithms studied will be selected from searching, sorting, graph theory, etc. Prerequisite: CS 239, CS/MATH 252 and MATH 318.

CS 355. Programming Languages (3, 2). 4 credits.

Several actual programming languages are studied in terms of the fundamental principles of computer programming language design, including object oriented programming, functional programming, concurrent programming and logic programming. Prerequisite: CS 350.

CS 365. File Structures. 3 credits.

The development of computer software that manipulates permanent data structures stored on bulk storage devices by using the facilities of a record management system. Prerequisite: CS 350.

CS/PHYS 371. Introductory Digital Electronics (2, 4). 2 credits.

Transistors, integrated circuits, logic families, gates, latches, decoders, multiplexers, multivibrators, counters and displays. Prerequisite: PHYS 125, 135 or 250 with a grade of "C" or better, or consent of instructor.

CS/PHYS 372. Microcontrollers and Their Applications (2, 4). 2 credits

Microcontrollers, their instructions, architecture and applications. Prerequisite: CS/PHYS 371 or consent of instructor.

CS/PHYS 373. Interfacing Microcomputers (2, 4). 2 credits.

A personal computer and its input/output bus, input/output functions, commercially available devices, proto-typing circuit boards, programs for device control. Prerequisite: CS/PHYS 371.

CS 444. Artificial Intelligence. 3 credits.

Machine perception, self/world representation, natural language processing, problem solving. Automatic theorem provers, artificial intelligence programming languages, expert systems. Theoretical and philosophical considerations. Prerequisite: Junior standing in computer science or consent of instructor.

CS/MATH 448-449. Numerical Mathematics and Computer Applications. 3 credits each semester.

Numerical solutions and error analysis of typical problems such as finding zeros of nonlinear functions, solving systems of linear and nonlinear equations, interpolation, approximation, integration, solving ordinary differential equations, optimization, Monte Carlo methods. Prerequisite for CS/MATH 448: MATH 237, MATH 300, and either CS 238 or CS/MATH 248. Prerequisite for CS/MATH 449: CS/MATH 448 and MATH 336.

CS 452. Combinatorics and Graph Theory. 3 credits.

An introduction to combinatorics, with emphasis on enumerative methods and applications. Topics in graph theory with particular application to computer science. Prerequisite: Junior standing in either mathematics or computer science, and either CS 238 or CS/MATH 248.

CS 456. Implementation of Programming Languages. 3 credits.

Scanning, parsing, translation, interpretation, code generation and optimization. Prerequisite: CS 355.

CS 457. Automata Theory. 3 credits.

Introduction to the theory of abstract automata. Topics include finite-state automata and regular sets, pushdown automata, context-free languages and grammars, and Turing machines and computability. Prerequisite: CS/MATH 252.

CS 474. Data Base Design and Application. 3 credits.

Introduction to data base design, application and management. Emphasis will be placed on file structures used by data base management systems, data definition language, data manipulation language, query language, data base security and reliability, data recovery and management of a data base environment. Prerequisite: CS 239.

CS 480. Selected Topics in Computer Science. 1-3 credits.

Topics in computer science which are of interest but not otherwise covered in the regular computer science offerings of the department. Offered only with the approval of the department head; may be repeated for credit when course content changes. Prerequisite: CS 239. Topics selected may dictate further prerequisites; students should consult the instructor prior to enrolling for course.

CS 497-498. Independent Study. 1-3 credits each semester.

Independent study in computer science under faculty supervision. Offered only with consent of the department head.

CS 499. Honors. 6 credits. Year course.


Catalog Table of Contents

JMU Home Page

Last reviewed: Sept. 10, 1994
Information Publisher: Academic Services