Computer Science (CS)

203. Object-Oriented Programming II (3) (F) Advanced Object-Oriented Software Development. Polymorphism, Overloading, Exceptions, Design, and Documentation. (Prerequisites: CIS 202.)

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.)