This syllabus is subject to change; check weekly for new information.

Professor: Terry Harvey

Email: tharvey at

Office: online

Office Hours:

Appointments: if you can't make office hours, email your prof for an appt.

Discord will get a faster response (usually within 24 hours) for questions, appts, etc.

Teaching Assistants:

Raphael Thomas Gaetan Poulain, rpoulain at,

Elise Winkley, elisew at,

Matt Balbierer, mattbalb at,

Anuj Shah, anujshah at>,

This term we will be using Discord for class discussion. The system is designed to get you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Discord.

Most online sessions will be saved as screen capture with sound from the classroom. These are available through Canvas. Use these videos for your own study purposes. If you speak during class, your voice will be recorded just like the professor's.

This course has a mandatory co-requisite of Math 241 or higher.

Student Outcome Objectives:

Useful Links

Grade Breakdown, modified to reflect Fall2020 changes

  Percent of grade
Two projects 15 + 0
Quizzes 10
Assignments 70
Peak Participation Assignments 0
Participation 5
Total 100

Grade Scale



























If you have a disability that requires special accommodation, please contact your professor by email during the first week of class.

The primary means of information delivery this semester will be video. The primary means of actual learning will be you working problems after watching a video. If you get stuck working on a problem set, attend a help session or office hours. Online help sessions and office hours will take place during announced times. They will not be monolithic blocks of virtual lecture, so come prepared with questions. We may break out to work on exercises, check out resources, etc., then return to shared space for analysis. I will not take attendance because I do not know your limitations. If you miss a session you can watch it online - the links will post in Canvas. One way or another, you will be responsible for learning the material covered. While the class sessions will be ideal for discussing material, we will also be able to discuss in lab or in virtual office hours and appointments.

The University has adopted a special policy on grades for this semester. I will assign a regular letter grade, and then it is up to you and the University how you choose to have it show on your transcript and affect your GPA. See

NOTE: Students are required to attend ALL classes. I may make announcements in class that I do not post on the website. I will put any lecture slides on the web, but these are not a substitute for class notes. Many classes will have no lecture slides because we will be coding. It is your responsibility to get the notes from any lecture you miss from another student (not your instructor, and not your TA). Lecture material is critical for projects and exams, and useful everywhere else.

Your class participation grade is based (surprise!) on your participation in class and on Discord. Attendance is not sufficient. To get five points, politely ask and answer at least one question in every class, and/or contribute 3-5 times per week in Discord. If you are unable to do this because of whatever, see me during office hours in the first two weeks of the semester. Part of participation is being a good learning community member - once you have participated in a class, be sure to give others room to do so.

A Note About Programming Conventions

Every organization that writes code (and does it well) subscribes to a set of conventions for naming variables, commenting, formatting, etc. 

Our class will use language appropriate style as discussed in class. You must adhere to the specifications of this style to receive full credit for an assignment. When in doubt, ask, or look up the language's style guide online.

"What happens if we don't do this?"

Horrible things happen. A program that works perfectly but does not have the features described in the style sheet cannot receive a grade higher than 60%, even assuming it is flawless in every other way.

Your Right to See and Question Your Grades

Students have a right to receive their graded assignments in a timely fashion. That said, remember that your TAs are students too, and have deadlines in other courses. The instructor and TAs will endeavor to get all assignments back to students within ten days of the submission date. If this date is not met, please bring it to the attention of the instructor.

All students have the right to know how their grades are calculated, and if any student believes a mistake has been made, it is up to the student to contact the grader to discuss it within ONE WEEK of the return of the assignment. Contact the TA first for labs, homework, and projects. If you are not satisfied after discussing the grade with the TA, then you may bring it to the instructor. Bring exams directly to the instructor.

The grade percentages are on this syllabus. Please use them to calculate estimates of your semester grade. This class typically has little or no curve.

Academic Honesty

I expect you to observe the highest ethical standards, avoiding even the perception of ethical compromise.  You are expected to do your own work unless explicitly instructed otherwise.  This includes programming projects, assignments, quizzes of any kind, and examinations.  All violations of academic honesty will be handled according to University policy.

In addition, copying another person's work without proper acknowledgment is plagiarism, a serious offense, and the one most common to computer science courses.  Anyone that aids another student with work that is expected to be done without collaboration is as guilty as the person who seeks help. Both will be prosecuted. It is strongly recommended that you familiarize yourself with the University's Policy of Academic Dishonesty found in University Code of Conduct at

Any violations will be referred to the Office of Academic Conduct.

The Official Student Handbook.

Any student who in any way facilitates another student's access to someone else's classwork is cheating, whether the classwork is written, electronic, verbal, or any other form.

Furthermore, there have been rare instances of people claiming that their work was stolen. In these cases it is very hard to determine if the person gave their work to someone else, or if it was taken without their permission. If there is any doubt, I will always assume that the work was deliberately shared. It is thus your responsibility to safeguard your papers, your passwords, your computers, and any other means by which your work can be copied.

Group or pair work is subject to the same rules, applied between groups or pairs.