of Computer Science
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 110. Introduction to Computer Professionalism and Ethics. 1 credit.
Seminar for freshman and transfer students focusing on professional and ethical issues in computer science. Topics include Computer Science degree requirements, the computer science profession, ethics of computing professionals, protection of software, Internet security and privacy issues, and current issues in computer science.
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 create reusable software applications.
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 using classes and objects. Students also learn how to implement and use elementary data structures, including character strings, records, files, stacks and queues. Prerequisite: CS 139 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 or corequisite: CS 252; Prerequisites: CS 239 and ISAT or CS major or minor status.
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: CS 139 or CS 238.
CS 274. Introduction to Databases. 3 credits.
Students learn how to design and implement a normalized relational database. Emphasis is on the practical construction of an interactive database using graphical user interfaces and report generation. Prerequisite: CS 128 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. Topics may vary. Prerequisite: Students should consult the instructor prior to enrolling for the course.
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 139 or 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. Prerequisites: CS 239 or ISAT 340.
CS/ISAT 345. Software Engineering. 3 credits.
Study of means for the development and maintenance of high quality software products delivered on time and within budget. Topics include requirements analysis and specification, software design, implementation, testing, maintenance, project management, ethics, and the responsibilities of software engineering professionals. Prerequisites: ISAT or CS major or minor standing and CS 239 or ISAT 340 with sophomore standing.
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 240.
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. Prerequisites: CS or ISAT major or minor status, CS 239 and CS 252.
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 430. 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. Prerequisites:
CS 240 and CS 350.
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 learn to develop recursive and non-deterministic algorithms. Prerequisites: CS 344 and either CS 240 or ISAT 340.
CS 446. Software Analysis and Design. 3 credits.
Contemporary software analysis and design methods, tools, notations, techniques, processes, principles and practices. Students solve analysis and design problems alone or in teams and present their work to their peers and the 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 and Monte Carlo methods. Prerequisites for CS/MATH 448: MATH 237, MATH 300 and either CS 238 or MATH 248. Prerequisites for CS/MATH 449: CS/MATH 448 and MATH 336.
CS 450. 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 452. Design and Analysis of Algorithms. 3 credits.
An introduction to the analysis, design and theory of algorithms. Algorithms studied will be selected from searching, sorting and graph theory. Included are elements of counting, recurrence relations, direct and indirect proofs, recursion, complexity classes, language theory, decidability and undecidability. Prerequisites: CS 240 and CS 252.
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. Prerequisites: Junior standing, major in computer science and permission of the instructor.
CS/ISAT 460. Local Area Networks. 3 credits.
An overview of LAN hardware, LAN topology and design, and LAN protocols. Installation and management of LAN operating systems and LAN services (address management, name management, file and print sharing, account management). Prerequisite: CS 350 or CIS 320 or equivalent.
CS/ISAT 461. Internetworking. 3 credits.
Wide Area Network (WAN) and Metropolitan Area Network (MAN) design. Audio, voice, data and TV transmission over ATM/B-ISDN networks. The SONET signal hierarchy and Q3 standard interface model. Network security. Performance analysis of a given network. Prerequisite: CS/ISAT 460.
CS/ISAT 462. Network Applications Development. 3 credits.
Design and implementation of network-based applications using languages and architectures such as sockets, JAVA, TL1 and CORBA. Concepts in distributed processing, including synchronization of interprocess communication and management of replicated data. Analysis of performance issues related to distributed applications. Prerequisites: CS 239 or CIS 344, and CS/ISAT 460.
CS/ISAT 463. Network Analysis and Design. 3 credits.
In-depth introduction to the techniques and tools used to design and analyze computer and telecommunications networks. Overview of issues related to network performance, including the impact on cost, reliability and security. Prerequisites: CS/ISAT 460 and CS 239 or ISAT 340.
CS/ISAT 464. Issues in the Telecommunications Business. 3 credits.
Addresses complex business concepts and issues in the telecommunications industry. Explores the interrelation of the economics of the telecommunications industry with ensuing social, ethical and security issues. Discusses topics in product and service creation, marketing, customer service and billing, and electronic commerce. Prerequisites: CIS 320 and SMAD 356, and ISAT 340 or equivalent.
CS 474. Database 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 database environment. Prerequisite: CS 345 or CS 274 or ISAT 340.
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. Prerequisites: CS 240 and CS 350.
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. Prerequisites: Junior standing, major in computer science and permission of the program coordinator.
CS 499. Honors. 6 credits.
PUBLISHER: University Catalog Office, MSC 8002, Harrisonburg, VA 22807 - PHONE: (540) 568-4064
FOR INFORMATION CONTACT: Kristi Shackelford - Privacy Statement