Announcements
-
Our final exam is May 9th, from 2-5pm in Sci Cntr 101.
-
See Final review for information about Exam review session times and locations (note the locations), and for office hours next week.
-
-
Here is a quick link to the current week on the class Schedule.
Final review
Instructors will hold multiple final exam review sessions next week. There is no official presentation in the review sessions. Bring your questions. We will poll for questions at the start of the session and try to answer as many as we can. Additionally we will have smaller drop in office hours.
Date | Time | Location | Staff |
---|---|---|---|
Mon 6 May |
1:30-3:30pm |
SCI 256 |
Tia |
Tue 7 May |
3-5pm |
SCI 204 |
Chris |
Wed 8 May |
1-3pm |
SCI 204 |
Andrew |
Sci 204 is upstairs from the SCI coffee bar near the Cornell library.
Date | Time | Location | Staff |
---|---|---|---|
Mon 6 May |
9am-10am |
SCI 247 |
Andrew |
Mon 6 May |
11am-Noon |
SCI 247 |
Andrew |
Tue 7 May |
10am-noon |
SCI 252D |
Chris |
Tue 7 May |
1-3pm |
SCI 252B |
Jocelyn |
Wed 8 May |
10am-noon |
SCI 257 |
Lauri |
Thu 9 May |
11:30am-12:30pm |
SCI 249 |
Tia |
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 |
Jenna, Iz, Gia |
|
2 |
MWF |
9:30am - 10:20am |
SCI 256 |
Ernesto, Sofie, Tommy |
|
3 |
MWF |
11:30am - 12:20am |
SCI 256 |
V, Bohou, Yara |
Lab | Day | Time | Room | Instructor | Ninja |
---|---|---|---|---|---|
A |
T |
1:05pm - 2:35pm |
SCI 256 |
Andrew Danner |
Iz |
B |
T |
2:45pm - 4:15pm |
SCI 256 |
Jocelyn Corey |
Nick |
C |
W |
1:15pm - 2:45pm |
SCI 256 |
Tia Newhall |
Ernesto |
D |
W |
3:00pm - 4:30pm |
SCI 256 |
Chris Murphy |
Jayden |
Support Staff & Office Hours
Name | Office Hours | Location |
---|---|---|
Fri 1-3p |
SCI 257 |
|
Thu 10a-Noon |
SCI 247 |
|
Wed 3:00-4:00p, Fri 4:00-5:00p |
SCI 249 |
|
Thu 2:30-4:30p |
SCI 252D |
|
Fri 10:30-12:30 |
SCI 252B |
Students can attend any office hour session regardless of lecture/lab section. If you cannot meet during the posted times, please reach out to us to schedule an appointment.
Academic Support Coordinator: Lauri Courtenay
Student assistants/Ninjas: Sofie Aird, Jayden Booker, V Buckley, Nicholas Fettig, Tommy Hoang, Ernesto Garza, Gia Kwon, Iz Lee, Jenna Martinez, Yara Shobut, Lila Traves, Bohou Zhang
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 | ||||
Jan 26 | ||||
2 | Jan 29 | Numbers, Strings, and Loops
| ||
Jan 31 | ||||
Feb 02 | Drop/Add Ends | |||
3 | Feb 05 | Conditions and Boolean Logic
| ||
Feb 07 | ||||
Feb 09 | ||||
4 | Feb 12 | First Functions, while Loops
| ||
Feb 14 | ||||
Feb 16 | Quiz 1 (study guide) | |||
5 | Feb 19 | Graphics, Using Objects
| ||
Feb 21 | ||||
Feb 23 | ||||
6 | Feb 26 | Fruitful Functions
| ||
Feb 28 | ||||
Mar 01 | Quiz 2 (study guide) | |||
7 | Mar 04 | Top-Down Design
| ||
Mar 06 | ||||
Mar 08 | ||||
Mar 11 | Spring Break | |||
Mar 13 | ||||
Mar 15 | ||||
8 | Mar 18 | More Top-Down Design
| ||
Mar 20 | ||||
Mar 22 | Quiz 3 (study guide) | |||
9 | Mar 25 | Searching
| ||
Mar 27 | ||||
Mar 29 | Last Day to Declare CR/NC | |||
10 | Apr 01 | Sorting
| ||
Apr 03 | ||||
Apr 05 | Quiz 4 (study guide) | |||
11 | Apr 08 | Recursion
| ||
Apr 10 | ||||
Apr 12 | ||||
12 | Apr 15 | More RecursionClasses and Objects
| ||
Apr 17 | ||||
Apr 19 | ||||
13 | Apr 22 | More Classes and Objects | ||
Apr 24 | ||||
Apr 26 | Quiz 5 (study guide) | |||
14 | Apr 29 |
Additional Data Structures | [Lab 11 cont] | |
May 01 | ||||
May 03 | ||||
May 09 | Final exam 2-5pm in SCI 101. |