Instructor and office Hours


Lectures are held online. I will try using BigBlueButton for the lectures, but if that doesn’t work out, I’ll… figure something out.

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

Teaching Assistants


I have no idea.

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

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): 50% High 3 are 15%; lowest is 5%
Exams (x2): 45% Higher is 30%; lower is 15%
Participation: 5% we’ll see

Participation is a bit discretionary, but there are weekly (ungraded) quizzes and feedback questions. It’s hard to lose points in this category unless you very clearly do not care about the course.

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.

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 Courseweb, 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 Courseweb 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.