CPSC 120: Principles of Computing using Multimedia Design
(Fall 2008)

Lecture: 1:55 - 2:50 (period 6) Mon/Wed, Gulick 206A (Class Schedule)
Lab: 1:55 - 2:50 (period 6) Fri, Gulick 208 (Lab Schedule)
Web: http://math.hws.edu/mcorliss/teaching/fall08/cs120/index.html

Announcements

  • [Dec 8] - There will be no TA office hours tonight, Thursday night or next Sunday night. Also the office hours on Tuesday have been shifted to 6-8 (the others are 8-10). If you were planning on utilizing one of the TA office hours that were cancelled or moved, please let me know. We should be able to find a time to meet and talk about the project.

  • [Sep 26] - The due date for lab 3 has been extended to Monday, 9/29 at the start of class (it was originally due on Friday, 9/26). Note though that lab 4 was handed out and is due on Friday, 10/3, so you want to complete lab 3 as soon as possible.

  • [Sep 12] - There are teaching assistants (TAs) available for help in Lansing 310 from 8pm-10pm Sunday through Thursday (every night except Friday and Saturday). The TAs are primarily for CS 124, but can also help with 120 when they are not overwhelmed with 124 students. For instance, the CS 124 homeworks are often due on Tuesdays so you probably want to avoid the Monday office hours (the Sunday office hours may also be busy). Some of the TAs have not programmed in Python and may be unable to help in some cases. But definitely take advantage of this additional help whenever it is available and you need it.

  • [Sep 1] - Each student must meet with me at least once during the first two weeks of the semester (9/1-9/15). The meeting will last approximately 15 minutes. You are responsible for contacting me and setting up this meeting. I look forward to meeting with all of you!

  • [Sep 1] - My office hours are Mon/Wed 3PM-4PM, Thu 10AM-noon, and Fri 9AM-10AM. Please stop by with any and all questions or comments. If you can't make my office hours then send me an email and we can coordinate a meeting at another time. In addition, feel free to stop by my office unannounced at any time and if I'm available I will meet with you.

  • [Sep 1] - Make sure you view the class schedule, lab schedule, and this page regularly.

Staff

Instructor: Marc Corliss (corliss at hws dot edu)
                   Office hours: Mon/Wed 3PM-4PM, Thu 10AM-noon, Fri 9AM-10AM.

Teaching Assistants:
     Keenan Simons (thaddeus dot simons at hws dot edu)
          Office hours: Sun 8pm-10pm in Lansing Lab (310).
     Nate Davidoff (Nathan dot Davidoff at hws dot edu)
          Office hours: Mon 8pm-10pm in Lansing Lab (310).
     Sara Young (sara dot young at hws dot edu)
          Office hours: Tue 8pm-10pm in Lansing Lab (310).
     Will van Steen (William dot VanSteen at hws dot edu)
          Office hours: Wed 8pm-10pm in Lansing Lab (310).
     Rob Hendry (robert dot hendry at hws dot edu)
          Office hours: Thu 8pm-10pm in Lansing Lab (310).

      Note: the TAs primarily handle CS 124, but they also can help with CS 120 when not overwhelmed with 124 students.

Course Summary

Ever wondered how Adobe Photoshop manipulates your pictures or how Movie Maker edits your movies? Or, more generally, ever wondered how computers manipulate any media such as pictures, sounds, and movies? This course will answer these questions, while exposing students to some of the principles of computer science. In lab and project work, students will learn how to write computer programs (in Python) for creating and manipulating three types of media: pictures, sounds, and movies. In addition, students will learn how to design web pages and will display their course work on web pages viewable via the Internet.

This course is ideal for anyone interested in learning some computer science or multimedia design (e.g., majors in art, music, architecture, media and society, etc.) or both. No background in computer science or computer programming is required or necessary. The course is designed to be taken by non-majors as well as those who may be considering computer science as a major or minor.

Click here to see some examples of multimedia editing that you will be doing in this course.

Active Learning

Computer science and programming are best learned by doing. In that spirit, CPSC 120 emphasizes active rather than passive learning. In other words, students will learn programming by actively writing programs either on a computer or on the board in class. Each Friday, we will have a lab (in Gulick 208) where students can get hands-on programming experience with a chance to get help from other students or the instructor. Students will also use laptops in some of the lectures in order to make sure they master the current topic. Finally, in lectures, students will be called on to participate in working out programming examples on the board.

Textbook

Introduction to Computing and Programming in Python, A Multimedia Approach by Mark Guzdial.

Programming Environment

Students will use the Python programming language in this course. Students will write their Python programs within JES (Jython Environment for Students), a student-targeted Python programming environment developed at Georgia Tech. We will actually use a variant of JES called kJES, which was developed at Kalamazoo College.

Course Work

Labs. On Fridays, we will have a lab (in Gulick 208) rather than a lecture. The labs give students hands-on experience and a chance to get help from other students or the instructor. Helping other students during the lab is encouraged. Students will have to complete some lab exercises that must be turned in by the start of the following lab (a week later). Although students may collaborate on the labs, students must write up their solutions individually. Late lab exercises will not be accepted, although the lowest lab grade will be dropped. Lab exercises will also be posted online for those who miss the lab.

