Instructor:
Course Web Site:
www.cs.kzoo.edu/cs104/
Textbook: Foundations of Python Programming, by Brad Miller and Paul Resnick,an online, interactive book through Runestone Academy. You may access the book directly at https://runestone.academy/ns/books/published/fopp/index.html?mode=browsing. Other resources may be provided to you during class in the form of PDFs or links to electronic tools in the web, which will help you visualize, practice, and/or have fun while learning the concepts.
Prerequisite: None. Students may not take this course if they have already taken COMP 103. (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 for scientific modeling, visualization, and data analysis.
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):
Weeks 1 - 2: Input - Processing - Output
Variables & Functions
ConditionalsWeeks 3 - 6: Program Design
Loops
Lists and Arrays
Computational ModelingWeeks 7 - 10: Floating Point Numbers
Data Files
Plotting Data
Other Selected Topics from Scientific Computing
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 interactive readings and/or short videos that introduce new concepts. You should do these activities 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.
Outside of class, Interactive readings with exercises will be done through a book at Runestone Academy. In class we will use Google Colab for working through and collaborating on labs and projects. Both the book at Runestone Academy and Google Colab will require a browser with internet connectivity. There is no anticipated need to have any other software to be downloaded on student computers. Google Colab will require Google accounts.
- 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/cs104/. 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 (Hicks Computer Lab) 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.
- The course Moodle site contains links to all of the above.
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.
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.
Interactive Readings 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.
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.
Deadlines and late policy: 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 will accrue late penalties or might not be accpeted at all. To encourage timeliness, assignments that are one day late will lose 2%; two - three days late will incur a 5% loss. After three days, the loss will jump significantly to 25% or more. In unusual circumstances an extension may be granted, but only if you speak to your instructor in advance.
Grades:
Grades will be based on the following activities:
Required
To PassComplete all Interactive Readings and 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.
Respect in the Community: Creating a Culture of Support
K College is committed to fostering a supportive campus community that values respect, dignity, and safety free from fears of retaliation or reprisal. We all have a role in creating a supportive and respectful culture. To create an inclusive and supportive learning environment in which everyone can participate fully, please read and follow these Community Guidelines adapted from the Center for Research on Learning and Teaching (CRLT) at the University of Michigan and the guidelines for creating a culture of respect and support outlined in Respect in the Community: Creating a Culture of Support.
Academic Integrity
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.