CS 105. Explorations of Computer Programming (4 Cr.) (GEN. ED. #5) (LER-MR)
Introduction to the concepts of computer programming using 3-D virtual worlds. Programming constructs such as looping, selection, and data structures, along with the control of objects will be explored. No prior programming experience is required. Spring semester. Brody, Kelliher, Zimmerman.

CS 116. Introduction to Computer Science (4 Cr.) (LER-MR)
Introduction to the discipline of computer science and its unifying concepts through a study of the principles of program specification and design, algorithm development, object-oriented program coding and testing, and visual interface development. Prerequisite: placement exam or CS 105 with a minimum grade of C-. Fall semester. Zimmerman.

CS 119. Foundations of Computer Science (4 Cr.) 
An introduction to the major elements of computer science. Topics include recursion, procedural abstraction, data abstraction, and object-oriented programming. Prerequisite: CS 116 with a minimum grade of C-. Spring semester.Zimmerman.

CS 205. Software Development (4 Cr.) 
This course introduces object-oriented design and software design patterns.  Advance topics of object-oriented programming including interfaces, polymorphism, inheritance, generic types, multithreading, and user interface programming will be explored.  Students will master the programming process with moderately sized projects from specification through complete implementation. Prerequisite: CS 119 with a minimum grade of C- . Fall. Kelliher, Zimmerman.   

CS 220. Computer Architecture (4 Cr.) 
Organization of contemporary computing systems: instruction set design, arithmetic circuits, control and pipelining, the memory hierarchy, and I/O. Includes topics from the ever-changing state of the art. Prerequisite: CS 119 with a minimum grade of C-. Fall semester. Offered 2017-18 and alternate years. Kelliher, Zimmerman.

CS 224. Principles of Programming Languages (4 Cr.) 
Study of the underlying principles of programming languages. Topics include procedural activation, data encapsulation, inheritance, and functional and logic programming. Examples from several languages, such as C++, Java, ML, Haskell, and Prolog. Prerequisite: CS 119 with a minimum grade of C-. Spring semester. Offered 2017-18 and alternate years. Zimmerman.

CS 230. Analysis of Computer Algorithms (4 Cr.) 
The design of computer algorithms and techniques for analyzing the efficiency and complexity of algorithms. Emphasis on sorting, searching, and graph algorithms. Several general methods of constructing algorithms, such as backtracking and dynamic programming, will be discussed and applications given. Prerequisites: CS 119 with a minimum grade of C-. Fall semester. Offered 2016-17 and alternate years. Brody, Zimmerman.

CS 250. Theory of Computation (4 Cr.) 
The basic theoretical principles embodied in formal languages, automata, and computability. Topics include finite automata, nondeterministic machines, regular expressions, context-free grammars, Turing machines, Church's thesis, the halting problem, unsolvability, and computational complexity. Prerequisites: CS 119 with a minimum grade of C-. Spring semester. Offered 2016-17 and alternate years. Brody, Zimmerman.

CS 290. Internship in Computer Science (3-4 Cr.) 
Students interested in the application of computer science to government, business, and industry are placed in various companies and agencies to work full time under the guidance of a supervisor. The director confers with individual students as needed. Students are selected for internships appropriate to their training and interest in computer science and related fields. Prerequisites: junior standing and a major in computer science. This course is graded pass/no pass only. Fall semester, repeated spring semester.Department.

CS 299. Independent Work in Computer Science (1-4 Cr.) 

CS 311. Operating Systems (4 Cr.) 
The study of how modern operating systems are designed through the study of their fundamental pieces. Key features include symmetric multi-processing (SMP), threads, virtualization, demand paging, and virtual memory. Prerequisite: CS 205. Spring semester. Offered 2017-18 and alternate years. Kelliher.

CS 317. Database and Transaction Systems (4 Cr.) 
The study of the underpinnings of modern database design at the application level, with an implementation of a web-based transaction processing system. Deeper issues which are essential to effective database design include relational algebra, tuple calculus, data organization and indexing strategies, and query processing and optimization. Prerequisite: CS 205. Spring semester. Offered 2014-2015 and alternate years. Kelliher, Zimmerman.

CS 320. Computer Graphics (4 Cr.) 
An application-oriented introduction to computer graphics. Graphics devices and their programming interfaces. Fundamentals of two-dimensional graphics: rendering, object and view transformations, and interactive animation. Introduction to three-dimensional graphics: clipping, lighting, and hidden-surface removal. Large programming projects in a modern graphics API are an integral part of the course. Prerequisites: CS 205. Fall semester. Offered 2016-17 and alternate years. Kelliher.

CS 340. Principles of Artificial Intelligence (4 Cr.) 
An introduction to the field of artificial intelligence, including its tools, techniques, and issues. An overview of search methods, symbolic manipulation, pattern matching, vision, machine learning, expert systems, and robotics. Prerequisite: CS 205. Fall semester. Offered 2017-18 and alternate years. Brody, Zimmerman.

CS 395. Senior Project (1-4 Cr.) 
Students work on an individual or a group semester long project to further their understanding of a particular computing problem, issue, or subject area. Prerequisite: Senior standing as a computer science major or minor. Fall semester, repeated spring semester.

CS 400. Independent Work in Computer Science (2-4 Cr.)