Instructor and office Hours


Teaching Assistants


You should go to recitation. They’re there for you to get guidance on the labs and projects, review for exams, and ask questions. Most students get a lot out of recitation.


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.

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

The grading scale (look closely):

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. This is done automatically by Canvas - when it comes time to look at your final grade, pay attention to the letter grade, not the percentage.

I am not a professor where “a 40% is a B” is the norm, so I haven’t needed to curve anything in years, as the grade distributions are usually well-balanced. So the answer to “is this going to be curved?” is virtually always “no.”


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 some basic info if you are new to using Discord.

If you need help, post a one-sentence description of your problem first in the channel for your class (e.g. #cs0447). From there, I or one of the TAs will be able to help you! But do not post more than 2-3 lines of code in public. Because that would be sharing code, which is against the rules below.

Late Policy

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

Projects (but NOT labs) can be turned in late by 9:00 PM on the next day. There is a 10 percent penalty for late submission, taken off after all other grade calculations (e.g. extra credit).

Labs cannot be turned in late, and there is no “late penalty” for labs. Either you turn them in on time or you don’t.

If you have a major problem that means you can’t turn in a lab or 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.

Correct Submission Policy

It is your responsibility to submit the correct file(s) for all assignments. If you submit the wrong file (e.g. an earlier unfinished version, or the wrong assignment, or a starting file), you will be asked to resubmit what you have, but you will get a 20 percent penalty for it.

For projects, this stacks with the late penalty - if you turn the wrong file in, and you do it late, that will be 30 percent off.

Do not attach the corrected file to a Canvas comment on your assignment. Graders will never grade these. Instead you will be asked to resubmit as normal.

Academic Integrity

In the real world, people work together to solve problems. This is not the real world. This is an artificially created environment designed to evaluate your understanding of the material being taught.

To that end, you must do all graded work yourself. That means that every piece of every lab, project, and exam must be your own work, not taken from anyone (or anything) else.

There are two exceptions:

When you violate academic integrity, you are either lying about your skills, or helping someone else lie. Dishonesty can pay off in the short term, but in the long term it will catch up with you. Here, you might fail a course and have to retake it. In the real world, you might get fired or sued.

The following things are all violations of academic integrity:

None of the following are valid excuses for violating academic integrity:

By the way, if you start to violate academic integrity, you can stop. As long as you don’t turn in what you started “getting help” on, if you come to me and admit it, you won’t get any penalties. I may give you more time to finish the assignment on your own, but don’t count on it. Where it crosses the line from “making a mistake” to “facing the consequences” is when you turn in something that you did not do yourself 100%.

If I believe you have violated academic integrity, the following process will occur:

Sanctions for academic integrity violations are as follows:

Last, I know you may be proud of your work and want to show it off to the world, but this makes our job much, much harder in the future. Please do not post your work publicly online. I know you want to post your work 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).


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.