Here are some of the courses previously taught by visiting professors.
Develops techniques for design and implementation of complex software systems. Topics include object-oriented modeling, design patterns, component libraries, inheritance, parametric polymorphism, generic algorithms, containers, iterators, function objects and storage management. Development of a software system of significant complexity is required. A weekly laboratory period provides guided hands-on experience.
Examines the hierarchical structure of computing systems, from digital logic and micro- programming through machine and assembly languages. Topics include the structure and workings of the central processor, instruction execution, memory and register organization, addressing schemes, input and output channels and control sequencing. The course includes a weekly hardware/software laboratory where digital logic is explored and assembly language programming projects are implemented.
An exploration of current research areas in computer organization including an examination of data-flow, microcode, cache memory, distributed, parallel and other nonstandard architectures, and related topics.
An advanced seminar in the architecture and implementation of microprocessors. Topics include digital logic, memory and processor interfaces, interrupt handling, and serial I/O methods. Differences among logic implementations such as TTL, CMOS, ECL, etc., are considered. Students participate in the design and implementation of a microcomputer.
Deals with the theory and implementation of the software that governs the management of system resources. Topics that are covered include file organization, process scheduling, system services, memory management, security methods, resource contention, and design principles. Operating systems for parallel and distributed processing, real-time processing, virtual machines, and networking are also considered.