Announcements
-
There are two times to take the final exam:
-
Thursday, May 13, 8am-11am
-
Friday, May 14, 2pm-5pm
-
-
Office hours for final exam week:
-
Monday, May 10, 12pm-2pm (Charlie)
-
Tuesday, May 11, 9:30am-11am (Spencer)
-
Tuesday, May 11, 1pm-3pm (Lauri)
-
Tuesday, May 11, 3pm-5pm (Rich; on campus, weather permitting)
-
Course Info
Welcome to CS21. This course will introduce fundamental ideas in computer science while also teaching you how to write computer programs. We will study algorithms for solving problems and implement solutions in the Python programming language. Python is an interpreted language that is known for its ease of use. We also introduce object-oriented programming and data structures. A deeper coverage of these topics will be presented in CS 35.
This course is appropriate for all students who want to learn how to write computer programs and think like computer scientists. It is the usual first course for computer science majors and minors. Students with advanced placement credit or extensive programming experience should place out of this course and instead begin with CS31 or CS35.
Meeting Times:
All times listed are local to Swarthmore (US/Eastern time).
Section | Days | Time | Instructor |
---|---|---|---|
1a |
TR |
9:45am-10:20am |
Rich Wicentowski |
1b |
TR |
10:25am-11:00am |
Rich Wicentowski |
1c |
TR |
9:45am-10:20am |
Spencer Caplan |
2a |
TR |
2:00pm-2:35pm |
Spencer Caplan |
2b |
TR |
2:40pm-3:15pm |
Spencer Caplan |
2c |
TR |
2:00pm-2:35pm |
Rich Wicentowski |
Lab | Day | Time | Instructor |
---|---|---|---|
A |
W |
9:00am-10:30am |
Charles Kazer |
B |
W |
10:40am-12:10pm |
Charles Kazer |
C |
W |
2:00pm- 3:30pm |
Rich Wicentowski |
D |
W |
2:00pm- 3:30pm |
Charles Kazer |
E |
W |
3:45pm- 5:15pm |
Charles Kazer |
F |
W |
8:15pm- 9:45pm |
Spencer Caplan |
Support Staff & Office Hours
Name | Office Hours |
---|---|
Tuesday 3:30pm-5:30pm (and by appt) |
|
Thursday 11:30am-1:30pm (and by appt) |
|
Thursday 5:30pm-7:00pm (and by appt) |
|
Friday 11:00am-1:00pm (and by appt) |
Academic Support Coordinator: Lauri Courtenay
Student assistants/Ninjas: Jack Ballou, Olivia Fey, Vlad Hes, Alice Huang, Sherry Huang, Martina Kampel, Christine Mason, Jacob Park, Xoe Porterfield, Anwyn Urquhart, Vika Zakharova
Check out the ninja study session schedule.
Textbook
We will primarily be using the online book How to think like a computer scientist: Learning with Python by Elkner, Downey and Meyers.
See the Schedule for each week’s reading assignment.
Here are a few other useful online resources:
-
Python documentation (Note: we are using version 3.6)
Course Goals
By the end of the course, we hope that you will have developed the following skills:
-
Given a program, be able to simulate on paper how a computer would execute the program, and show the results that would be produced.
-
Given a problem, be able to design a clear, concise, and correct pseudocode algorithm to solve it.
-
Given a pseudocode algorithm, be able to successfully implement it in Python.
-
Be able to use top-down design to sub-divide a large problem into reasonably-sized modular sub-problems.
-
Given several algorithms for solving the same problem, be able to analyze which algorithm would be more efficient in terms of running time.
-
Develop debugging and unit testing skills. Consistently use these skills while implementing programs.
Schedule
WEEK | DAY | VIDEOS & QUIZZES | TOPIC & READING | LABS   |
1 | Feb 11 |
| Course Introduction
| |
2 | Feb 16 | Numbers, Strings, and Loops
| ||
Feb 18 | ||||
3 | Feb 23 | Conditions and Boolean Logic
| ||
Feb 25 | Quiz 1 Study Guide | |||
4 | Mar 02 | First Functions,
| ||
Mar 04 | ||||
5 | Mar 09 | Fruitful Functions
| ||
Mar 11 | Quiz 2 Study Guide | |||
6 | Mar 16 | Top-Down Design
| ||
Mar 18 | ||||
7 | Mar 23 | Office Hours
| No lab this week | |
Mar 25 | Spring Break | |||
8 | Mar 30 | More Top-Down Design
| ||
Apr 01 | Quiz 3 Study Guide | |||
9 | Apr 06 | Searching
| Continue Lab 6 | |
Apr 08 | ||||
10 | Apr 13 | Sorting
| ||
Apr 15 | Quiz 4 Study Guide | |||
11 | Apr 20 | Recursion
| ||
Apr 22 | ||||
12 | Apr 27 | Classes and Objects
| ||
Apr 29 | Quiz 5 Study Guide | |||
13 | May 04 | More Classes and Objects
| ||
May 06 | ||||
May 13 | Alternate final exam 8am-11am Study Guide | |||
May 14 | Final exam 2pm-5pm Study Guide |