210. Computer Organization (3) (F, Sp) Digital logic, digital systems, machine-level representation of data, assembly-level machine organization. (Prerequisites: CIS 101, Math 110.)
301. Algorithms and Complexity (3) (W) Algorithmic analysis, strategies and fundamental algorithms. (Prerequisites: CS 203, CIS 206/L.)
320. Introduction to Computational Theory (3) (W) Finite state automata and regular expressions, context-free grammars and pushdown automata, Turing machines, computability and undecidability. (Prerequisites or concurrent enrollment: CIS 201, CIS 206/L.)
390R. Special Topics in Computer Science (1-3) (Variable)
399R. Internship in Computer Science (1-12) Maximum 12 (F, W, Sp, Su) Credit for applied experience in computer science. Prior approval must be obtained and coordinated by a faculty member and on-site supervisor.
410. Computer Architecture (3) (W) Memory system organization and architecture, interfacing and communication, functional organization, multiprocessing and alternative architectures. (Prerequisites: CS 210, CS 301)
415. Operating Systems Design (3) (W) Operating systems principles. concurrency, scheduling, dispatch, memory management. (Prerequisites: CS 210, CS 301.)
420. Programming Languages (3) (F) Virtual machines, language translation, declarations and types, abstraction mechanisms, object-oriented programming. (Prerequisites: CS 301, CS 320.)
421. Algorithmic Languages and Compilers (2) (Variable) Formal description of algorithmic languages and techniques used in their compilation: semantics, ambiguities, procedures, replication, iteration, recursion. Design and implementation of a simple compiler. (Prerequisite: CS 420.)
440. Intelligent Systems (3) (F) Fundamental issues in intelligent systems, search and constraint satisfaction, knowledge representation and reasoning. (Prerequisite: CS 301.)
441. Automatic Speech Recognition (2) (Variable) Introduction to automatic speech recognition by computers, including digital sampling, Fourier transformation, phenomic classification by neural networks, and Viterbi search. (Prerequisite: CS 440.)
442. Image Processing and Computer Vision (2) (Variable) Techniques for the processing and automatic recognition of objects and groups of objects in digital images. (Prerequisite: CS 440.)
443. Robotics (2) (Variable) Build, program and demonstrate robots in accomplishing useful tasks. Understand what would be required to build an intelligent robot. Tasks include maze solving, and foraging. (Prerequisite: CS 440.)
461. Computer Graphics (2) (Variable) Interactive computer graphics systems programming and architecture. (Prerequisites: CS 301, Math 343.)
491-492-493. Seminar (1-1-1) (F, W, Sp, Su) Readings in the Computer Science literature, writing of review articles, research proposal writing and presentation, conducting research, poster presentation, writing and presentation of the senior thesis. (Prerequisite: instructor consent.)
495R. Independent Study in Computer Science (1-3) (Variable) Topic and credit to be arranged between the student and the instructor. (Prerequisite: instructor consent.)
496R. Student Research in Computer Science (1-3) (Variable) Supervised individual research for students who have been granted a student research and development assistantship. (Required of all research associates.)
