ECE 49500 - Introduction to Computer Systems Engineering and Programming

Lecture Hours: 3 Credits: 3

Counts as:

Experimental Course Offered: Spring 2010

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. CREDIT MAY NOT BE OBTAINED FOR ECE 495, Introduction to Computer Systems Engineering and Programming and CS 159.

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 Major Topics
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