Logged in as: guest Log in
Comp 411 - Computer Organization
Fall 2018


  • December 8, 2018: The final exam is online and accessible from 8am until 11am. You should logout and log back in before the exam to make sure that your session does not time out. Submit answers frequently. They will be cached.
  • November 30, 2018: Lab 8 is now online. Futhermore, all labs are now open for resubmission until midnight tonight to accomodate various submission mishaps during the semester. However, only those of you who registered a problem with thier labs at the last (11/28) class meeting will be regraded.
  • November 26, 2018: Problem Set #5 is online and due on 12/5.
  • November 19, 2018: The second midterm is now online and will be accessible from 9:05am to 10:25am. You should logout and log back in before the exam to make sure that your session does not time out. Submit answers frequently. They will be cached.
  • November 18, 2018: I will be unable to lead a study session tonight. I am still writing on the exam. PS #3 grades have been released.
  • November 18, 2018: I (Jacob) will be holding my office hours for this week today(Sunday) from 2-4pm in FB009
  • November 15, 2018: Lab 7 is online, and open for submissions now!
  • November 14, 2018: I (Rui) will move my office hour this week to Friday (2-4pm).
  • November 12, 2018: Lab 6 is open for submissions. Please submit before midnight tonight.
  • November 12, 2018: We are having issues accepting lab submissions at this time. For now, make sure to save your solutions locally(textEdit, Word, etc).
  • November 11, 2018: Lab 6 is online.
  • November 9, 2018: Problem Set #4 is online and due on 11/26.
  • November 7, 2018: Some major schedule revisions. This Friday's class meeting will once again be a normal lecture rather than a Lab. However, the following Monday (11/12) will be a Lab, as will the Friday (11/16) after that. Moreover, the second midterm will now be moved to the Monday before Thanksgiving break (11/19).
  • October 31, 2018: Friday's class will be a lecture rather than a Lab (still catching up).
  • October 29, 2018: Jacob will be holding office hours in SN325 from 2-3pm today, Rei will be holding office hours 4:30-5:30, same place.
  • October 29, 2018: (lm) I need to cancel my office hours today to work on a paper submission.
  • October 25, 2018: Lab 5 is online. This is a full-length lab. You should look over the prelab and part 1 before hand if you want to make effcient use of your time. This lab requires logging into the comp411 server. If you had problems logging in on Lab 1, and it was due to your connection to eduroam wifi you might consider registering for the UNC-PSK wifi network.
  • October 23, 2018: I (Rui) will move this week's office hour to Sunday (10/28) 2-4pm due to traveling.
  • October 22, 2018: The due date for Problem Set #3 has been delayed until Monday 10/29.
  • October 10, 2018: You should now be able to access Problem Set #3, and submit Lab #4.
  • October 8,2018: The first Midterm is now on-line and will be accessible from 9:05am until 10:25am. You can and should submit partially completed exams frequently. Your old answers will be retained.
  • October 5,2018: Lab #4 is on-line. Problem Set #3 is also online and due on 10/22. We will begin covering the material of this problem set after Monday's midterm.
  • September 27, 2018: Lab #3 is on-line. You should take a look at it before tomorrow's short lecture, and you will need to submit your final checkoffs before 11am (lm).
  • September 26, 2018: I (Rui) will add a temporary office hour this Friday (9/28) 4:20-6:20pm. 
  • September 26, 2018: I have decided to reschedule the 1st Midterm for Monday, October 8, 2018. Hopefully, this will be the last major schedule change due to the hurricane.
  • September 24, 2018: We still need to do some catching up to make up for Florence. I need to make the following changes ion the schedule: 1) Problem Set #2's due date has been pushed to next Monday (10/1) 2) Problem Set #3 will be issued as planned on 9/26 3) Friday's class (9/28) will be a mix of a mini lecture and a shortened lab.
  • September 20, 2018: Lab #2 is on-line. You can take a look at it before tomorrow's short lecture, and you will need to submit your final checkoffs before 11am (lm).
  • September 19, 2018: I, Jacob, will be in the Sitterson lower lobby tonight from 6 to 7pm answering last second questions about Problem Set #1.
  • September 19, 2018: The class meeting on Friday (9/21) will be a hybrid. It will include a shortened lecture (≈ 40 mins) and a shortened Lab #2 (≈ 60 mins). The Lab can be turn in anytime between 9am and 11am, and it will be posted sometime on 9/20.
  • September 16, 2018: Classes on Monday 9/17 have been canceled due to Florence. I have once again delayed the due date for Problem Set #1 until 9/19. As of now I am leaving the due date for Problem Set #2 unchanged.
  • September 12, 2018: Problem Set #2 is now on-line and is due on 9/26.
  • September 11, 2018: The due date for Problem Set #1 has been postponed until just before midnight on 9/17 due the the closing of UNC brought about by hurricane Florence. Class will not be held on 9/12 and Lab will not be held on 9/14. I will, however, be distributing Problem Set #2 on 9/12 as scheduled.
  • September 9, 2018: I have made a correction to Problem Set #1 that impacts part D of the "States of Confusion" variant. You should reload your problem set and it will hopefully make more sense. (lm)
  • September 6. 2018: I apologize for the delay, but Lab #1 is finally on-line. You can look over it but you will be unable to submit your checkoffs until the lab starts tomorrow at 9:00am. You will need to submit your final set of checkoffs before 11am (lm). 
  • August 29, 2018: Problem Set #1 is now on-line and it is due before the strike of midnight on 9/12. You must login to the COmp411 website to access your problem set. You can submit partial solutions.
  • August 22, 2018: The first class meeting in SN014 (Frownsummer is over).

