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.
- All questions about course material and assignments should be posted to Piazza. Other students invariably have the same questions as you do, and posting them to Piazza encourages discussion.
- Post questions publicly as much as possible (you can set your posts to be anonymous to your classmates).
- Answer your classmates' posts. Answering questions on Piazza is a great way to learn, and it helps you actively participate in the course.
- Don't forget to search the message board before posting! Your question may have been already asked and answered.
Your grade will be based upon five homework assignments, two exams, short weekly quizzes, and (possibly) 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.
Quiz: 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 due on Mondays 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: 15%
- Final Exam: 20%
- Quizzes: 5%
- Project: 20%
- Total: 100%
- Assignments: 40% (8% each)
- Midterm Exam: 25%
- Final Exam: 30%
- Quizzes: 5%
- Total: 100%
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 96 late hours (four 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 hours late, you would write at the top "Turning in 3 hours 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.
There will be two exams in this course. The exams will be closed-book and closed-notes. They will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class). So, keep up with those readings!
I want to encourage you to discuss the material and work together to understand it. Here are my thoughts on collaborating with other students:
- The readings and lecture topics are group work. Please discuss the readings and associated topics with each other. Work together to understand the material. I highly recommend forming a reading group to discuss the material -- we will explore many challenging ideas and it helps to have multiple people working together to understand them.
- It is fine to discuss the topics covered in the homeworks, to discuss approaches to problems, and to sketch out general solutions. However, you MUST write up the homework answers, solutions, and programs individually. You are not permitted to share specific solutions, mathematical results, program code, knowledge representations, experimental results, etc. If you made any notes or worked out something on a white board with another person while you were discussing the homework, you shouldn't use those notes while writing up your answer, however tempted you may be to do so.
- You are fully permitted to (and should!) discuss projects with members of your team. I also encourage you to work outside of your team to understand the other topics in the course.
- Under ABSOLUTELY NO circumstances should you share computer code with another student outside of your project team. Similarly, you are not permitted to use or consult code found on the internet for any of your assignments.
- Exams and papers, of course, must be your own individual work.
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.
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.