Computer Architecture -- CS 429 -- Syllabus

Homepage: http://www.cs.utexas.edu/users/byoung/2014-fall/cs429/cs429.html
Homepage: http://www.cs.utexas.edu/users/hunt/class/2014-fall/cs429/cs429.html


       Unique Numbers:  52915, 52920, 52935, 52940, 52945, 52960, 52965

          Instructors:  "Warren A. Hunt, Jr." <hunt@cs.utexas.edu>
                        "William D. Young" <byoung@cs.utexas.edu>

      Office Location:  Hunt:  GDC 7.818, Young:  GDC 7.810

In this class, we will discuss how computers are organized and how primitive building blocks can be used to create a computing system. We will inspect a subset of the X86 instruction-set architecture and we will investigate how to program at the assembler level. We will introduce students to modern microprocessor memory hierarchy and other aspects of contemporary computing systems. Student participation and interest can partially influence the topics discussed and the assignments given, so feel free to suggest items of interest to you. The point of this course is to build up awareness of computer organization so the interested student is ready to pursue more advanced computer-architecture topics and to be a better user and programmer of computers.

The text book for this class is "Computer Systems, A Programmer's Perspective" by Randal E. Bryant and David O'Hallaron, Prentice Hall, 2011. In the book preface (page xxiii), there are five different kinds of courses that the authors propose. In our class, we will follow the Course ORG+ most closely. Tests and quizzes are open-book, open-notes affairs -- however, no electronic devices (laptops, cell phones, tablets, PDAs, calculators) of any kind are allowed during testing and quizzes. As such, you may very-much wish to have a physical copy of the book as it will be a helpful reference during testing periods. The class that follows this class, CS439, also uses the same textbook -- so for the price of one book, you can use it in two classes.

We will program some in C. We recommend you have access to "The C Programming Language", second edition, by Brian Kernighan and Dennis Ritchie, Prentice Hall Software Series. For examples and help with C-language use, you will find that there are many, many Web pages devoted to C-language programming. Why C, or its extension, C++? It is the language that is used to implement many systems, such as FreeBSD, Linux, MacOS, Windows, as well as many user tools (e.g., grep, ed, sed, emacs,...). Java programmers should have no problem with the subset of C that we will use; for the subset used, its behavior will be similar Java language statements.

Our office hours are listed on the main class webpage. In addition, if you need help, you may certainly seek out and visit with the class TAs. You may arrange to meet us at other times than those listed, but you will need to send E-mail to arrange a time.

The following gives an outline of what we will discuss. We are open to discussing other architecture topics of general interest, and we will include some of our own microprocessor design experience. The syllabus below is approximate; the exact rate at which we will cover some material may vary.

  Schedule Below is Approximate, Lectures Dates May Change Slightly

  *** NOTE:  Test dates are tentative until September 3rd ***
  *** NOTE:  Laboratory assignment and due dates are tentative until assigned ***

00     Aug 27  Course Introduction, Chapter 1
               Y86 Introduction, C programming

       Sep  1  No class, Labor Day Holiday
01     Sep  3  Chapter 2, C programming, Laboratory 0 assigned

02     Sep  8  Chapter 2
03     Sep 10  Chapter 2

04     Sep 15  Chapter 2, Laboratory 1 assigned
05     Sep 17  Chapter 2 and Section 4.1, Laboratory 0 due

06     Sep 22  Chapter 3, Exam Discussion
07  *  Sep 24  Chapter 3, In-class Exam

08     Sep 29  Chapter 3, Class assembler/simulator
09     Oct  1  Chapter 3

10     Oct  6  Chapter 3, Laboratory 2 assigned
11     Oct  8  Chapter 3

12     Oct 13  Chapter 3, Laboratory 1 due
13     Oct 15  Chapter 3, Mid-Term Exam Discussion, Laboratory 2 assigned

14  *  Oct 20  Chapter 4, Mid-Term Exam
15     Oct 22  Chapter 4

16     Oct 27  Chapter 4
17     Oct 29  Chapter 4

18     Nov  3  Chapter 5
19     Nov  5  Chapter 5, Laboratory 2a due

20     Nov 10  Chapter 6, Exam Discussion
21  *  Nov 12  Chapter 6, Exam

22     Nov 17  Chapter 6, Laboratory 3 assigned
23     Nov 19  Chapter 6, Laboratory 2b due

24     Nov 24  Chapter 7
       Nov 26  No class

25     Dec  1  Chapter 7, Laboratory 3 due
26     Dec  3  Course Summary, Stump the Professor

       Dec  9  Extra (7:00 pm) Review Session

    *  Dec 12  Final Exam, 9:00 am -- noon  tentative; Young's Class
    *  Dec 15  Final Exam, 2:00 pm -- 5:00  tentative; Hunt's Class

  Schedule Above is Approximate, Lectures Dates May Change Slightly

There will be three in-class examinations, two short (50 to 60 minute) exams and one midterm (70 to 80 minute) exam. See the class syllabus (marked with a "*" above) for the dates. There will be a number of "pop quizzes". There will be a final (150 minute) exam given. Homework will be assigned each week on Monday and due nine days later (Wednesday) by class time; no homework will be assigned the last week of class, and there may be an easy project due the last week of classes.

To the best of our current knowledge, the final exams are:

You should probably confirm this for yourself at the UT Registrar's website.

The weighting of the grades for the various aspects of the course are: in-class exams - 32% (Midterm 12%, short exams each 10%), quizzes 5%, final exam - 20%, homework - 15%, and class projects - 28%. The two lowest homework grades will be dropped in the computation of the final homework grade; homework is not be accepted late. The lowest quiz grade will be dropped, and pop quizzes must be taken when given. Projects may be turned in one week late, but no later than the last day of class; late project submissions suffer a 20% reduction of the grade given for the content of the project. Examinations and quizzes must be taken at the scheduled times.

The weighting for the laboratory assignments will be as follows:

  Laboratory   Percentage of Course Grade
  Lab 0:           3%
  Lab 1:           8%
  Lab 2A:          7%
  Lab 2B:          6%
  Lab 3:           4%
Note, the laboratory assignments are important. Once a laboratory turn-in date has arrived, material concerning that laboratory may appear on an exam.

The grading for the entire course will be as follows:

    Course Score    Grade
     [90 -- 100]      A
     [87 --  90)      A-
     [85 --  87)      B+
     [80 --  85)      B
     [77 --  80)      B-
     [75 --  77)      C+
     [70 --  75)      C
     [67 --  70)      C-
     [65 --  67)      D+
     [60 --  65)      D
     [ 0 --  60)      F
Note the interval marks around the course-score column. For example, a course grade of B will be assigned if your semester grade is greater than or equal to 80 and less than 85. This also means that a course grade of at least 67 needs to be achieved for this course to count toward a UTCS degree.

The final exam will be given at the time as provided, set by the UT Registrar. Each time we teach this course, we are told by a student that he/she needs to take the exam early because of an existing airline reservation. Please make sure that your winter break travel plans start after the final exam. If you need to leave prior to to the final exam, then this is not the course for you.

To the best of our current knowledge, the final exams are:

You should probably confirm this for yourself at the UT Registrar's website.

The students that do well in this class are survivors. This class is a lot of work, and it is important to keep current. The material in this class is cumulative; it can be quite difficult to catch up if one falls behind. It is important to keep turing in homework, and homework grades are our most reliable indicator of how well a student will do in this class. Note, it is important to show up for class, as pop quizzes are given, and material not in the book may be discussed.

Return to CS429 course homepage.