Announcements
-
If you have prior CS experience, please consider taking the CS Placement Exam.
-
Lab attendance is mandatory.
-
Lab #0 is now available! It is due Sunday, January 26, at 11:59pm EST. You will have a chance to work on it during your lab session this week.
Course Info
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.
Meeting Times:
Section | Days | Time | Room | Instructor | Ninjas |
---|---|---|---|---|---|
1 |
MWF |
8:30am - 9:20am |
SCI 256 |
Amelia, Alex |
|
2 |
MWF |
9:30am - 10:20am |
SCI 256 |
Brooke, Michelle |
|
3 |
MWF |
10:30am - 11:20am |
SCI 256 |
Paris, Nicole, Stephanie |
Lab | Day | Time | Room | Instructor | Ninja |
---|---|---|---|---|---|
A |
T |
1:05pm - 2:35pm |
SCI 256 |
Jocelyn Corey |
Nicole |
B |
T |
2:45pm - 4:15pm |
SCI 256 |
Jocelyn Corey |
Elizabeth |
C |
W |
1:05pm - 2:35pm |
SCI 256 |
Lisa Meeden |
Ethan |
D |
W |
2:45pm - 4:15pm |
SCI 256 |
Chris Murphy |
Nate |
Office Hours and Support Staff
Time | Name | Location |
---|---|---|
Mon 12:30-2:00 |
SCI 243 |
|
Tue 10:30-12:00 |
SCI 255 |
|
Wed 1:00-2:30 |
SCI 255 |
|
Thu 1:30-3:00 |
SCI 252D |
|
Fri 10:30a-12:30p |
SCI 252B |
|
Fri 1:00-3:00p |
SCI 257 |
Students can attend any office hour session regardless of lecture/lab section. If you cannot meet during the posted times, please reach out to one of us to schedule an appointment.
Academic Support Coordinator: Lauri Courtenay
Student assistants/Ninjas: Alex Kim, Amelia Mao, Brooke Carrier, Michelle Fang, Nicole Jensen, Paris Kampel, Stephanie Liu, Elizabeth Bugayev, Ethan Pang, Mulu Tewelde, Nate Kim
Textbook
We will primarily be using the online book How to think like a computer scientist: Learning with Python by Elkner, Downey and Meyers.
See the Schedule for each week’s reading assignment.
Here are a few other useful online resources:
-
Python documentation (Note: we are using version 3.8)
Course Goals
By the end of the course, we hope that you will have developed the following skills:
-
Given a program, simulate on paper how a computer would execute the program and show the results that it would produce.
-
Given a pseudocode algorithm, successfully implement it in Python.
-
Given a problem, design a clear, concise, and correct pseudocode algorithm to solve it.
-
Use top-down design to sub-divide a large problem into reasonably-sized modular sub-problems.
-
Given several algorithms for solving the same problem, analyze which algorithm would be more efficient in terms of running time.
-
Develop debugging and unit testing skills. Consistently use these skills while implementing programs.
Schedule
WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | LABS |
1 | Jan 22 | Course Introduction
| ||
Jan 24 | ||||
2 | Jan 27 | Numbers, Strings, and Loops
| Lab 1: First programs | |
Jan 29 | ||||
Jan 31 | ||||
3 | Feb 03 | Conditions and Boolean Logic
| Lab 2: Numbers, Strings, and For Loops | |
Feb 05 | ||||
Feb 07 | Drop/Add Ends Quiz 1 | |||
4 | Feb 10 | First Functions, while Loops
| Lab 3: Conditionals and Boolean Operators | |
Feb 12 | ||||
Feb 14 | ||||
5 | Feb 17 | Fruitful Functions
| Lab 4: Functions and While Loops | |
Feb 19 | ||||
Feb 21 | Quiz 2 | |||
6 | Feb 24 | Graphics, Using Objects
| Lab 5: More Advanced Functions | |
Feb 26 | ||||
Feb 28 | ||||
7 | Mar 03 | Top-Down Design
| Lab 6: Using Graphics | |
Mar 05 | ||||
Mar 07 | Quiz 3 | |||
Mar 10 | Spring Break | |||
Mar 12 | ||||
Mar 14 | ||||
8 | Mar 17 | More Top-Down Design
| Lab 7 Part I: Design | |
Mar 19 | ||||
Mar 21 | ||||
9 | Mar 24 | Searching
| Lab 7 Part II: Implementation | |
Mar 26 | ||||
Mar 28 | Last Day to Declare CR/NC Quiz 4 | |||
10 | Mar 31 | Sorting
| Lab 8: Searching | |
Apr 02 | ||||
Apr 04 | ||||
11 | Apr 07 | Recursion
| Lab 9: Sorting | |
Apr 09 | ||||
Apr 11 | Quiz 5 | |||
12 | Apr 14 | Classes and Objects
| Lab 10: Recursion | |
Apr 16 | ||||
Apr 18 | ||||
13 | Apr 21 |
More Classes and Objects | Lab 11: Creating Classes | |
Apr 23 | ||||
Apr 25 | Quiz 6 | |||
14 | Apr 28 | Wrap up
| ||
Apr 30 | ||||
May 02 |