Instructor:

Course Web Site:   www.cs.kzoo.edu/cs103/

Required Readings and Videos: There is no required textbook for this course. Required reading and video assignments will be listed on the class Detailed Schedule page and will be available online.

Prerequisite:  None. Students may not take this course if they have already taken COMP 104. (Or either of the older Python courses, COMP 107 and COMP 108.)


Course Overview

This half-unit course introduces the general algorithmic (disciplined, step-by-step) approach to problem solving, and the basic concepts of computer programming in the context of developing Python programs to create and manipulate pictures, sound, and animations.

By the end of this course, students will be able to create basic programs in Python using library functions, user-defined functions, conditional statements, and loops.

Topics to be covered (and approximate course schedule):
Week 1: Variables & Functions
Weeks 2 - 6: Pictures as Media Types
Conditions, Loops, Lists
Program Design
Weeks 7 - 8: Manipulating Sounds
Weeks 9 - 10: Creating Animations

A detailed schedule of readings, assignments, and in-class activities is available on the Schedule page of the course web site.


Format and Resources:

This class will meet twice a week, on Tuesdays and Thursdays. Much of what would typically be the lecture portion of this course has been replaced with readings and short videos that introduce new concepts. You should read/watch these before class. This leaves class time for structured programming exercises and other active learning activities. Active and consistent attendance, engagement, and collaboration are the best ways you can benefit your learning.


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. There are direct correlations between keeping up, how much you learn and can apply later, and your grade.

If you are ill or pose a health risk to other people, you should wear a mask or not come to class. You should keep up as well as your condition will allow by watching class videos, working on assignments, and communicating with your instructor and/or TAs in the Collaboration Center and through Teams.

To create an inclusive and suppirtive learning environment in which everyone can participate fully, we will follow these Community Guidelines adapted from the Center for Research on Learning and Taching (CRLT) at the University of Michigan.

Assignments:

This course consists of many small activities that build on one another. It is very important to remain actively engaged in the course on a regular basis in order to stay on track.

All assignments, as well as links to readings and videos introducing new material, will be made available on the Detailed Schedule page of the course web site. Students are responsible for checking this resource frequently.

Reading and video assignments introducing new concepts will be assigned for each class. You are expected to come to class prepared, ready to apply these concepts in programming assignments or other hands-on activities.

Quizzes provide a way for you to assess your own understanding of basic programming concepts.

Mini-labs and other in-class activities: Class time will generally be for hands-on programming and other active learning activities. Any activities that are not completed in class should be completed before the next class.

Programming Projects: There will be several programming projects. These are longer assignments undertaken outside of class that will give you the opportunity to integrate several skills together.

Assignments are due at the beginning of class.

Assignment due dates have two important functions: to help you plan your time and keep you on track to successfully complete the course, and to make grading more manageable. Programming projects, in particular, are time-consuming and difficult to predict, so you should start them as soon as they are assigned. We will assign homework and projects far enough in advance that you will have some flexibility in when you schedule your work, but you are responsible for budgeting your time wisely so that you will be able to complete your assignments on time. Late assignments may accrue late penalties or might not be accepted at all, unless you clear it with the instructor in advance. To encourage timeliness, assignemnts that are one day late may lose up to 2%; two - three days late may incur up to a 5% loss. After three days, the loss will jump significantly, up to 25% or more. In unusual circumstances an extension may be granted, but only if you speak to your instructor.

Grades:

Grades will be based on the following activities:
 
    Required
    To Pass
    Complete all Mini-Labs and other In-Class Activities    65%
    Complete all Quizzes    15%
    A - B Programming Projects (Design, Implementation, Evaluation)    20%

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.

Quizzes in this class are to help you assess your own understanding. As an experiment, quizzes in this class will start out very open — you may look at online materials, talk to other members of your lab group or other students in the class as you take them, and you may re-take them. If this does not work well (students aren't learning what they should be learning), the quizzes will revert to a more traditional model, in which case they would be completely individual, with no discussion about them allowed.

In-class Assignments and Programming Projects: Some assignments may allow you to work in pairs. Whether working individually or in a team, you may discuss in-class assignments and programming projects with classmates and give and receive help. You may not, however, digitally share code or code fragments, unless you are working as a team on a project where teamwork has been explicitly allowed. You may also, of course, receive help from your instructor and from the CS teaching assistants during class and Collaboration Center hours.

You should document authorship, group-work, and "outside" help (from the TAs, your instructor, or other groups within the class) in the comments at the top of your program using the following clauses:
        Authors(s):
        Working with or alongside lab group members:
        With Assistance From: 

Penalties for violating 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 this course.