This course is designed for students with little or no programming experience. A good understanding of high school-level algebra is helpful.
This course is an introduction to computer science with emphasis on problem-solving, programming, and algorithm design and development. Topics include basic programming techniques, approaches to algorithm design, and techniques for understanding the process of computation and the correctness of software. The language for this course is Python 3.
See the Schedule for each week's reading assignment.
The schedule is tentative and subject to change throughout the semester.
1 | Jan 21 |
Python syntax, variables, functions, scope, mathematical operations, algorithms, substitution, ints, floats, if-statements Reading: Chapter 1 | Slides 1 | Lab 1: Problems, Algorithms, and Python Functions |
Jan 23 | Slides 2 | |||
2 | Jan 28 |
Design by cases, test cases, preconditions, postconditions, modulus and integer division, strings Reading: Chapters 2, 3 | Slides 3 |
Lab 2: Computational Geometry |
Jan 30 | Slides 4 | |||
3 | Feb 04 |
Basic recursion, strings, modulus and integer division practice Reading: Chapter 4 | Slides 5 |
Lab 3: Basic Recursive Design Last day to drop (Feb 07) |
Feb 06 | Slides 6 | |||
4 | Feb 11 |
User input, loops, string membership, lists Reading: Chapter 6 | Slides 7 |
Lab 4: Making Change |
Feb 13 | Slides 8 | |||
5 | Feb 18 |
More lists, tuples, enumerate and test, recursion practice | Slides 9 |
Lab 5: Making Unconventional Change |
Feb 20 | Slides 10 | |||
6 | Feb 25 |
Dictionaries, exceptions, algorithmic correctness, loops practice | Slides 11 | |
Feb 27 | ||||
7 | Mar 04 |
Midterm review | ||
Mar 06 |
Midterm 1 | |||
Mar 11 | Spring Break | |||
Mar 13 | ||||
8 | Mar 18 |
Hamming and Eucliden distances, reading from and writing to files, string operations practice | Slides 13 |
Lab 6: Spell Checker |
Mar 20 | Slides 14 | |||
9 | Mar 25 |
Computational complexity, computer memory Reading: Chapter 7 | Slides 15 | |
Mar 27 | Slides 16 | |||
10 | Apr 01 |
Machine bias Reading: ProPublica's article on Machine Bias | Slides 17 |
Lab 7: Computational Complexity |
Apr 03 | ||||
11 | Apr 08 |
Preliminary: Classes and objects |
Lab 8 | |
Apr 10 | ||||
12 | Apr 15 |
Midterm review | ||
Apr 17 | Midterm 2 | |||
13 | Apr 22 |
TBD | ||
Apr 24 | ||||
14 | Apr 29 |
Final project presentations | Last day to pass/fail (May 02) | |
May 01 |