Projects. There will be three projects, in addition to the weekly labs. These will require students to write more sizable programs than in the labs. Students will create a picture collage for project 1, a sound collage for project 2, and edit and transform a movie for project 3. Projects are due by the beginning of class. Students will work in teams of two to three, although all students must significantly contribute to the project and understand all of the code that is submitted. Late projects are accepted until the solutions are posted, which is one week after the project was due. 10% of the total grade of the project is deducted for each late day. If the project is due on Friday at 1:55pm (start of lab) then a submission on Saturday at 2:30pm is two days late and will lose 20%. A submission on Saturday at 1:55pm is only one day late and will lose 10%.

Exams. There will be two midterm exams and a final exam. The midterm exams will be in-class, written (no programming on the computer), and closed book/notes. The first midterm is tentatively scheduled for Monday, October 6th, in class. The second midterm is tentatively scheduled for Monday, November 10th, in class. The final will be cumulative, but will emphasize aspects of the material covered after the second midterm exam. The final exam is scheduled for Thursday, December 18th from 7:00pm to 10:00pm in Gulick 206A (our normal classroom). Note: the final exam date and time is scheduled by the registrar's office and will not be changed. Rescheduling or making up of exams will only be allowed for *compelling* circumstances. Arrangements must be made in advance for non-emergencies. Making up a missed exam will only be allowed with documentation from an appropriate person (dean, doctor, etc.).

Attendance/Participation. To get full credit for participation, students should attend all lectures (MW, 1:55-2:50, Gulick 206A) and labs (F, 1:55-2:50, Gulick Hall 208). Students can miss, at most, three combined lectures and labs (for any reason). If a student misses more than three classes (combined lectures and labs), they will lose 10% of their attendance/participation grade per extra day missed. In addition, students must meet with the instructor once in the first two weeks of the semester (9/1 to 9/15). This meeting will take approximately 15 minutes. It is the student's responsibility to arrange a meeting time with the instructor. If a student fails to meet with the instructor within the first two weeks, then they will lose 20% of their attendance/participation grade.

Grading

Labs: 30% (approximately 3% each)
Projects: 25% (8.33% each)
Midterm exams: 20% (10% each)
Final exam: 15%
Participation, attendance, etc.: 10%

Academic Integrity

The Principle of Academic Integrity (see the HWS Catalogue, p. 33) governs the work completed in this course. The following outlines specifically how this principle applies.

Exams. All exams are to be completed solely by the student whose name is on the paper. Unless otherwise specified, these are closed book/notes, which includes any materials not provided as part of the exam.

Labs. In the labs, students can work together and are encouraged to do so. However, each student must write up their solutions independently, including both written answers as well as electronic files. Each student must understand all submitted work and be able to explain this work to someone else. Copying part or all of someone else's solution is prohibited. Identical or nearly identical solutions will be considered one individual lab and the students will share the points for that lab. For example, if three students submit identical writeups that are 50% correct, then each student will receive a 16.6% (1/6) on that lab. If a solution was completed with the help of someone outside of the course, then that solution will receive a 0.

Projects. The projects must be solely the work of the team members that submitted it. Students may not work with other students outside of their team, including discussing ideas, offering debugging help, or looking at their programs. Students may receive debugging help from a tutor, but anything beyond debugging should be referred to the instructor or the TAs. Teams must document and understand all the help received from the tutors, TAs, and the instructor (i.e., name of tutor/TA/instructor who helped and how they helped). Team members may consult the book, their notes, any course materials provided in class or on the course website, and reference books found in the lab. Use of other materials (including websites) is not allowed. It is never acceptable for a student to be in possession of a program (either hardcopy or electronic) written by someone outside of the team (regardless of whether that person is at HWS). Copying any part of a project will result in a grade of 0 for all team members and, in addition, the case will be taken to the HWS committee on standards. For a second offense, the students involved will fail the course.

Each project (and also each lab) submitted for credit will be checked by a plagiarism detector called MOSS (http://theory.stanford.edu/~aiken/moss/) to determine if it was copied. MOSS is highly accurate at detecting plagiarized software (changing a few variable names, comments, etc., will not help). In addition, any team that submits a suspicious program will have to explain their code to the instructor. If they are unable to effectively explain the code, then they will receive they will not receive credit for the assignment and the case may be taken to the committee on standards.

Finally, for each team, every member must contribute in a significant way to the project and must understand all parts of the project and be able to explain it to the instructor. A team member who does not make a significant contribution or does not understand all of the submitted code will receive a 0.

Summary. The moral of the story is students should not cheat in this class. For each case of cheating, the involved students will receive a 0 on the assignment, and the case will be pursued with the HWS committee on standards (excluding labs). It is better to submit an incomplete solution than to submit a plagiarized solution.

Center for Teaching and Learning

Hobart and William Smith Colleges encourages students to seek the academic collaboration and resources that will enable them to demonstrate their best work. Students who would like to enhance their study skills, writing skills, or have other academic inquiries should contact the CTL. You may visit the CTL web site to learn more about the services and programs that are available.

If you are a student with a disability for which you may need accommodations, you are required to register with the Coordinator of Disability Services at the CTL and provide documentation of the disability. Services and accommodations will not be provided until this process is complete. The web site for information pertaining to registration with the CTL and documenting disabilities is: http://www.hws.edu/studentlife/stuaffairs_disabilities.aspx.

Resources