Announcements
-
Welcome to CS 21!
-
Lab attendance is mandatory.
-
Link to this week’s schedule.
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:
| Section | Days | Time | Room | Instructor | Ninjas |
|---|---|---|---|---|---|
1 |
MWF |
9:30 AM - 10:20 AM |
Martin 213 |
Sadie, Eva |
|
2 |
MWF |
10:30 AM - 11:20 AM |
Martin 213 |
Maggie |
|
3 |
MWF |
11:30 AM - 12:20 PM |
Martin 213 |
Bernice |
| Lab | Day | Time | Room | Instructor | Ninja |
|---|
Office Hours and Support Staff
| Day | Time | Name | Location |
|---|---|---|---|
Monday |
1:00 PM - 3:00 PM |
Mariam & Kevin |
Martin 321 (Quiz retakes in Martin 300) |
Tuesday |
10:00 AM - Noon |
Andrew Danner |
Martin 321 (Quiz retakes in Martin 300) |
Thursday |
TBD |
Jocelyn Corey |
Martin 302 |
Friday |
1:00 PM - 3:00 PM |
Lauri Courtenay |
Martin 204 |
Students can attend any office hour session regardless of lecture/lab section. If you cannot meet during the posted times, please reach out to one of us to schedule an appointment.
Academic Support Coordinator: Lauri Courtenay
EdSTEM Course Discussion: EdSTEM course discussion forum
Student assistants/Ninjas: Bernice Arreola, Tara Dhawale, Roshan Kalantarian, Paris Kampel, Stephanie Liu, Maggie Lu, Sadie Steffens, Eva Szap, Lily von Behren
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.8)
Course Goals
By the end of the course, we hope that you will have developed the following skills:
-
Given a program, simulate on paper how a computer would execute the program and show the results that it would produce.
-
Given a pseudocode algorithm, successfully implement it in Python.
-
Given a problem, design a clear, concise, and correct pseudocode algorithm to solve it.
-
Use top-down design to sub-divide a large problem into reasonably-sized modular sub-problems.
-
Given several algorithms for solving the same problem, 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 | LABS |
| 1 | Aug 31 | Drop/Add Ends (Sep 14) Last Day to Declare CR/NC (Nov 06) | Course Introduction
| |
Sep 02 | ||||
Sep 04 | ||||
| 2 | Sep 07 | Labor Day! | Numbers, Strings, and Loops
| Lab 1: First programs |
Sep 09 | ||||
Sep 11 | ||||
| 3 | Sep 14 | Conditions and Boolean Logic
| Lab 2: Numbers, Strings, and For Loops | |
Sep 16 | ||||
Sep 18 | Quiz 1 | |||
| 4 | Sep 21 | First Functions, while Loops
| Lab 3: if statements, for loops | |
Sep 23 | ||||
Sep 25 | ||||
| 5 | Sep 28 | Fruitful Functions
| Lab 4: Functions and While Loops | |
Sep 30 | ||||
Oct 02 | ||||
| 6 | Oct 05 | Graphics, Using Objects
| Lab 5: More Advanced Functions | |
Oct 07 | ||||
Oct 09 | ||||
Oct 12 | Fall Break | |||
Oct 14 | ||||
Oct 16 | ||||
| 7 | Oct 19 | Top-Down Design
| Lab 6: Using Graphics | |
Oct 21 | ||||
Oct 23 | ||||
| 8 | Oct 26 | More Top-Down Design
| Lab 7 Part I: Design | |
Oct 28 | ||||
Oct 30 | ||||
| 9 | Nov 02 | Searching
| Lab 7 Part II: Implementation | |
Nov 04 | ||||
Nov 06 | ||||
| 10 | Nov 09 | Sorting
| Lab 8: Searching | |
Nov 11 | ||||
Nov 13 | ||||
| 11 | Nov 16 | Recursion
| Lab 9: Sorting | |
Nov 18 | ||||
Nov 20 | ||||
| 12 | Nov 23 | Classes and Objects
| Lab 10: Recursion | |
Nov 25 | ||||
Nov 27 | Thanksgiving! | |||
| 13 | Nov 30 |
More Classes and Objects | Lab 11: Creating Classes | |
Dec 02 | ||||
Dec 04 | ||||
| 14 | Dec 07 | Wrap up
| TBD | |
Dec 09 | ||||
