Instructor and office Hours


Lecture attendance is not required, but it’s probably a good idea to come. You are required to wear a mask in lecture. If you think you know better than doctors, then go get a damn medical degree.

The first two weeks, you can attend remotely if you wish, but after that (starting 9/13) we are expected to return to in-person instruction.

Teaching Assistants


Recitation attendance is not required, but you are welcome to work on the labs and ask questions.

Since all of you are part of the same “class,” I really don’t mind if you are enrolled in one recitation but attend another. I know the enrollment system is limited and doesn’t handle this very well, so don’t stress out about it. Just go to whatever section is handy.


Computer Organization and Design (Patterson and Hennessy), 5th edition? It’s a good book if you grasp this material easily, but if you’re struggling, it can go into a lot of unnecessary/confusing detail.

5th edition isn’t strictly required, as the material for this course hasn’t really changed much since the 3rd or 4th editions.

Also I don’t really care for the “PCs are over” narrative that the 5th edition has. They kinda butchered some of the later chapters because of it.


Your performance is your own. I do not “give” grades, you earn them. I also don’t announce averages/medians/etc. for the same reason. This is a class, not a competition.

Your grades are available on Canvas.

This breakdown is subject to change. I hope it won’t, I really do, but it may change. In that case, I will try hard to not mess up anyone’s grades. Also you can tar and feather me.

Labs (x8): 10%
Projects (x2): 50%
Exams (x2): 40%

The grading scale:

90-93% A-   94-96% A   97%+ A+
80-83% B-   84-86% B   87-89% B+
70-73% C-   74-76% C   77-79% C+
60-63% D-   64-66% D   67-69% D+
<60% F            

I do round percentages after all other calculations have been done. So if your grade calculates as a 93.5%, it will be rounded up to 94% and be an A.

There are VERY RARELY any curves. But I am not a professor where “a 40% is a B” is the norm. I haven’t needed to curve anything in years, as the grade distributions are usually well-balanced.

Late Policy

Projects and labs are due for full credit at 11:59:59PM on the due date. I’m not super strict about it, so don’t worry if you turn it in a little past midnight.

Projects can be turned in late by 11:59PM on the next day. There is a 10 point penalty for late submission, taken off after all other grade calculations (e.g. extra credit).

For courses with labs, labs cannot be turned in late.

If you have a major problem that means you can’t turn in a project on time, contact me and explain what’s up; I’m pretty accommodating. But that doesn’t mean I’ll always give one, so don’t take it for granted.

Academic Integrity

Please read this page.

For labs (if applicable), feel free to talk about them with your classmates and friends. Try to do the work on your own. There’s no real benefit to copying someone else’s, because most of the grade is from attempting it, and they’re not worth much anyway.

For projects, you must do all the work yourself. If you happen to talk with a classmate/friend about understanding the project, that’s fine; but do NOT “help” each other on the actual work. If you are worried that you or a friend will fail the project, ASK ME! If someone comes to you and starts asking for you to share your code, TELL ME!

You may not use online resources such as StackOverflow, or projects from previous offerings of this course, to complete your work. If we believe that you have cheated on your assignment, all involved parties will receive a 0 for the assignment. If this is the second offense, you will fail the course.

Do not post your code publicly until at least after the course has ended, and preferably after you have graduated. This means places like GitHub, GitLab etc. Yes I know, you want to post your code to show to potential employers. It is possible to make private repos and invite them to them in that case (as a student, you get free features on GitHub).


Announcements are sent through Canvas, which also sends them through email. Please be sure to check your email regularly or set your phone up to notify you.

There is an online chatroom through Discord. Check the pinned announcement on Canvas for the link. Here is a page with the server rules and some basic info if you are new to using Discord.

Please don’t direct message me as your first option when you have questions. I would love to be able to help everyone individually, but there are so many of you, and I have a lot of work to do. If you can (without showing your code), ask questions in the public chat first. Someone there has probably already encountered it and can help you!


You are expected to behave respectfully to your fellow students, the instructor, and the teaching assistants.

Jokes or comments about sex, gender, race, ethnicity, religion, etc. will not be tolerated. This is not Reddit or 4Chan. Behave as if you were a professional: keep the discussion about the subject at hand and try not to bring personal issues into it.

These rules apply not only to lecture, but also recitations, office hours, online chats, emails, etc.

Religious Observances

If a religious observance will prevent you from attending recitation/exams/being around to submit projects, please contact me as early as possible in the term about them so we can make accommodations.


If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and the Office of Disability Resources and Services (216 William Pitt Union; 412-648-7890; TTY: 412-383-7355) as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.