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 20 | Introduction to Python and Unix For loops Sections 2.1, 3.2. Skip 2.1.3 In class | Lab 00 | |
Jan 22 | ||||
2 | Jan 27 | Numbers and Strings Sections 2.3, 3.4 In Class | Lab 01 | |
Jan 29 | Drop/add ends (Jan 30) | |||
3 | Feb 03 | Quiz 1 | Booleans, If/else Sec. 2.2 In Class | Lab 02 |
Feb 05 | ||||
4 | Feb 10 | While loops Sec. 2.4 In class | Lab 03 | |
Feb 12 | ||||
5 | Feb 17 | Quiz 2 | Graphics, using objects In Class | Lab 04 |
Feb 19 | ||||
6 | Feb 24 | Functions, objects Sec. 4.1, 4.2 In class | Lab 05 | |
Feb 26 | ||||
7 | Mar 03 | Top Down Design, File I/O Sec. 4.6, Chapter 6 In class | Lab 06 | |
Mar 05 | Quiz 3 | |||
Mar 10 | Spring Break | |||
Mar 12 | ||||
8 | Mar 17 | More Top Down Design | Lab 07 P1 | |
Mar 19 | ||||
9 | Mar 24 | Quiz 4 | Searching, Analysis of Algorithms Sec. 9.1, 9.3.1-9.3.3, 10.1 | Lab 07 P2 |
Mar 26 | CR/NC/W Deadline (Mar 27) | |||
10 | Mar 31 | Sorting, Analysis of Algorithms Sec. 10.2 | Lab 08 | |
Apr 02 | ||||
11 | Apr 07 | Quiz 5 | Recursion Sec. 4.3 | Lab 9 |
Apr 09 | ||||
12 | Apr 14 | Defining new classes Chapt. 8 handout | Lab 10 | |
Apr 16 | ||||
13 | Apr 21 | Quiz 6 | Linked lists | Lab 11 |
Apr 23 | ||||
14 | Apr 28 | Wrap up | | |
Apr 30 | ||||
May 07 | Final Exams Begin | |||
May 16 |