- Interfacing a computer system to external devices which support asynchronous and synchronous communications, flow-control paths, data transfer, packets, and physical interfaces. A study of the ISO model protocols, logical connections and services, streams and datagrams, LANs, internetworking, routing, and servers.
- Focuses on microprocessor architectures. Topics include: buses, timing, memory systems, and decoding. Also covered are techniques for interfacing MSI, LSI, and VLSI chips to system buses. Lab emphasis is on building a microprocessor based systems. Prerequisite: ETEC 2311.
- This course focuses on the theories of algorithms, data structures, computational complexity, and correctness. Topics covered include: divide-and-conquer techniques, dynamic programming, greediness, sorting, searching, graph problems, lower bound techniques, and NP-completeness.
- The study of formal models of computation in terms of abstract language and machine models. These include formal languages, finite state automata, pushdown automata, Turing machines, and grammars.
- Introduction to (and application of) integral-differential equations to modeling of circuits and systems. Use of PSPICE to modelsystems. Application of Laplace transforms to system differential equations in the time and frequency domains with sinusoidal and complete harmonic signals. Topics include transfer functions, frequency response, and BODE plots, transients in DC/AC networks, initial conditions, mesh analysis, superposition, the Initial and Final Value Theorems and the Shifting Theorem. A laboratory component is directed at demonstrating the transient effects of both AC and DC stimulus.
- This course covers the function, design, and integration of the parts of an operating system. Topics covered include: operating system history, policies for scheduling and page-replacement, memory management, resource allocation, deadlock, starvation, livelock, access control, mutual exclusion, concurrency process synchronization, file systems, secondary storage management, and command interpreters.
- This course covers advanced operating system topics through the examination and implementation of various parts of a working operating system. Topics covered include cooperating processes, protection, real-time systems, distributed systems, and security. Topics include UNIX, file systems, processes, process development, remote access techniques, and overall system management.
- Provides an introduction to models and issues concerned with the development of high quality software including the life-cycle models requirements analysis, specification and design techniques, implementation, documentation, configuration management, reliability, verification, validation, and maintenance. Lab emphasis is on learning how to use software engineering tools.

