An introduction to a high level language for the purpose of gaining mastery of these principles will be provided in lectures and in closely coordinated laboratory experiences. Topics include abstract data types, complexity analysis, recursion, and iterative approximation methods. An object-oriented language is used to construct programs of a moderate size. An introduction to the principles of computer architecture from the layered point of view with emphasis on assembly programming. Here the software design process serves as a basis for treating such topics as specification, object oriented design and programming, user interface design, generic modules, and file organization.
Emphasis is on verification and analysis of time space complexity.
NP theory is introduced. A brief introduction to AI and the impact of parallel computation on algorithms are given. Satisfies the 'R' requirement. A study of the structure and function of modern operating systems with emphasis on concurrent processes and resource management. This material includes data types, data control, sequence control, run time storage, language translation, and semantics.