The Graduate Program in Computer Science provides intensive preparation in the design, programming, theory, and applications of computers. The Department of Computer Science offers courses of study leading to the MS in Computer Science, the MS in Software Engineering, the PhD degree in Computer Science, and the PhD degree in Software Engineering. Training is provided for both academically oriented students and students with professional goals in the many business, industrial, or governmental occupations requiring advanced knowledge of computer theory and technology. Courses and research are offered in a variety of subfields of computer science, including operating systems, computer architecture, computer graphics, pattern recognition, automata theory, combinatorics, artificial intelligence, data and network security, natural language processing, database design, computer networks, programming languages, software systems, analysis of algorithms, computational complexity, software engineering, software testing, software reliability, scheduling, visualization, fault-tolerant computing, parallel processing, telecommunications networks, telecommunications software, performance of systems, VLSI, computational geometry, and design automation.