Visiting Professor Courses

Here are some of the courses previously taught by visiting professors.

CMPU 203 - Computer Science III: Software Design and Implementation

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.

CMPU 224 - Computer Organization

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.

CMPU 324 - Computer Architecture

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.

CMPU 325 - Microcomputers and Digital Electronics

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.

CMPU 334 - Operating Systems

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.