Instructor and office Hours


Lecture attendance is not required, but it’s probably a good idea to come.

Lecture sections:

Teaching Assistants

There are no recitations for this course, so the only TA is the grader.



OPTIONAL Textbooks

None of these textbooks are required. I’m not really a book person. However, they may be useful reference, especially the Rust one.


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.

Projects (x4): 60%
Exams (x2): 40%

Each project is worth 15% of your grade; each exam is worth 20%.

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.

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.”

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 (but NOT labs) 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.

There is a zero-tolerance policy for cheating. If we believe that you have cheated on your assignment, all involved parties will fail the course. Sorry.

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.