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.
See the Schedule for each week's reading assignment.
Here are a few other useful online python resources:
By the end of the course, we hope that you will have developed the following skills:
WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | LABS |
1 | Jan 19 | Introduction to Python and Linux §2.1, §3.2; Skip §2.1.3 | Lab 0: Linux & Editors | |
Jan 21 | ||||
Jan 23 | ||||
2 | Jan 26 | Strings, lists, and for loops §2.3, §3.4 | Lab 1: first programs | |
Jan 28 | ||||
Jan 30 | Drop/Add ends | |||
3 | Feb 02 | Booleans, If/else §2.2 | Lab 2: numbers and strings | |
Feb 04 | Quiz 1 | |||
Feb 06 | ||||
4 | Feb 09 | While loops §2.4 | Lab 3: if/else | |
Feb 11 | ||||
Feb 13 | ||||
5 | Feb 16 | Graphics, using objects
| Lab 4: while loops | |
Feb 18 | Quiz 2 | |||
Feb 20 | ||||
6 | Feb 23 | Functions, objects §4.1, §4.2 stack diagrams handout | Lab 5: graphics | |
Feb 25 | ||||
Feb 27 | ||||
7 | Mar 02 | Top-Down Design, File I/O §4.6, Chapter 6 | Lab 6: left shark | |
Mar 04 | Quiz 3 | |||
Mar 06 | ||||
Mar 09 | Spring Break | |||
Mar 11 | ||||
Mar 13 | ||||
8 | Mar 16 | More Top-Down Design | Lab 7: mastermind | |
Mar 18 | ||||
Mar 20 | ||||
9 | Mar 23 | Searching, Analysis of Algorithms §9.1, §9.3.1-9.3.3, §10.1 | Lab 7: still mastermind | |
Mar 25 | Quiz 4 | |||
Mar 27 | Last day to declare CR/NC or W | |||
10 | Mar 30 | Sorting, Analysis of Algorithms §10.2 | Lab 8: auto correct | |
Apr 01 | ||||
Apr 03 | ||||
11 | Apr 06 | Recursion §4.3 | Lab 9: zipcodes | |
Apr 08 | Quiz 5 | |||
Apr 10 | ||||
12 | Apr 13 | Defining new classes Chapter 8 | Lab 10: recursion | |
Apr 15 | ||||
Apr 17 | ||||
13 | Apr 20 | Linked lists | Lab 11: fire simulator | |
Apr 22 | Quiz 6 | |||
Apr 24 | ||||
14 | Apr 27 | Advanced Topics, Wrap-up | Lab 12: linked lists | |
Apr 29 | ||||
May 01 | ||||
May 08 | Final: 7-10pm Science Center 101 |