Instructor | David Ferry, Homepage |
Course Web Site | http://cs.slu.edu/~dferry/courses/csci2400/ |
Course meeting times | Monday, Wednesday, & Friday from 11:00 - 11:50, Ritter Hall Rm. 236 |
Midterm exams |
Oct 14th, Nov 11th, regular class time and place |
Final exam |
Dec. 9th, 8:00AM - 9:50AM |
Office hours | Monday & Wednesday from 2:00 to 3:00, Friday from 10:00 to 11:00 |
Computers are designed to perform useful work by executing software, and users of computer systems typically think of computer operation in terms of software and source code. However, computers are physical artifacts and software ultimately executes on hardware. The purpose of this course is to show how high level programs are achieved in hardware, and how modern computer systems are designed in order to facilitate efficient execution.
The goal of this course is for each student to learn:
Catalog Description: Introduction to the organization and architecture of computer systems, including aspects of digital logic, data representation, assembly level organization, memory systems and processor architectures.
Required course textbook: Computer Systems: A Programmer's Perspective, 3rd Ed. by Bryant and O'Hallaron, Pearson, 2016
Supporting: C Programming (a free online book providing a useful C reference)
There will be approximately 7-9 assignments for this course. These are a mix of written and programming assignments whose purpose is to apply course concepts.
Assignments submitted on time will be given full credit. Assignments submitted up to 24 hours late will be given a ten percent penalty. Assignments submitted between 24 hours and 48 hours late will be given a twenty percent penalty. Assignments submitted after 48 hours late will not be given credit, except in the case of extenuating circumstances pre-approved by the instructor.
Date | Topic | Readings | Notes | |
---|---|---|---|---|
1 | Aug 22 | Course Intro (PDF) | CSAPP Ch. 1 | |
2 | Aug 24 | Data Representation: bits, bytes, ints, text, pointers (PDF) Topic: Bits. Bytes. Binary, Octal, and Hexadecimal number systems. |
CSAPP Ch. 1 Bit-Depth and Color Representation |
|
3 | Aug 26 | Topic: Unsigned integer representation | CSAPP Ch. 1 | |
4 | Aug 29 | Topic: Signed integer representation | CSAPP Sec. 2.1-2.4 | |
5 | Aug 31 | Topic: Text data and pointers | CSAPP Sec. 2.1-2.4 | Hwk #1 Assigned |
6 | Sep 2 | Topic: Bitwise and Arithmetic Operations (PDF) | CSAPP Sec. 2.2-2.4 | |
7 | Sep 5 | No Class - Labor Day | ||
8 | Sep 7 | Topic: Complements, Addition, Subtraction | CSAPP Sec. 2.2-2.4 | |
9 | Sep 9 | Topic: Multiplication, Division Topic: Floating Point (PDF) |
CSAPP Sec. 2.2-2.4 | Hwk #1 Due |
10 | Sep 12 | Topic: Floating Point Examples | CSAPP Sec. 2.3-2.4 | |
11 | Sep 14 | Topic: IEEE Floating Point | CSAPP Sec. 2.3-2.4 | |
12 | Sep 16 | Topic: Floating Point Add, Multiply, Cast | CSAPP Sec. 2.3-2.4 | |
13 | Sep 19 | Intro to Linux, C, and Machine Language | No Readings | Hwk #2 Assigned |
14 | Sep 21 | Topic: Intro to Linux and C (PDF) | hello.c int_to_u.c u_to_int.c printchar.c |
|
15 | Sep 23 | Continuing Intro to C | strings_arrays.c pointers.c |
|
16 | Sep 26 | Continuing Intro to C | factorial.c factorial2.c primes.c primes2.c primes3.c primes4.c fibonacii.c |
|
17 | Sep 28 | Topic: Machine-Level Programming (PDF) | CSAPP Sec. 3.1-3.5 | Hwk #2 Due |
18 | Sep 30 | Topic: History of x86 ISA | CSAPP Sec. 3.1-3.5 | |
19 | Oct 3 | Topic: Turning C into Object Code / Assembly Example | CSAPP Sec. 3.1-3.5 | |
20 | Oct 5 | Topic: Assembly Instructions, Registers, Operands, mov and swap example | CSAPP Sec. 3.1-3.5 | Hwk #3 Assigned |
21 | Oct 7 | Program: basic.s | CSAPP Sec. 3.1-3.5 | |
22 | Oct 10 | |||
23 | Oct 12 | Exam #1 Review | Hwk #3 Due | |
24 | Oct 14 | Exam #1 | ||
25 | Oct 17 | No class - Fall Break | ||
26 | Oct 19 | Exam Discussion | CSAPP Sec. 3.4-3.6 | Midterm Reinforcement |
27 | Oct 21 | Assembly Programming 1: Hello, world! | CSAPP Sec. 3.4-3.6 | Hwk #4 Assigned |
28 | Oct 24 | Topic: Machine Programming 2 Assembly Programming 2: Addressing |
CSAPP Sec. 3.4-3.6 | |
29 | Oct 26 | Assembly Programming 3: Arithmetic | CSAPP Sec. 3.6-3.7 | |
30 | Oct 28 | Assembly Programming 4: Flags | CSAPP Sec. 3.6-3.7 | |
31 | Oct 31 | Assembly Programming 5: Control Flow | CSAPP Sec. 3.6-3.7 | |
32 | Nov 2 | Assembly Programming 6: Array Search | CSAPP Sec. 3.7-3.8 | |
33 | Nov 4 | In-Class Programming | CSAPP Sec. 3.7-3.8 | Hwk #4 Due |
34 | Nov 7 | In-Class Programming | CSAPP Sec. 3.7-3.8 | Hwk #5 Assigned |
35 | Nov 9 | Exam Review | CSAPP Sec. 3.7-3.8 | |
36 | Nov 11 | Exam #2 | Hwk #5 Due | |
37 | Nov 14 | Topic: Intro to the Y86 ISA | CSAPP Sec. 4.1-4.3 | |
38 | Nov 16 | Topic: Sequential Processor Architecture | CSAPP Sec. 4.1-4.3 | |
39 | Nov 18 | Continuing Sequential Architecture | CSAPP Sec. 4.1-4.3 | Hwk #6 Assigned |
40 | Nov 21 | Topic: Pipelined Processor Architecture | CSAPP Sec. 4.3-4.5 | |
41 | Nov 23 | No class - Thanksgiving Break | ||
42 | Nov 25 | No class - Thanksgiving Break | ||
43 | Nov 28 | Continuing Pipelined Architecture | CSAPP Sec. 4.3-4.5 | |
44 | Nov 30 | Pipeline Hazards | CSAPP Sec. 4.3-4.5 | Hwk #6 Due |
45 | Dec 2 | Topic: Cache Organization | CSAPP Sec. 4.5, 6.2-6.4, 9.4, and 9.6 | Hwk #7 Assigned |
46 | Dec 5 | Topic: Cache Organization | CSAPP Sec. 4.5, 6.2-6.4, 9.4, and 9.6 | |
47 | Dec 9 | Final Exam - 8:00 to 9:50 | Hwk #7 Due |
Your grade will be determined as follows:
Activity | Grade Percentage |
---|---|
Assignments | 45% |
Participation | 5% each |
Midterm Exams | 15% each |
Final | 20% |
Grading is done on a straight scale (uncurved) with a 90%, 80%, 70%, and 60% guaranteeing an A-, B-, C-, and D- respectively. The grading system may be curved upwards at the discretion of the instructor.
Students are expected to adhere to the academic integrity and honesty policies as defined by both the University's academic integrity policy and the College of Arts & Sciences academic honesty policy.
Two particular points with regards to this class include:
In recognition that people learn in a variety of ways and that learning is influenced by multiple factors (e.g., prior experience, study skills, learning disability), resources to support student success are available on campus. Students who think they might benefit from these resources can find out more about:
Students with disabilities or suspected disabilities are strongly encouraged to both bring any additional considerations to the attention of the instructor and make full use of the university's Disability Resource Center.