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 DesignWeeks 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.
- Class: Classes will take place in Olds/Upton 312. There are several college computers available in this classroom, although many students choose to bring their own laptop.
Computing and Software Requirements: A computer running Windows, MacOS, or Linux, plus Internet connectivity, is recommended. The computer science department uses free and open source software whenever possible, choosing applications that work across Linux, Mac, and Windows platforms. Most, if not all, of the college-owned computers on campus have the appropriate software.
We will use Google Colab for developing and running Python code. This will require a browser with internet connectivity and will require students to have a Google account. There is no anticipated need to have any other software to be downloaded on student machines.
- Online Information and Assignment Submission:
In addition to the physical, on-campus space in OU 312, this course has an online presence.- The course web site is https://www.cs.kzoo.edu/cs103/. The course syllabus and detailed schedule can be found there.
- Faculty are available for in-person and online help during office hours, and often at other times as well. Please make use of this — we are here to help! Teaching assistants are also available Sunday - Thursday evenings, in-person (OU 312) or online through the CS Collaboration Center team on Microsoft Teams. (page listing people and hours)
- We will use the Kit web site for assignment submissions and grades.
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 supportive learning environment in which everyone can participate fully, we will follow these Community Guidelines adapted from the Center for Research on Learning and Teaching (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 PassComplete 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.