CPSC 5115. Algorithm Analysis and Design (3-0-3) Prerequisites: CPSC 2108 and MATH 5125, both with grades of "C" or better. This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability.
CPSC 5135. Programming Languages (3-0-3) Prerequisite: CPSC 2108 with a grade of "C" or better. Emphasizes the run-time behavior of programs. Languages are studied from two points of view: (1) the fundamental elements of languages and their inclusion in commercially available systems; and, (2) the difference between implementations of common elements in languages.
CPSC 5155. Computer Architecture (3-0-3) Prerequisite: CPSC 3121 with a grade of "C" or better. Review of combinational and sequential logic. Description of computer memory. Study of the instruction set architecture and addressing modes of a simple computer. Design on the computer control unit including both hard-wired and microprogrammed CPU's. Design of Input/Output including program-controlled I/O, interrupted-driven I/O, direct memory access (DMA), and I/O channels.
CPSC 5157. Computer Networks (3-0-3) Prerequisite: CPSC 2108 with a grade of "C" or better. Local area networks, wide area networks, and internets. Protocols and the ISO Open Systems Interconnect reference model. Design, analysis, and performance evaluation. Emphasis on data link, network, and transport protocols.