EC 311 Introduction to Logic Design: Fundamentals of digital logic design.

EC 500 Design of Secure and Reliable Computer Systems: Fundamentals of design of secure and reliable computer systems. Attack models. Security and reliability measures. Introduction to finite fields. Linear error detecting codes and design of fault-tolerant hardware. Self checking checkers. Error detecting codes for design of secure hardware. Robust codes for prevention of fault injection attacks. Algebraic manipulation detection codes for design of hardware resistant to strong fault injection attacks. Design of secure and reliable communication links, memories, multipliers and cryptographic hardware.

EC 533 Advanced Discrete Mathematics: Discrete Mathematics.

SC 561 Error-Control Codes: Introduction to codes for error detection and correction, linear algebra over finite fields, bounds, perfect and quasi-perfect codes, probability of error checking, Hamming, BCH, MDS, Reed-Solomon codes, and nonlinear codes. Applications of error detecting/correcting codes for data compression, reliable communications, testing and fault-tolerant computing.

EC 700 Adv Special Topics: Design of secure computational networks

SC 749 Interconnection Networks for Multicomputers: Interconnection network topologies. Testing and diagnosis of interconnection networks. Routing in multicomputer networks. Deadlocks in routing.  Multicast and broadcast.  Fault-tolerance and reliability of interconnection networks.  Modules for realization (nodes and routers).  Performance metrics for different topologies.

SC 752 Theory of Computer Hardware Testing: A unified presentation of approaches for testing of computer hardware. Gate-level testing, functional testing, testing microprocessors, memory testing, and random testing. Self-error-detection and self-error-correction in processors and memories. Diagnostic tests, board and system test, BIST, DFT and testability analysis.

SC753 Fault-Tolerant Computing: Fault-tolerant PLAs, gate arrays, ALUs, and computer memories. Replication techniques. Coding techniques in fault-tolerant computing. Totally self-checking checkers. Self-error detection/correction for multiprocessors. Fault-tolerant computer networks.

SC 891 Computer Engineering Seminar: VLSI circuit testing, built-in self testing, memory testing, fault-tolerant routing in multiprocessors.