Also use of hardware description languages. Discussion of legal, social, and ethical issues. Study of the fundamental mathematical properties of hardware, software, and their applications. Emphasis is on the capabilities and limitation of computers, including finite automata, push-down automata and Turing machines. A study of the syntax, semantics, and implementation of a contemporary programming language with emphasis on program development, program structuring and the program development environment of the language.
Assignments focus on representative applications of the language.
May be repeated for credit with approval of the program coordinator. Use of numerical methods for function approximation, solutions of equations and systems of equations, differentiations, integration, and differential equations. Includes analysis, design, and writing of programs. An introduction to operating systems for contemporary multitasking, single processor computers. Topics include processes, process management and scheduling, interprocess synchronization and communication, memory management and file management.