2023_syllabus
2023_syllabus
Basics
Instructor: Prof. Martin Herbordt – Office Hours: PHO333, TW 3:00-5:00 and by appointment
Office Phone: x3-9850 -- Email: [email protected]
TF Lab Hours in PHO305/307: M: 5:30-7:30 / T: 7-9 / W: 6:30-9 / Th: 6:30-9 / Fr: 3:00-6:00
Mission Statements: From gates to programs and How computers really work
Course Description: Introduction to the fundamentals and design of computer systems. The starting points are
your basic knowledge of logic design and high-level language programming. The ending points include your ability
to (i) create a working computer using standard HDL design practices, (ii) program that computer in assembly
language, and (iii) be able to evaluate computer system design options at multiple levels. A fundamental outcome
is to understand, through the logic level, how programs run on computers and approaches to writing code for
performance. Topics include computer instruction sets, assembly language programming, logic and algorithmic
design of arithmetic operations, design of sequential logic with registers and buses, CPU design (data path, control,
integrating datapath and control, pipelining), performance evaluation, memory devices, memory systems
(including caching and virtual memory), and I/O. In parallel there is a lab where the focus is on in-depth
understanding of selected comp org topics including HDL design using Verilog and standard system design
methods.
Texts: Patterson & Hennessy, Computer Organization & Design: The Hardware/Software Interface,
6th Edition, Morgan Kaufmann, 2020 – This is the MIPS edition.
Various articles and tutorials (to be posted)
Course Mechanics
• Exams: There are two midterms and a final exam. Exams are closed book/notes with a single standard-sized
sheet of notes allowed (hand-written, front and back).
• Quizzes: Most semesters there are ~3-6 short quizzes. Their purpose is to help you keep up, especially at the
start of a new topic. The quiz grade is computed from the N-1 best quizzes (including absences).
• Attendance: Attendance is essential – much of what we cover in this course will be found nowhere else.
• Readings: … are also essential. There is no way we can (or would want to) go through all you need to know
about any topic during class. Good news - the textbook is a standard so you can expect your future colleagues
to have learned Computer Organization in similar way.
• Homework: There are ~8 homework assignments. Unless stated otherwise, homework is due by the beginning
of class on the date specified using the course web site. Homework will not be accepted after that. Homework
must be readable, so typed is preferred. But scanning or photo (with conversion to pdf) is OK.
Academic honesty wrt HWs: You are encouraged to work together to learn the material and to discuss
approaches to solving homework problems. However, you must come up with and write up the solutions on
your own. See academic honesty policy.
Labs
• Overall: There are ~9 labs. Much more about these later! Some of the labs have a substantial workload (esp. 5-
7, but also 3,4,8), requiring perhaps 10 hours or more for many students. You may want to plan accordingly. It
is therefore essential that you get an early start and understand thoroughly the underlying material before you
start to code. For most labs there is a prelab during discussion section; this is generally a to-be-turned-in-and-
graded assignment, but the real purpose is to help you get started.
• Academic honesty wrt labs: Since these are done by group, the rules for collaboration are more strict than for
homework: except for technical issues labs are all to be done with your group alone.
• Lab Practicalities: The labs are open-ended in the sense that there is not a specified time during which the labs
must be done. Rather, labs are assigned about a week before they are due and it is your responsibility to get
them done on time, generally late Friday afternoons. The TFs are in the lab about 12-15 hours during weeks
when labs are due. Please note that the amount of time that it takes any particular student/group to complete
any particular lab takes can vary substantially (from a few hours to much more than that). The greatest
determinants of duration are how well prepared you are before you start coding and how well you understand
the tools. Much more about this later, especially during discussion section.
• Lab grading mechanism: A large part of each lab is the demo. Because there are many more students that TAs,
you are urged to get the labs done early. For the programming lab on, 5% bonus for finishing by Thursday, 10%
bonus for finishing Wednesday or earlier. There is a 10% penalty for being late one business day (usually the
following Monday) and a substantial penalty for being later than that.
• Discussion Sections: The discussion sections are run by the TFs and serve two purposes: a pre-lab or a pre-
exam Q&A session. Attendance is not graded, but is very strongly recommended.
Grading
Grades are based on a weighted average of HW, quiz, exam, and lab scores. Each category is curved independently.
Since we update all assignments every semester, we never know in advance exactly how the scores in each category
will relate to a letter grade, but here is the general idea:
HWs and Labs. The expectation is that all students will make a significant effort on all HW assignments and will
have working demos of all labs. There is also some opportunity for extra credit on the labs. Therefore the cut-offs
between A/B, B/C, etc. are generally higher than the traditional 90, 80, etc. For example, for an A, a student should
get at least 90s on HWs and 95s on the labs.
Exams and Quizzes. On the other hand, exams and quizzes are often challenging and grades are hard to predict,
so the reverse is true here. Last year, the A-/B+ cut-off for the mid-terms was an 84 and for the final a 78.
Weighting the individual grades in final grade (for reference only, these may change).
• HWs, Quizzes = ~1pt each
• Labs = ~4pts each
• Exams = 18pts, 18pts, 24pts
Please note: You are not competing with each other on grades. There have been semesters when half the class has
gotten A- or better. FYI, the median is often around a B, but this is purely statistical. No student is “average”!
Administration
• Office Hours: My office hours are listed above and on the web site. Normally the best time to catch me
(otherwise) is between class halves or after class; the worst time is right before class when I am setting up. On
occasion I may be traveling and so unable to keep office hours. I will announce this well in advance.
• Email: You should periodically check your email since that is how some notifications (assignments and
coreeccttions) are distributed. Questions via email are always good. If the question/answer has general
interest, I will send it to the class (leaving the questioner anonymous); if the solution is very involved, we may
need to go over it in person.
• Course Web Site: I use the course web site to post class notes, lab and homework assignments, homework
solution sketches, additional readings, and other course information.
• Incompletes: Incompletes are granted only in accordance with university policy, which (broadly) requires a
major personal (non-academic) difficulty near the end of the semester.
• If you have an academic issue of any kind: These happen – please let me know. And note that they are much
easier to mitigate or resolve if you talk to me early – don’t wait.
• Academic Conduct: https://www.bu.edu/academics/policies/academic-conduct-code - Please read the
university academic honesty policy. If something is not clear, then ask. In particular, plagiarism is really serious!
See the notes wrt HW & Labs.
• Course Notes: Because of the nature of the material, Computer Organization is always taught with slides,
although we try to mix things up by doing examples, sometimes on the slides themselves. A version of the slides
will always available well before class, although the final version might not be available until just before class.
• Distractions: What was that? Except for annotating notes, please keep all electronic devices off during class.
This will help me, you, and the students sitting around you.
• Punctuality: I start class promptly so please be here on time (see “distractions”).
• Instructer Errrosr: Please don’t be shy! If you see me make a mistake, please let me know right away. If you are
not sure, that’s even better – it might give me a chance to clarify something.
• Your success is something I really care about! All job markets are incredibly competitive, especially for the really
excellent jobs, but students who do well in this class have a very high probability of working at the best
companies (and becoming researchers, doctors, executives, etc.).