TBD

Completed at University of Illinois, Urbana-Champaign

- Computer Science
**CS425 - Distributed System.**- Protocols, specification techniques, global states and their determination, reliable broadcast, transactions and commitment, security, and real-time systems.

**CS424 - Real Time System.**- Supervisory control aspects of Cyber Physical Systems (CPS): fundamentals of reliability analysis, real-time scheduling, simple feedback control, software fault tolerance architecture, wireless networking and energy saving, principles of safety critical system engineering. Student groups design and demonstrate supervisory control architecture for a robot.

**CS512 - Data Mining Principles.**- An advanced course on principles and algorithms of data mining. Data cleaning and integration; descriptive and predictive mining; mining frequent, sequential, and structured patterns; clustering, outlier analysis and fraud detection; stream data, web, text, and biomedical data mining; security and privacy in data mining; research frontiers.

**CS525 - Advanced Distributed Systems.**- Peer-to-peer systems, sensor networks, and fundamental theoretical distributed computing. Review of classical work in each area, and application of design methodologies to explore overlaps across them. Emphasis on protocol design, systems issues, and theory. Reading selections are roughly two-third classical to one-third contemporary. Students write critiques, make presentations, and create a conference paper in a systematic manner. Prerequisite

Completed at University of California, Santa Barbara

- Computer Science
**CS8 - Introduction to Computer Science**- Introduction to computer program development for students with little to no programming experience. Basic programming concepts, variables and expressions, data and control structures, algorithms, debugging, program design, and documentation

**CS16 - Problem Solving with Computers I**- Fundamental building blocks for solving problems using computers. Topics include basic computer organization and programming constructs: memory CPU, binary arithmetic, variables, expressions, statements, conditionals, iteration, functions, parameters, recursion, primitive and composite data types, and basic operating system and debugging tools.

**CS 24 - Problem Solving with Computers II**- Intermediate building blocks for solving problems using computers. Topics include data structures, object-oriented design and development, algorithms for manipulating these data structures and their runtime analyses. Data structures introduced include stacks, queues, lists, trees, and sets.

**CS32 - Object Oriented Design and Implementation**- Advanced topics in object-oriented computing. Topics include encapsulation, data hiding, inheritance, polymorphism, compilation, linking and loading, memory management, and debugging; recent advances in design and development tools, practices, libraries, and operating system support.

**CS40 - Foundations of Computer Science**- Introduction to the theoretical underpinnings of computer science. Topics include propositional predicate logic, set theory, functions and relations, counting, mathematical induction and recursion (generating functions).

**CS138 - Automata and Formal Languages**- Formal languages; finite automata and regular expressions; properties of regular languages; pushdown automata and context-free grammars; properties of context-free languages; introduction to computability and unsolvability. Introduction to Turing machines and computational complexity.

**CS130A - Data Structures and Algorithms I**- The study of data structures and their applications. Correctness proofs and techniques for the design of correct programs. Internal and external searching. Hashing and height balanced trees. Analysis of sorting algorithms. Memory management. Graph traversal techniques and their applications.

**CS130B - Data Structures and Algorithms II**- Design and analysis of computer algorithms. Correctness proofs and solution of recurrance relations. Design techniques; divide and conquer, greedy strategies, dynamic programming, branch and bound, backtracking, and local search. Applications of techniques to problems from several disciplines. NP - completeness

**ECE/CS153A - Hardware/Software Interface**- The computer design space. Methods of performance evaluation. Machine instructions and assembly language. Variations in instruction set architecture. Design of arithmetic/logic units. Data path and control unit synthesis. Pipelining and multiple instruction issue. Hierarchical memory systems. Input/ output and interfacing. High-performance systems, including multiprocessors and multicomputers.

**CS176A - Introduction to Computer Communication Networks**- Basic concepts in networking, the OSI model, error detection codes, flow control, routing, medium access control, and high-speed networks.

**CS176B - Network Computing**- Focus on networking and web technologies used in the Internet. The class covers socket programming and web-based techniques that are used to build distributed applications.

**CS176C - Advanced Topics in Internet Computing**- General overview of wireless and mobile networking, multimedia, security, multicast, quality of service, IPv6, and web caching. During the second half of the course, one or more of the above are studied in greater detail.

