Computer Science


College of Integrated Science and Technology
CS 100. Introduction to BASIC. 2 credits.
Introduction to computing using Visual BASIC. This course is not open to students who have previously earned credit in CS 139 or equivalent.
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 128. Information Presentation (2, 2). 3 credits.
Survey of ways to use computer software tools to locate and retrieve information, present that information in written formats that include tables, graphs and pictures, and to integrate that information into verbal presentations that may include audio and video materials as well.
CS 138. Being Productive with Computers (3, 2). 4 credits.
Students will use computer software tools to locate and retrieve information, present that information in written formats that include tables, graphs and pictures, and to integrate that information into verbal presentations that may include audio and video materials as well. These skills will be applied in the context of an examination of the historical and social aspects of computing, including the responsibilities of the computing professional.
CS 139. Algorithm Development (3, 2). 4 credits.
Students learn fundamental problem solving techniques using computer software tools that support algorithm development and procedural abstraction to analyze a domain and to create reusable software applications. Prerequisite: A grade of "C" or better in CS138 or equivalent.
CS 238. Software Application Development (3, 2). 4 credits.
Fundamentals of the computer software development process, with emphasis on using a program development environment to create and combine algorithms and data structures specified in a high-level programming language.
CS 239. Advanced Computer Programming (3, 2). 4 credits.
Students use various advanced problem solving strategies to develop algorithms in the C programming language using classes and objects. Students also learn elementary data structures including character strings, records, files, stacks, and queues using both static and dynamic memory allocations. Prerequisite: CS 139 or CS 238 or equivalent with a grade of "C" or better.
CS 240. Algorithms and Data Structures. 3 credits.
Students learn to implement and analyze elementary data structures and the basic complexity classes of algorithms that use strategies such as greedy algorithms, divide-and-conquer algorithms and backtracking algorithms. This analysis is especially applied to problems in searching, sorting and parsing. Prerequisite: CS 239.
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 or corequisite: MATH 206 or 236. This course is not open to students who have previously earned credit in CS/MATH 448.
CS 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. (Formerly CS/MATH 252.)
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 301. Navigating Computer Networks. 2 credits.
Introduction to computer networks, designed for students not majoring in computer science with minimal computer experience. This course will investigate methods for accessing information on a network and systems for sharing and distributing information on a network. Various topics will be explored, such as methods for accessing network resources (telnet, ftp, gopher, Usenet news); systems for transparent resource sharing (NFS, Netware); network structure (TCP/IP protocols, the Internet, the information super highway); and network operating systems (UNIX, Xwindow). Prerequisite: Prior experience using computer applications or writing computer programs.
CS/IDS 334. Symbolic Programming Concepts and Applications. 3 credits.
Applied artificial intelligence and applications of knowledge-based systems in business and the fundamentals of symbolic programming. The course will use Prolog as a primary language for development of business applications; LISP programming will also be covered. Formal logic systems and informal knowledge representation systems will be explored. Prerequisite: IDS 104, 204, 291 or CS 239 or ISAT 242.
CS 340. Assembly Language Programming. 3 credits.
Principles of assembly language programming. Assembly language contrasted with machine language. Assembly directives, conditional assembly and macros. Design of a two-pass assembler. The material in this course is useful for those interested in machine design, operating systems, embedded computer systems and microcontrollers, and other areas which require low-level knowledge of computer operation. Prerequisite: CS 238.
CS/ISAT 344. Intelligent Systems. 3 credits.
In-depth introduction to current and future intelligent systems, including expert systems, neural networks, hybrid intelligent systems, and other intelligent system technologies and their development, uses and limitations. Prerequisite: Junior standing and CS 139 or ISAT 340.
CS/ISAT 345. The Software Industry. 3 credits.
The process by which software products are developed is examined. This process includes requirements analysis and specification, design methods, automated support systems, testing and measurement of software, and project planning and management. Prerequisite or corequisite: CS 139 or ISAT 340.
CS 346. Information System Design Studio. 3 credits.
Information system design methods, tools, techniques, principles and practices are surveyed. Students solve design problems alone and in teams and present their work to their peers and the instructor. Prerequisite: CS 239 and CS 345.
CS/ISAT 348. The Multimedia Industry. 3 credits.
Production of interactive multimedia and hypermedia systems including treatment of technical issues and human interfacing issues. This course provides exposure to hypermedia development techniques and extensive practical experience in hypermedia development. Prerequisite: CS 139, or ISAT 340, or permission of the instructor.
CS 349. Developing Interactive Multimedia. 3 credits.
Students learn the concepts of multimedia, the issues in designing multimedia to interact effectively with users, the performance and speed issues in designing multimedia and how to implement interactive multimedia applications. Prerequisite: CS 348.
CS 350. Computer Organization. 3 credits.
Students learn how a computer works through principles of hierarchical computer organization, hardware (including registers, busses and arithmetic logic units) machine instruction sets, addressing techniques, input/output processing and interrupt handling. Students are introduced to the Unix operating system. As part of this course, students will be provided with a version of Unix to install on a personal computer. Prerequisite: CS 239.
CS 351. Network Operating Systems. 3 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 and CS 252. (Formerly MATH 252.)
CS 355. Programming Languages. 3 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 239.
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 371. Introductory Digital Electronics (2, 4). 2 credits.
Transistors, integrated circuits, logic families, gates, latches, decoders, multiplexers, multivibrators, counters and displays. Prerequisite: CS 350.
CS 372. Microcontrollers and Their Applications (2, 4). 2 credits
Microcontrollers, their instructions, architecture and applications. Prerequisite: CS 371.
CS 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 and programs for device control. Prerequisite: CS 371.
CS/IDS 384. Object-Oriented Programming. 3 credits.
This course introduces concepts of object-oriented programming (OOP) using C++. The evolution of object-oriented programming is traced from its early implementation to modern languages which include objects. Comparisons between competing systems will be discussed. Emphasis will be placed on the practical application of OOP to business programming problems. Prerequisite: IDS 344 or CS 239.
CS 444. Artificial Intelligence. 3 credits.
Students will study the history, premises, goals, social impact and philosophical implications of artificial intelligence. Students will study heuristic algorithms for large state spaces and will learn to develop recursive and nondeterministic algorithms. Prerequisite: CS 344.
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 and 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 451. Network Communications. 3 credits.
Students learn the concepts and issues of modern computer networks including network transmission media, network architectures, network protocols. Students also learn to develop network application software and to install and configure a networked computer. Prerequisite: CS 351 or CS 239 and consent of the instructor.
CS 454. Internship in Computer Science. 1-3 credits.
An advanced course to give supervised practical experience in a professional computing environment. May be taken multiple times for credit, but no more than three credits may be used in the Computer Science Program graduation requirements Prerequisite: Junior standing, major in computer science and permission of the instructor.
CS 456. Implementation of Programming Languages. 3 credits.
Scanning, parsing, translation, interpretation, code generation and optimization. Prerequisite: CS 355.
CS 474. Data Base Design and Application. 3 credits.
Students study database design and management with emphasis placed on data definition languages, data manipulation languages, query languages and on management of the data base environment. Prerequisite: CS 346.
CS 475. Distributed Database Management. 3 credits.
Students learn the concepts of client-server architectures and other aspects that arise in the design of distributed systems. Prerequisite: CS 474.
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 488. Computer Graphics Applications. 3 credits.
This course develops a computer graphics application package based on standard graphics functions as well as attributes of a graphical user interface. It includes experience in applying interactive computer graphics techniques to industrial problems. Prerequisite: CS 239.
CS 497. Independent Study. 1-3 credits.
An advanced course to give independent study experience under faculty supervision. May be taken multiple times for credit, but no more than three credits may be used in the Computer Science Program graduation requirements. Prerequisite: Junior standing, major in computer science and permission of the program coordinator.
CS 499. Honors. 6 credits. Year course.

Continue Course Descriptions: Communication Sciences and Disorders

Course Descriptions Directory

Undergraduate Catalog Contents


1996-97 Undergraduate Catalog
Last reviewed: 30 November 1996
Information Publisher: Division of Academic Affairs
James Madison University