People Research Teaching ‹ News
Computer systems is a highly interdisciplinary area, with relevant courses spanning at least two departments at Cornell: the School of Electrical and Computer Engineering, and the Department of Computer Science. The following are courses that undergraduate and graduate students interested in computer systems tend to take.
Architecture

ENGRD 230 - Introduction to Digital Logic Design. (Typ. Fall and Spring.) First course in digital logic. Topics covered include transistor network design and analysis, boolean logic, combinational and sequential circuits, and state machine design. Course includes a weekly lab to apply concepts taught in the classroom.

ECE 314 / CS 316 - Computer Organization. (Typ. Spring and Fall, resp. Pre: ENGRD 230 or ENGRD 211.) Basic computer organization. Students learn assembly language programming and design a simple pipelined processor.

ECE 475 (also CS 416) - Computer Architecture. (Typ. Fall. Pre: ENGRD 230; ECE 314 or CS 316.) Topics in modern microprocessor architecture, with design and implementation of a superscalar architecture at the RTL-level using Verilog.

ECE 476 - Digital Systems Design Using Microcontrollers. (Typ. Fall. Pre: ENGRD 230; ECE 314 or CS 316.) Design of real-time digital systems using microprocessor-based embedded controllers. Students working in pairs design, debug, and construct several small systems that illustrate and employ the techniques of digital system design acquired in previous courses. The content focuses on the laboratory work. The lectures are used primarily for the introduction of examples, description of specific modules to be designed, and instruction in the hardware and high-level design tools to be employed.

ECE 572 (also CS 516) - Parallel Computer Architecture. (Typ. Fall. Pre: ECE 475 or equiv.) Principles and tradeoffs in parallel architectures. Focus is on multiprocessor architecture, though there are parallel programming assignments.

ECE 573 - Advanced Memory Systems. (Typ. Spring. Pre: ECE 475 or equiv. Co: ECE 572 or equiv.) Principles and current practices of memory system design. Topics include cache hierarchy optimization, high performance memory controllers and technologies, approaches to power and reliability issues, exploiting memory level parallelism, memory systems for parallel computer architectures, and case studies.

ECE 575 - Advanced Microprocessor Architecture. (Typ. Spring. Pre: ECE 475 or equiv.) In-depth coverage of advanced architectural features of current and next-generation high-end microprocessors and FPGAs.

ECE 576 - Advanced Microcontroller Design. (Typ. Fall. Pre: ECE 475 or equiv.; ECE 476 or equiv.) Design of system-on-chip applications. Students working in pairs design, debug, and construct several systems that illustrate the design of embedded processors with custom peripherals running a real-time operating system. The content focuses on laboratory work. The lectures are used primarily for the introduction of examples, description of specific modules to be designed, and instruction in the hardware and high-level design tools to be employed.

ECE 577 - Fault-Tolerant Computing. (Typ. Fall. Pre: ECE 475 or equiv.) Principles in designing resilient computer architectures. Topics include sources of faults and their manifestation, information redundancy, fault-tolerant hardware and software approaches, resilient parallel architectures and networks, security, modeling and evaluation, and case studies.

ECE 697 - Topics in Computer Systems. (Typ. Spring. Pre: instructor's permission.) Topics vary each semester. Students present papers from relevant forums.

VLSI

ECE 474 - Digital VLSI Design. (Typ. Spring. Pre: ENGRD 230; ECE 315) Introduction to digital VLSI design. Students tape out a small project that is tested in the following semester.

ECE 571 - Arithmetic Circuits. (Typ. Fall. Pre: ECE 474 or equiv.; ENGRD 211 or equiv.) Designing arithmetic circuits. Topics include number representation, high-performance arithmetic including addition, multiplication, division, and other common operations found in modern computer systems.

ECE 574 - Advanced Digital VLSI Design. (Typ. Fall. Pre: ECE 474 or equiv.) Asynchronous VLSI and other advanced digital design topics.

Compilers and Software

CS 412+413 - Introduction to Compilers and Translators. Overview of the internal structure of modern compilers, with emphasis on implementation techniques.

CS 414/415 - Systems Programming and Operating Systems. Introduction to the logical design of systems programs, with emphasis on multiprogrammed operating systems.

CS 514 - Intermediate Computer Systems. Practical issues in designing and implementing distributed software. Topics include distributed computing, fault-tolerant systems, and network operating systems.


webmaster at csl.cornell.edu | ECE | CS | Ithaca