Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments. Other students invariably have similar questions and concerns as you do and they, too, will appreciate your participation. Most importantly, your participation allows us all to develop a common terminology and understanding of the abstract and difficult concepts we study, and is the only way for me to understand what you and other students might have difficulties with.

I welcome feedback during the semester about the course. I am available to answer student questions, listen to concerns, and talk about any course-related topic (or otherwise!). Come to office hours! This helps me get to know you. You are welcome to stop by and chat. There are many more exciting topics to talk about that we won't have time to cover in-class.

In particular, we encourage students to find mistakes in the lecture notes and the powerpoint slides. Students who report mistakes will get a small amount of credit. Please send all course communications through Piazza. Your post should be public for general questions, private to all instructors (which includes the TAs) for any student-specific issues (e.g., grading, etc.), and private to Prof. Roth for extremely personal matters.

Although computer science work can be intense and solitary, please stay in touch with me and the TAs, particularly if you feel stuck on a topic or project and can't figure out how to proceed. Often a quick face-to-face conference or Piazza post can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments and projects early, since we will be covering a variety of challenging topics in this course.

We will be using Piazza as the course message board. We also make course-wide announcements through Piazza, be sure to sign up for it. You are responsible for the content of all announcements on Piazza.


Your grade will be based upon five homework assignments, two exams, short weekly quizzes, and (for CIS519 students) a course project. Assignments must be submitted according to the assignment submission instructions.

Homeworks: There will be 5 problem sets, most of which will involve Python programming and experimental work. Instructions on how to submit solutions will be available for each assignment.

Quizzes: There will be short quizzes nearly every week, hosted on Canvas. The purpose of these quizzes is to get you to review the lectures from the previous week and to think about the involved content. Quizzes will be short (~10 minutes) and are open notes. In general, they will be made available on Thursday, and be due on Sundays at 11:59 PM; consult the course schedule for further details.

At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:

  • Assignments: 40% (8% each)
  • Midterm Exam: 20%
  • Final Exam: 35%
  • Quizzes: 5%
  • Total: 100%
For CIS519 student, the project will be 20% or the grade. That is if the weighted class grades as computed above is G and the project grade is P, the final grade will be 0.8*G + 0.2*P. In addition, some of the HW assignments will have extra credit, and there will be extra credit for class participation.

Academic Integrity

All work in this course is subject to the University's Academic Integrity policy. Violations of the academic integrity policy or the course collaboration policy will incur consequences according to university regulations. Penalties for academic dishonesty may lower the final grade in the course. If one student shares code with another, both the donor and the recipient of the code are in violation of the academic integrity policy and will be referred to the Office of Student Conduct.

As we will state explicitly for each of the assignments, we encourage people to work together and discuss the assignments. However, each of you should produce your own code and your own write-up. If required by any assignment, you must list all people you worked with or consulted, and all resources you consulted (excluding the course textbooks and notes) during the completion of the assignment.

Submission and Late Policy

All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment. E-mailed submissions or privately Piazza-posted submissions will not be accepted. Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance.

Everyone will receive 4 late days . It is up to you to track how many late days you've used and mark your count at the top of each late hardcopy submission. (For example, if you turn in one assignment 3 days late, you would write at the top "Turning in 3 days late")

Once you exhaust you late budget, your submissions will not be accepted. The reason is that we want to post solutions in a timely manner, and waiting too long will already affect your fellow students.

Regrade Policy

Each written assignment will have a regrade request deadline that will be posted after the assignment has been returned with your score. Regrade requests need to be endorsed by TAs during OH. Otherwise, they will be automatically rejected.


There will be two exams in this course. The exams will be closed-book and closed-notes. They will cover material from lectures, homework, and (occasionally, if stated explicitly) assigned readings (including topics not discussed in class).

Collaboration Policy

I want to encourage you to discuss the material and work together to understand it. Here are my thoughts on collaborating with other students:

If you have any questions as to what types of collaborations are allowed and which are dishonest, please ask me before you make a mistake.

Electronic Devices

I have no problem with you using computers or tablets to take notes or consult reference materials during class (even though, some research questions the benefit of this) . Tempting though it may be, please do not check e-mail or visit websites that are not relevant to the course during class. It is a distraction, both for you and (more importantly) for your fellow classmates. Please silence your phones and computers when you enter class.