File design and file processing. Offered alternate years. A study of operating system structures and algorithms emphasizing multiple user systems, CPU scheduling in a multi-tasking environment, concurrency and parallel computing concepts including communication and synchronization issues, storage management, and protection and security. Theory and practice of automata, formal languages, and computability. Introduction to computational complexity.
Students write a compiler for a simple programming language.
The plan must be presented for departmental approval before the experience begins.