CEN 591(502) - Topic: Computer Systems II (Fall 2011)

Lecture M, W 2:00 PM - 3:15 PM. BYENGM1-09
Instructor Sandeep Gupta
Office BY522
Email Sandeep.Gupta@asu.edu
Office Hours TBA




The combination of CEN501 and CEN502 (CEN 591 in current offering) serves to integrate the required knowledge of electrical engineering and computer science to ensure that all students have the necessary background to pursue advanced study in the areas of computer engineering. CEN501 focuses on circuit and logic design, topics that span the electrical engineering to computer engineering interface. CEN502 begins with fundamentals of computer architecture and focuses on basic principles of systems programming, operating systems, compilers, and networking topics that cover the computer science to computer engineering interface. Together this pair of courses provides a common and necessary background for all students in the program to pursue further advanced study in the six areas of the program. As such, these courses must be taken early in the student's course of graduate study.
The goal of CEN502 is to prepare incoming computer engineering graduate students for taking advance level computer systems courses in the areas such as computer architecture, compilers, operating systems, mobile and embedded systems.


  • Computer organization and architecture (memory hierarchy, instruction scheduling and pipeline, virtualization, I/O)
  • Operating systems (interrupt handling, monitors, semaphores, protection mechanisms)
  • Computer Networking (MAC layer, TCP/IP, network programming)
  • Systems Software (Compilers, Loaders, Linkers)
  • Systems Programming (C, assembly language, concurrent programming)
  • Embedded and Mobile Systems
  • Parallel, Distributed and Cloud Computing Systems

Course Work

  • Homework and Programming Assignments (one every two to three weeks, 50%)
  • Quizzes (every week), Midterm and Final Exam (50%)


Graduate standing in Computer Engineering or related areas.


Assignment Points Date Assigned Due Date Files
Join Google Group
Programming assignmnet 1 Mon., Aug 29 Mon., Sept 12 Files
Programming assignmnet 2 Mon., Sept 19 Fri., Sept 30 Files
Programming assignmnet 3 Wed., Oct 5 Fri., Oct 21 Files
Programming assignmnet 4 Wed., Oct 26 Fri., Nov. 11 Files
Project phase 2 Wed., Nov. 16, Time: 2-3:15pm Files
Second midterm exam Nov. 21 Nov. 28 Questions , paper one and paper two
Final Exam Mon., Dec 12 Time: 12:10-2pm
Project phase 3 TBD Files


Week Date Topic Materials
1 8/22 Introduction to computer systems Course Introduction
8/24 Computer system performance Slides
2 8/29 Primers on computer system organization Slides
Programming assignmnet 1: [instruction] handout: [tar] [zip]
8/31 Data representation at computers Slides
3 9/7 Integer and float representation Slides
4 9/12 Machine level programming: Basics Slides
9/14 Machine level programming(2) Slides
5 9/19 Machine level programming(3) Slides
Programming assignmnet 2: [instruction] [handout]
9/21 Machine level programming(4) Slides
6 9/26 Memory hierarchy overview
9/28 Memory hierarchy (2) Slides
7 10/03 Memory hierarchy(3) Slides
10/05 Memory hierarchy(4) Slides
Programming assignmnet 3: [instruction] [handout]
Project phase 1 requirement
8 10/10 First Midterm Exam
10/12 Exceptional Control Flow: Exceptions and Processes(1) Slides
9 10/17 Project phase one presentations
10/19 Exceptional Control Flow: Exceptions and Processes(2) Slides
10 10/24 Virtual Memory Slides
10/26 Virtual Memory(2) Slides
Programming assignmnet 4: [instruction] handout: [tar]
11 10/31 Virtual memory(3), discussion on HW4 Slides
11/2 Overview on project phase one
12 11/07 Overview on linking and I/O system Slides(linking)
11/09 Pipelining Slides
Project phase 2 requirements
13 11/14 Pipelining(2)
11/16 Project phase 2 presentation
15 11/21 Second Midterm Exam
11/23 Second Midterm Exam Project phase 3 requirements
16 11/28 Discussion on related papers paper one: Beyond Amdahls Law..
paper two: SpecTLB: A Mechanism for Speculative Address Translation
11/30 Project phase 3 presentation 1- Karthik Krishna, Naveen Sai Jn, Praveen Sekhar and Vinodh Ranganathan
2- Rama Manjunath Bhat, Srinidhi Shreedhara, and Vishal Verma
3- Nithin Udhaykumar, Sriram Prasad Rajagopal and Rohit Reddy Jakkam
4- Srivatsan Chellappa, Aravind Kaushik Jayakumar, and Karthik Veluchamy
17 12/05 Project phase 3 presentation 1- Madhu Vasudevan, Ramakrishnan Ganesh, Ravishankar Thrirugnanasambandham, and Sinduja Sivakumar
2- Madhurima pore, and Randhir Kumar
3- Sriram Samynathan, Jerald Milton Ambrose, Mansi Agarwal, and Harish Jagadeesh
4- Iman Anvari, Michael Pfeister, and Raymond Tyler
5- Phaneendra Kumar, Avinash Gadde, and Siddharth Vashisth


Course textbook
Reference books
  • Computer Networking: A Top-Down Approach, Kurose and Ross.
  • Computer Architecture: A quantitative approach, John L. Hennessy and David A Patterson.
  • Operating Systems Concepts, Silberschatz et al.
  • Compilers, Principles, Techniques, and Tools, Aho et al.
  • Fundamentals of Mobile and Pervasive Computing, Adelstein et al.


Any incidence of cheating in this class will be severely dealt with. This applies to homework assignments, programming assignments, quizzes and tests. The minimum penalty for cheating will be that the student will not obtain any credit for that particular assignment. (This means that if in a test and/or assignment a student is found have cheated, he/she will obtain zero in that test and/or assignment.) For the homework and the programming assignments students may discuss the problems with others, but one is expected to turn in the results of one's own effort (not the results of a friend's efforts). One tends to get very suspicious if two identically wrong results show up in the homework assignment and/or tests. The names of the offenders will be maintained in the departmental files. The repeat offenders may be debarred from the University.

Home | Projects | People | Publications | Courses | Resources | Contact