5 hrs Lecture and Laboratory Data structures and system software. Abstract data types are introduced along with stacks, queues, trees, and graphs. Complexity is introduced through sorting and searching algorithms. 5 hrs Lecture and Laboratory Levels of abstraction in computer architecture and programming languages. Example problems taken from database management and artificial intelligence serve to introduce these two topics.
Computer architecture is discussed at the digital logic and digital systems levels.
The topics of virtual machines, sequence control, data control, and type checking can be introduced and compared across programming paradigms. Lecture and Laboratory Algorithm complexity and computability and concurrent processing. The concepts of computable functions and undecidability are discussed. Concurrency issues are introduced by examples taken from system software. Lecture and Laboratory Formal languages and software methodology.