ECE 19595 - Introduction to Computer Systems Engineering and Programming: An Engineering Perspective

Lecture Hours: 3 Credits: 3

Counts as:

Experimental Course Offered: Fall 2010, Spring 2011

Catalog Description:
This is designed as a first course in computing based on the fundamental principles of computer systems, starting from the basics and developing in an integrated and inductive fashion to the most innovative modern technologies, such as the multicore processors that enable advances in computing for applications such as Google, YouTube, pharmaceutical development, and gaming. The course uses teamwork, collaboration, and synthesis projects to further the learning process. Students will learn from a practical (rather than abstract) perspective how individual components work and how those components fit together to form modern computing systems.

Required Text(s):
  1. Introduction to Computing Systems, Yale N. Patt and Sanjay J. Patel, McGraw Hill, 2003, ISBN No. 0072467509.

Recommended Text(s): None.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an understanding of the principles of digital logic design. [a,b,c,e,k]
  2. an understanding of the principles of assembly programming. [a,b,c,e,k]
  3. an understanding of the principles of high-level programming in C. [a,b,c,e,k]
  4. an understanding of the principles of multicore program design. [a,b,c,e,I,j,k]
  5. an understanding of how computer system components work together. [a,b,c,e,I,k]

Lecture Outline:

Hours Topic(s)
1 Motivation
9 Digital Logic Principles
5 Computer organization
8 Low-level (assembly) programming (including I/O)
7 High-level programming in C
6 Multicore programming
3 Operating systems and networking
5 Exams, review sessions, etc