Welcome to CS21. This course will introduce you to fundamental ideas in computer science while teaching you how to write computer programs. We will study algorithms for solving problems and implement solutions in the Python programming language. Python is known for its ease of use and wide-ranging applicability. We also introduce object-oriented programming and data structures. A deeper coverage of these topics is 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. We assume no prior experience with programming. Students with advanced placement credit or extensive programming experience should place out of this course and instead begin with CS31 or CS35.
Here are a few other useful online resources:
By the end of the course, we hope that you will have developed the following skills:
This is a tentative schedule; it may change as we go.
WEEK | DAY | ANNOUNCEMENTS | TOPICS & READING | LABS |
1 | Jan 16 | MLK Day...no classes | Introduction to Python and Unix | Lab 0: unix, editing |
Jan 18 | ||||
Jan 20 | ||||
2 | Jan 23 | Writing simple programs
| Lab 1: first programs | |
Jan 25 | ||||
Jan 27 | ||||
3 | Jan 30 | Drop/add ends | Conditionals | Lab 2: numbers and strings |
Feb 01 | ||||
Feb 03 | Quiz 1 | |||
4 | Feb 06 | First functions,
| Lab 3: conditionals | |
Feb 08 | ||||
Feb 10 | ||||
5 | Feb 13 | Graphics, Objects
| Lab 4: functions and while loops | |
Feb 15 | ||||
Feb 17 | Quiz 2 | |||
6 | Feb 20 | Fruitful Functions | Lab 5: graphics | |
Feb 22 | ||||
Feb 24 | ||||
7 | Feb 27 | File I/O, Top-Down Design
| Lab 6: functions and graphics | |
Mar 01 | ||||
Mar 03 | Quiz 3 | |||
Mar 06 | Spring Break | |||
Mar 08 | ||||
Mar 10 | ||||
8 | Mar 13 | Top-down Design | Lab 07 (design): cryptoquote | |
Mar 15 | ||||
Mar 17 | ||||
9 | Mar 20 | Searching
| Lab 7 (program): cryptoquote | |
Mar 22 | ||||
Mar 24 | CR/NC/W Deadline Quiz 4 | |||
10 | Mar 27 | Sorting
| Lab 8: searching | |
Mar 29 | ||||
Mar 31 | ||||
11 | Apr 03 | Recursion | Lab 9 : sorting | |
Apr 05 | ||||
Apr 07 | Quiz 5 | |||
12 | Apr 10 | Classes and Objects | Lab 10 : recursion | |
Apr 12 | ||||
Apr 14 | ||||
13 | Apr 17 | Classes / Linked lists
| Lab 11 : classes | |
Apr 19 | ||||
Apr 21 | ||||
14 | Apr 24 | Quiz 6 | Linked Lists
| Lab 12 : linked lists (optional) |
Apr 26 | ||||
Apr 28 | ||||
May 04 | Final Exams Begin |