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.
There is no required textbook for this course. There are, however, required readings! See the Schedule for each week's reading assignment. We will primarily be using the online book How to think like a computer scientist: Learning with Python by Elkner, Downey and Meyers.
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 | Sep 01 | Introduction to Python and Unix
| In class: MWF Lab 0: unix, editing | |
Sep 03 | ||||
Sep 05 | ||||
2 | Sep 08 | Writing simple programs
| In class: M W F Lab 1: first programs | |
Sep 10 | ||||
Sep 12 | Drop/add ends | |||
3 | Sep 15 | if-else; Booleans
| In class: MWF Lab 2: numbers and strings | |
Sep 17 | Quiz 1 | |||
Sep 19 | ||||
4 | Sep 22 | First functions, While loops
| In class: M W F Lab 3: if/elif/else | |
Sep 24 | ||||
Sep 26 | ||||
5 | Sep 29 | Graphics; Using objects
| In class: MWF Lab 4: while loops | |
Oct 01 | Quiz 2 | |||
Oct 03 | ||||
6 | Oct 06 | Functions
| In class: M W F Lab 5: graphics | |
Oct 08 | ||||
Oct 10 | ||||
Oct 13 | Fall Break | |||
Oct 15 | ||||
Oct 17 | ||||
7 | Oct 20 | Top-down design; File input/output
| In class: MWF Lab 6: functions | |
Oct 22 | Quiz 3 | |||
Oct 24 | ||||
8 | Oct 27 | Searching, Analysis of algorithms
| In class: M W F Lab 7: design | |
Oct 29 | ||||
Oct 31 | ||||
9 | Nov 03 | Sorting, Analysis of algorithms | In class: MWF Lab 7: full program | |
Nov 05 | Quiz 4 | |||
Nov 07 | CR/NC/W Deadline | |||
10 | Nov 10 | Recursion
| In class: M W F Lab 8: searching/sorting | |
Nov 12 | ||||
Nov 14 | ||||
11 | Nov 17 | Defining new classes
| In class: MWF Lab 9: recursion | |
Nov 19 | Quiz 5 | |||
Nov 21 | ||||
12 | Nov 24 | More on classes | In class: M W Lab 10: flappy bird | |
Nov 26 | ||||
Nov 28 | Thanksgiving | |||
13 | Dec 01 | Linked lists
| In class: MWF Lab 10: flappy bird | |
Dec 03 | Quiz 6 | |||
Dec 05 | ||||
14 | Dec 08 | Wrap up | In class: M Lab 11: linked lists | |
Dec 12 | Final Exam, 7-10pm, Sci 101 |