**CS170 - Operating Systems**- Basic concepts of operating systems. The notion of a process; interprocess communication and synchronization; input-output, file systems, memory management.

**CS189A - Senior Computer Systems Project**- Student groups design a significant computer-based project. Multiple groups may cooperate toward one large project. Each group works independently; interaction among groups is via interface specifications and informal meetings. Project for follow-up course may be different.

**CS189B - Senior Computer Systems Project**- Student groups design a significant computer-based project. Multiple groups may cooperate toward one large project. Each group works independently; interaction among groups is via interface specifications and informal meetings. Project for course may be different from that in first course.

- ECE
**ECE2A - Circuits, Devices, and Systems**- Introduction to basic circuit analysis. KCL, KVL, nodal analysis, superposition, independent and dependent sources; diodes and I-V characteristics; basic op-amp circuits; first-order transient analysis; AC analysis and phasors. Introduction to the use of test instruments.

**ECE2B - Circuits, Devices, and Systems**- Second order circuits. Laplace transform and solution of steady state and transient circuit problems in the s-domain; Bode plots; Fourier series and transforms; filters. Transistor as a switch; load lines; simple logic gates; latches and flip-flops.

**ECE2C**- Circuits, Devices, and Systems- Two-port network parameters; small-signal models of nonlinear devices; transistor amplifier circuits; frequency response of amplifiers; non-ideal op-amps; modulation, bandwidth, signals; Fourier analysis

**ECE15A- Fundamentals of Logic Design**- Design methodologies of digital systems, the register and processor levels. Design of functional subsystems, including arithmetic processors, hardwired and microprogrammed control units, memory systems, and bussing systems. System organization including communication, input/output systems, and multiple CPU systems.

**ECE15B - Computer Organization**- Basic memory and processor organization, instruction set architecture, assembly language programming, number systems, arithmetic, data transfer and control flow instructions, procedures, memory management, program execution.

**ECE154 - Introduction to Computer Architecture**- The computer design space. Methods of performance evaluation. Machine instructions and assembly language. Variations in instruction set architecture. Design of arithmetic/logic units. Data path and control unit synthesis. Pipelining and multiple instruction issue. Hierarchical memory systems. Input/ output and interfacing. High-performance systems, including multiprocessors and multicomputers.

**ECE/CS153A - Hardware/Software Interface**- The computer design space. Methods of performance evaluation. Machine instructions and assembly language. Variations in instruction set architecture. Design of arithmetic/logic units. Data path and control unit synthesis. Pipelining and multiple instruction issue. Hierarchical memory systems. Input/ output and interfacing. High-performance systems, including multiprocessors and multicomputers.

**ECE153B**-**Sensor and Peripheral Interface Design****ECE152A - Digital Design Principles**- Design of synchronous digital systems: timing diagrams, propagation delay, latches and flip-flops, shift registers and counters, Mealy/Moore finite state machines, Verilog, 2-phase clocking, timing analysis, CMOS implementation, S-RAM, RAM-based designs, ASM charts, state minimization.

**ECE152B - Digital Design Methodologies******Design methodologies of digital systems, the register and processor levels. Design of functional subsystems, including arithmetic processors, hardwired and microprogrammed control units, memory systems, and bussing systems. System organization including communication, input/output systems, and multiple CPU systems.

**ECE254C - Advanced Computer Architecture: Distributed Systems******Multicomputers and distributed architectures. Message-based asynchronous computations. Distributed algorithms and their performance. Hardware issues: nodes, links, and communication mechanisms. Control issues: synchronization, global state determination, distributed consensus, and fault tolerance. Software issues: operating systems and

**ECE154B - Advanced Computer Architecture**- The computer design space. Methods of performance evaluation. Machine instructions and assembly language. Variations in instruction set architecture. Design of arithmetic/logic units. Data path and control unit synthesis. Pipelining and multiple instruction issue. Hierarchical memory systems. Input/ output and interfacing. High-performance systems, including multiprocessors and multicomputers.

- Math
- Math 3A,3B, 3C, 5A

- Physics
- Physics 1, 2, 3, 3L, 4, 4L

- Chemistry
- Chem 1A, 1AL, 1B, 1BL