Announcements
-
Lab 03 is posted and due 28 September.
-
Here is a quick link to the current week on the class Schedule.
-
Lab attendance is mandatory.
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 |
Ava, Mulu |
|
2 |
MWF |
9:30am - 10:20am |
SCI 256 |
Erin, Ethan, Hannah |
|
3 |
MWF |
10:30am - 11:20am |
SCI 256 |
Elizabeth, Nate |
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 |
TBD |
C |
W |
1:15pm - 2:45pm |
SCI 256 |
Rich Wicentowski |
Jenna |
D |
W |
3:00pm - 4:30pm |
SCI 256 |
Kevin Webb |
Ernesto |
Support Staff & Office Hours
Name | Office Hours | Location |
---|---|---|
Mon 12:30-2:00p, Wed 2:15-3:45p |
SCI 247 |
|
Mon 3:00-4:20p, Thu 1:15-2:45p |
SCI 251 |
|
Tue 10:00-11:30a, Thu 2:45-4:15p |
SCI 255 |
|
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 us to schedule an appointment.
Academic Support Coordinator: Lauri Courtenay
Student assistants/Ninjas: Ava Babcock, Elizabeth Bugayev, Ernesto Garza, Nate Kim, Iz Lee, Jenna Martinez, Ethan Pang, Erin Picken, Hannah Poon, Mulu Tewelde
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 | Sep 04 | Course Introduction
| ||
Sep 06 | ||||
2 | Sep 09 | Numbers, Strings, and Loops
| ||
Sep 11 | ||||
Sep 13 | ||||
3 | Sep 16 | Drop/Add Ends | Conditions and Boolean Logic
| |
Sep 18 | ||||
Sep 20 | Quiz 1 (study guide) | |||
4 | Sep 23 | First Functions, while Loops
| ||
Sep 25 | ||||
Sep 27 | ||||
5 | Sep 30 | Fruitful Functions
| Lab 4 | |
Oct 02 | ||||
Oct 04 | Quiz 2 | |||
6 | Oct 07 | Graphics, Using Objects
| Lab 5 | |
Oct 09 | ||||
Oct 11 | ||||
Oct 14 | Fall Break | |||
Oct 16 | ||||
Oct 18 | ||||
7 | Oct 21 | Top-Down Design
| Lab 6 | |
Oct 23 | ||||
Oct 25 | Quiz 3 | |||
8 | Oct 28 | More Top-Down Design
| Lab 7 Part I | |
Oct 30 | ||||
Nov 01 | ||||
9 | Nov 04 | Searching
| Lab 7 part II | |
Nov 06 | ||||
Nov 08 | Last Day to Declare CR/NC Quiz 4 | |||
10 | Nov 11 | Sorting
| Lab 8 | |
Nov 13 | ||||
Nov 15 | ||||
11 | Nov 18 | Recursion
| Lab 9 | |
Nov 20 | ||||
Nov 22 | Quiz 5 | |||
12 | Nov 25 | Classes and Objects
| Lab 10 | |
Nov 27 | ||||
Nov 29 | Thanksgiving Break | |||
13 | Dec 02 | More Classes and Objects | Lab 11 | |
Dec 04 | ||||
Dec 06 | Quiz 6 | |||
14 | Dec 09 | Wrap up
| ||
Dec 11 | ||||
Dec 15 | Final exams start | |||
Dec 21 | Final exams end |