Cary G. Gray | |
Office: | Meyer 159, x5875 |
Office hours: | MWF 2:30-4:00 p.m. |
Tu 1:30-3:00 p.m. | |
and by appointment (esp. Tuesday mornings) |
MWF 12:45–1:50 p.m., Meyer 131
Final exam: 8:00–10:00 a.m. on Tuesday, Dec. 15
Additional (and updated) course information will be available at the class page at
Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective/2e, Prentice Hall, 2010.
I also recommend that you have access to some reference for the C (not C++) language and library. The following is a very good reference:
Harbison and Steele, C: A Reference Manual, fifth edition, Prentice-Hall, 2002.
CSCI 351 Introduction to Computer Systems
An introduction to low-level systems issues from the perspective of the programmer. Representation of both data
and program as produced by a compiler; hardware support for memory, input/output, and parallelism; fundamental
ideas in operating systems and networking.
Prerequisite: CSCI 245.
By the end of this class, you should gain:
Exams and written homework will largely cover items 2, 4, and 5; programming assignments will include items 1 and 3 as well.
Your grade will be based on the following:
50% | exams |
10% | preparation and participation (including attendance) |
40% | homework (including programs) |
There will be two in-class exams (planned for Oct 5 and Nov 9) in addition to the final. The final exam will be weighted as 1.5 times each of the other in-class exams.
Note that your course grade may be lowered up to one letter for disruptive behavior or recurrent absence or tardiness.
Attendance. I expect you to be in class, and you are responsible for what happens in class whether you are present or not. If you are sick or must miss because of other school responsibilities, let me know in advance. If there is an emergency, let me know as soon as practical. You must make arrangements for make-up work (including exams) in advance; after-the-fact arrangements will be permitted only for emergencies, and then only with your timely notification and, in the case of illness, confirmation by the Health Center. (You’ll do well to think of this as practice for keeping a job. Note that you can reach me by e-mail, and my office phone takes messages at all hours.)
I also expect you to be on time. If you come in late, don’t interrupt class, and plan to find out what you’ve missed from another student after class. If the door is locked when you arrive, do not disturb the class.
Your presence in class calls for your full attention. That implies no use of networked devices to be virtually somewhere else. If you need to use a computer of some sort for access to your textbook or to take notes, you should do so with the networking turned off, and you are implicitly promising that you will not use it for any other purpose during class.
Preparation. You are expected to read assigned material, as indicated in the class schedule, before each class meeting: what we do in class will assume that you’ve done the reading. As you read, note anything that you aren’t sure about, and bring your questions to class.
When you are provided a preparation assignment, prepare two (paper) copies of your answers. You’ll hand in one at the beginning of class, and you will want the other as we use it as the starting point for the day’s class. Whether you make a good-faith effort at fully answering the preparation questions will be counted as part of your preparation and participation grade.
Projects and homework Programming assignments are scheduled so that you should be able to complete them a day or two before the due date. Plan to complete them early; that way you’ll have time to ask questions about them in class, and you’ll have time to deal with surprises.
Written homework will be due at the beginning of class, though we may take time to discuss it before it is collected. As with the programs, the due dates are generally set to allow you to attempt the homework a class meeting before it is due. All homework should be neat, clearly labeled, and written on one side only of letter-sized paper; multiple pages should be stapled together.
Be sure you turn in what you have on time: I do not promise to give credit for late assignments.
Academic integrity. I expect you to conduct yourself honestly in this course. When you submit work, you assert that it is your own. If you use an outside source or receive assistance, acknowledge it. Deliberate misrepresentation will result in no credit for the assignment; a second offense will result in failing the course. All offenses will be reported and are subject to college disciplinary action as well.
Because you are encouraged to work together and provide each other assistance, you do risk inadvertent plagiarism. Be cautious, especially when you ask for or provide assistance. Make sure that you don’t let someone else do your work for you, and make sure that you don’t do someone else’s work. Should you discover that a program in one of the textbooks is similar enough to an assignment to provide a useful starting point, that is fine–if you understand it fully and cite it. In all cases, simply be sure that you acknowledge clearly whatever help you receive.
There are two things that you can do that will eliminate the bulk of the temptations in this area. The first is to avoid procrastination: assignments are given with plenty of time for you to ask questions in class or in my office. The second is to be careful how you ask for help: do not ask other students to tell you the solutions to assigned problems; ask questions to figure out what it is you do not yet understand and in order to understand it. (When giving help, don’t be lazy and give away the answers; help your fellow students to learn.)
You are also responsible for ensuring that your work for this course isn’t available for others to copy without your permission. You will need to make sure that file and directory permissions are set properly in the lab.
Special circumstances and needs Wheaton College is committed to providing reasonable accommodations for students with disabilities. Any student with a documented disability needing academic adjustments is requested to contact the Academic and Disability Services Office as early in the semester as possible. Call 630.752.5941 or email jennifer.nicodem@wheaton.edu for further information.
Gender-neutral language For academic discourse, spoken and written, the faculty expects students to use gender inclusive language for human beings.
Here is our initial schedule; watch in class and online for updates.
Date | Reading | ||
Aug 26 | Review and introduction; historical background | start L0 warm-up (due Sep 4) | |
28 | ch. 1, 2.1 | Memory
I:
Representation context; bits, etc.; integers | |
31 | 2.2–3 | signs, arithmetic | |
Sep 2 | finish integers and arithmetic | start L1 bits (due Sep 16) | |
4 | 2.4–5 | floating-point | L0 warm-up due |
7 | Labor Day
| ||
9 | Moore 3.1–4 | Processor
and
Programs
I basic architecture, operands | |
11 | 3.5, 3.8–9 | primitive operations, structures in memory | |
14 | 3.6 | controlstructures | start L2 bomb (due Sep 30) |
16 | 3.7 | functions | L1 bits due |
18 | 3.10– | jumps, conditions | |
21 | 3.10– | loops, switch, proc. call | |
23 | Memory
II:
Allocation address space | ||
25 | procedure call; stacks | ||
28 | 9.11 | heaps | start L3 buffer (due Oct 14) |
30 | System
Model
I:
Protection
and
Abstraction basics of input/output | L2 bomb due | |
Oct 2 | Review | ||
5 | Exam
| ||
7 | to be determined | ||
9 | 8.1 | interrupts and exceptions, handlers | |
12 | 8.2 8.3–5, 8.7 | process,
kernel;
system
call process management | |
14 | 6.1, 10.1–3 | System
Model
II:
I/O files, file descriptors | L3
buffer
due start L4 shell (due Oct 26) |
16 | 10.4– | reusing the fd abstraction | |
Oct 19 | Quad break
| ||
21 | 9.1–2, 6.2–3 | Memory
III:
Caches
and
Translation Address spaces, caches | |
23 | 6.4 | Cache organization | |
26 | 6.5– | Cache consequences | L4
shell
due start L5 cache (due Nov 11) |
28 | pragmatics | ||
30 | 9.3–9.6 | Addresstranslation | |
Nov 2 | 9.9–10 | Memory
IV:
Allocators data structures | |
4 | |||
6 | |||
9 | Exam
| ||
11 | 12.3–4 | System
Model
III:
Concurrency Threads | L5
cache
due start L6 network (due Nov 23) |
13 | |||
16 | |||
18 | 11.1–4 | System
Model
IV:
Networks addressing, sockets | |
20 | 11.5– | RPCs | |
23 | Processors
II:
Parallelism Multiprocessors | L6
network
due start L7 perf. (due Dec 9) |
|
25–27 | Thanksgiving
| ||
30 | memory consistency | ||
Dec 2 | Instruction-level parallelism | ||
4 | start ch. 5 | code improvement (optimization) | |
7 | performance | ||
9 | What lies ahead? | L7 perf. due | |
11 | Review | ||
8:00–10:00 a.m., Tues 15 Dec | Final exam
| ||