| About: | | Overview and Class Goals | Schedule | Grading | Labs | |
| Policies: | | Due Dates | Integrity | Accommodations | |
| Help: | | CS Ninjas | Tips for Success | Code Style | Resources/Links | |
Other Sections:
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.
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 resources (see Useful Links below for more):
By the end of the course, we hope that you will have developed the following skills:
| WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | LABS |
| 1 | Jan 17 | Introduction to Python and Unix
| In class: week 1 Lab 0: unix, editing | |
Jan 19 | ||||
| 2 | Jan 24 | Writing simple programs
| In class: week 2 Lab 1: first programs | |
Jan 26 | Drop/add ends (Jan 30) | |||
| 3 | Jan 31 | Conditionals
| In class: week 3 Lab 2: numbers and strings | |
Feb 02 | Quiz 1 Quiz 1 | |||
| 4 | Feb 07 | First functions,
| In class: week 4 Lab 3: if/else | |
Feb 09 | ||||
| 5 | Feb 14 | Q2 Study Guide | Graphics, Using Objects
| In class: week 5 Lab 4: while loops/functions |
Feb 16 | Quiz 2 | |||
| 6 | Feb 21 | Fruitful Functions
| In class: week 6 Lab 5: graphics/functions | |
Feb 23 | ||||
| 7 | Feb 28 | Q3 Study Guide | File IO, Top-Down Design
| In class: week 7 Lab 6: graphics/functions |
Mar 02 | ||||
Mar 07 | Spring Break | |||
Mar 09 | ||||
| 8 | Mar 14 | More TDD
| In class: week 8 Lab 7: Part 1: top down design | |
Mar 16 | ||||
| 9 | Mar 21 | Searching
| In class: week 9 Lab 7: Part 2: complete program | |
Mar 23 | Quiz 4 CR/NC/W Deadline (Mar 24) | |||
| 10 | Mar 28 | Sorting
| In class: week 10 Lab 8: climate data | |
Mar 30 | ||||
| 11 | Apr 04 | Recursion
| In class: week 11 Lab 9: sorting | |
Apr 06 | Quiz 5 | |||
| 12 | Apr 11 | Classes and Objects
| In class: week 12 Lab 10: recursion | |
Apr 13 | ||||
| 13 | Apr 18 | Classes and Objects
| In class: week 13 Lab 11: classes | |
Apr 20 | ||||
| 14 | Apr 25 | Quiz 6 | Linked Lists
| In class: week 14 (same as week 13) Lab 12: linked lists |
Apr 27 | ||||
May 06 | Final Exam (7-10pm) | |||