|Class home page:||http://www.cs.kzoo.edu/cs107/|
This course provides an introduction to multimedia programming: developing programs that create and manipulate text, pictures, sound, and movies. Topics include creating negative and gray-scale images, reversing and splicing sounds, creating sound visualizations, and creating animations. You will learn some of the concepts and techniques underlying software applications like Photoshop or SoundEdit as well as fundamental concepts underlying all of computing, such as algorithms, abstractions, and how computers represent numbers, text, images, and sound.
Hands-on programming is a central component of the course, embodied in weekly labs and frequent programming assignments.
Text: No text required; readings will all be available online.
You can find other references in the class bibliography.
Topics Week 1: Introduction to Course; Creating Web Pages;
Variables and Functions in Python
Week 2 - 4: Pictures as Media Types; Conditions and Looping
Week 5: Midterm Exam Week 5 - 7: Sound as a Media Type; Testing and Debugging Week 8: Movies: Generating Frames, Creating Animations Weeks 9 - 10: Algorithm Analysis, Complexity, and Computability Exam Week: Final Exam
Grades will be based on:
Attendance and Class Participation 10% Problem Sets and Laboratory Assignments 40% Programming Projects 25% Examinations 25%
Attendance and Participation:
Regular attendance and fully engaged participation is expected of all students in this course and will affect your grade. Active participation means being on time, being prepared, listening to others, contributing ideas of your own, and asking questions as they come up. Furthermore, attendance is absolutely required for the weekly labs. Failure to notify an instructor in advance of missing a lab will result in no credit for that lab.
Assignments, announcements, class notes, and other material will be made available on the course web site:
http://www.cs.kzoo.edu/cs107/Students are responsible for checking this resource frequently.
Reading assignments and problem sets may be assigned for each class. You are expected to come to class having completed the assignment and being prepared to discuss both the ideas from the reading and your solutions to any exercises. You should also bring questions you have from the reading to class. You may work on the problem sets in groups; just be sure that each group member understands each answer well enough to present it to the class. Problem sets will be turned in.
Most laboratory assignments will be completed during the weekly lab time, although some may be due the next day. The programming assignments will be more complex, and may take a week or longer to complete. The time required to write a program and debug it is difficult to predict. We will make programming assignments available online far enough in advance that you will have some flexibility in scheduling your work, but you are responsible for budgeting your time wisely so that you will be able to complete your projects on time. Assignments that are turned in late will receive only partial credit unless you clear it with an instructor in advance.
Collaboration and the Honor System:
This course operates in accordance with the principles of the Kalamazoo College Honor System: responsibility for personal behavior, independent thought, respect for others, and environmental responsibility. In particular, academic integrity is a fundamental principle of scholarship. Representing someone else's work as your own, in any form, constitutes academic dishonesty. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the College honor system. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources.
Problem Sets: You should feel free to work with others on the problem sets. As you work with others, keep in mind that the goal is not just getting a solution to the problem, but learning how to solve the problem yourself.
Laboratory Assignments and Programming projects: You may discuss the requirements and strategies of a programming assignment with others in the class, but you should not look at code belonging to anyone else or make your code available to anyone else. If you have code-specific questions you should address them to a course TA or computer science faculty member only. You should acknowledge in your program documentation any help you receive. This includes any TAs or instructors who helped, as well as any classmates with whom you discussed general or specific ideas.
Exams should be entirely your own work.
Penalties for a first violation of the Honor System in this course may include receiving no credit for an assignment, a lowered course grade, or failure of the course. Depending on the severity of the incident, a report may be sent to the Dean's Office, which may result in additional consequences, including suspension from the College. Any subsequent violation will result in the immediate failure of the course.
Any student with a disability who needs an accommodation or other assistance in this course should make an appointment to speak with the instructor as soon as possible.