Announcements
-
Quiz 6 will be available May 7-12
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.
Piazza: CS21 Q&A forum
Meeting Times:
Section | Days | Time | Room | Instructor |
---|---|---|---|---|
1 |
MWF |
9:30-10:20 |
Sci 256 |
Lisa Meeden |
2 |
MWF |
10:30-11:20 |
Sci 256 |
Aline Normoyle |
3 |
MWF |
11:30-12:20 |
Sci 256 |
Jeff Knerr |
Lab | Day | Time | Room | Instructor |
---|---|---|---|---|
A |
T |
1:05-2:35 |
Sci 256 |
Charlie Kazer |
B |
T |
2:45-4:15 |
Sci 256 |
Charlie Kazer |
C |
W |
1:15-2:45 |
Sci 256 |
Aline Normoyle |
D |
W |
3:00-4:30 |
Sci 256 |
Aline Normoyle |
E |
T |
1:05-2:35 |
Clothier 16 |
Scout Sinclair |
F |
T |
2:45-4:15 |
Clothier 16 |
Scout Sinclair |
Support Staff & Office Hours
Course and Lab Instructors:
Name | Office | Office Hours |
---|---|---|
Sci 243 |
Wed and Thu 1:30 PM - 3:30 PM (or by appt) |
|
Sci 238A |
Fri 12:30 PM - 2:00 PM (or by appt) |
|
Sci 252C |
Fri 3:30 PM - 5:00 PM, or by appt |
|
Sci 262A |
Mon Noon-2:00 PM, Thu 11am-12:30, or by appt |
|
Sci 252B |
Mon 2-4pm, Fri 10:30am-12:30, or by appt |
|
Sci 257 |
Tue 10:00 AM - 11:00 AM, Thu 10:00 AM - 11:00 AM |
Academic Support Coordinator: Lauri Courtenay
Student assistants/Ninjas: Alex Fischmann, Emma Jin, Lyla Kiratiwudhikul, Syndey Levy, Rebecca Lin, Jasiel Lopez, Saul Lopez-Valdez, Sumi Onoe, Otis Peterson, Bilal Soukouna, Riley Thompson, Catherine Wang
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 | ANNOUNCEMENTS | TOPIC & READING | NOTES/LABS |
1 | Jan 20 | Course Introduction
| ||
Jan 22 | ||||
Jan 24 | ||||
2 | Jan 27 | Numbers, Strings, and Loops
| ||
Jan 29 | ||||
Jan 31 | ||||
3 | Feb 03 | Conditions and Boolean Logic
| ||
Feb 05 | ||||
Feb 07 | Quiz 1 | |||
4 | Feb 10 | First Functions,
| ||
Feb 12 | ||||
Feb 14 | ||||
5 | Feb 17 | Fruitful Functions
| ||
Feb 19 | ||||
Feb 21 | Quiz 2 | |||
6 | Feb 24 | Graphics, Using Objects
| ||
Feb 26 | ||||
Feb 28 | ||||
7 | Mar 02 | Top-Down Design
| ||
Mar 04 | ||||
Mar 06 | Quiz 3 | |||
Mar 09 | Spring Break (extended for COVID-19) | |||
Mar 11 | ||||
Mar 13 | ||||
Mar 16 | ||||
Mar 18 | ||||
Mar 20 | ||||
8 | Mar 23 | More Top-Down Design
| ||
Mar 25 | ||||
Mar 27 | ||||
9 | Mar 30 | Searching
| ||
Apr 01 | ||||
Apr 03 | ||||
10 | Apr 06 | Quiz 4 | Sorting
| |
Apr 08 | ||||
Apr 10 | ||||
11 | Apr 13 | Recursion
| ||
Apr 15 | ||||
Apr 17 | ||||
12 | Apr 20 | Quiz 5 | Classes and Objects
| |
Apr 22 | ||||
Apr 24 | ||||
13 | Apr 27 | More Classes and Objects
| ||
Apr 29 | ||||
May 01 |
Quiz 6 (May 07) |