Course Description

Comp 411, Computer Organization, explores the topic of how computers work, in terms of both software and hardware. It covers a wide range of topics including what a bit is, and why bits are the atoms in the universe of computation. We also discuss how information is represented and processed in hardware, and arrive to the conclusion that, to a computer, everything is data, including the instructions that underly software.

Comp 411 also covers the wide range of languages, and layers of translation, used for computation-- spanning from machine language to assembly language to high-level compiled and interpreted languages. We will also touch on the conventions that will enable us to constuct large programs, modular software systems, and even programs that manage the loading, execution, and creation of other programs.

We will then delve deeper into computer hardware to discover what means to be digital. We will explore how simple combinational logic can be made to perform math and manipulate bits and how logic with state can be made to perform a series of operations. This will culminate in the virtual construction of a simple, yet fully functional computer.

In the last third of the class we will discuss issues of performance. What the measures of MIPS and CPI mean, and how they can be improved. We will discuss simple techniques for increasing the rates which computer execute instructions including pipelining and parallelism. We will then address techniques for improving the apparent memory bandwidth of a computer and finally how to simulate more memory that we can actually afford.

Grading will be based on:

  • 6 problem sets with the lowest dropped (25%)
  • 2 in-class exams (32%)
  • 10 labs with the lowest dropped (18%)
  • Final Exam (25%)

Detailed Course Syllabus

Book, Course Information, and Prerequisites


I will be using no book this semester. We will be depending on my notes and online materials.

Credit Hours: 3 + 1 mandatory lab
Location: SN014
Time: M, W - 9:05am-10:20am, Friday labs - 9am-11am
URL: http://csbio.unc.edu/mcmillan/index.py?run=Courses.Comp411F18
Prerequisite: COMP 401

Course Instructors

Instructor: Leonard McMillan
Office: SN316
email: mcmillan@unc.edu
Office Hours: M 2-4pm
Rui Zhang
Teaching Assistant: Rui Zhang
Office: FB346
email: rzhang@cs.unc.edu
Office Hours: W 2-4pm (SN325)
Jacob Vosburgh
Teaching Assistant: Jacob Vosburgh
Office: SN373
email: jvossy@cs.unc.edu
Office Hours: T 3:30-5:30pm



Date Topic Homework
August 22 Lecture 1. Introduction (slides)  
August 24 Lecture 2. Information Please (slides)  
August 27 Lecture 3. More Binary Representations (slides) Register on website!
August 29 Lecture 4. Behind the Curtains (slides) Problem Set #1
August 31 Lecture 5. Concocting an Instruction Set (slides)
September 3 No Class (Labor Day)
September 5 Lecture 6. Read the Instructions (slides)
September 7 Lab #1. The UNIX shell  
September 10 Lecture 7. Addressing Modes and Branches (slides)  
September 12 Class canceled Problem Set #2
September 14 Class canceled  
September 17 Class canceled  
September 19 Lecture 8. Assembling the Last Few Bits (slides)  
September 21 Lab #2. Some Assembly Required Problem Set #1 due
September 24 Lecture 9. Stacks and Procedures (slides)  
September 26 Lecture 10. Compilers and Interpreters (slides)  
September 28 Lab #3. How Things Stack Up  
October 1 Lecture 11. Assemblers and Linkers (slides) Problem Set #2 due
October 3 Lecture 12. Complier code generation (slides).  
October 5 Lab #4. Let it C Problem Set #3
October 8 Exam #1: Covers lectures 1-12  
October 10 Lecture 13. Physical Bits: Transistors and Logic (slides)  
October 12 No Class (University Day)
October 15 Lecture 14. Enumerating and Composing Gates (slides)  
October 17 Lecture 17. A Few More Gates (slides)  
October 19 No Class (Fall Break)
October 22 Lecture 18. Arithmetic Circuits (slides)  
October 24 Lecture 19. An ALU (slides)
October 26 Lab #5: C Arrays, Pointers, and Structures  
October 29 Lecture 20. Binary Multiplication (slides)  PS #3 due
October 31 Lecture 21. Memory, Latches, and Registers (slides)  
November 2 Lecture 21. Synchronous Logic (slides)  
November 5 Lecture 22. FSMs and Turing Machines (slides)  
November 7 Lecture 23.  FSMs and Turing Machines (cont) (slides) Problem Set  #5
November 9 Lecture 24. Building a Computer (slides)  Problem Set #4
November 12 Lab #6: A Program in Many Parts  
November 14 Lecture 25. Computer Performance (slides)
November 16 Lab #7: Function Pointers  
November 19  Exam #2: Covers lectures 13-24  
November 21 No Class (Thanksgiving Break)
November 23 No Class (Thanksgiving Break)
November 26 Lecture 26. Introduction to Pipelining (slides) PS #4 due 
November 28 Lecture 26. Pipeline Hazards (slides)  
November 30 Lecture 26. Memory Hierarchy & Caching (slides) Lab #8
December 3 Lecture 27. Virtual Memory (slides)  
December 5 Lecture 28. Virtual Machines & the OS Kernel (slides)  PS #5 due 
December 8 Final Exam: In SN014 from 8am-11am. (Saturday)



Site built using pyWeb version 1.10
© 2010 Leonard McMillan, Alex Jackson and UNC Computational Genetics