Computer-aided design algorithms. Two-level and multilevel optimization of combinational circuits. Optimization of finite-state machines. Verification and testing. Pragmatic aspects of the production of software systems, dealing with structuring principles, design methodologies and informal analysis.
Emphasis is given to development of large, complex software systems.
A term project is usually required. Introduction to Operating Systems. CS 370 and 380. Students write several substantial programs dealing with concurrency and synchronization in a multitask environment. CS 380 and 476.