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, computations, substitution, ints, floats Reading: Chapter 1 |
Lab 1 | |
Jan 23 | ||||
2 | Jan 28 |
If-statements, basic recursion, strings, design by cases, test cases, preconditions, postconditions Reading: Chapters 2, 3 |
Lab 2 | |
Jan 30 | ||||
3 | Feb 04 |
More recursion practice, lists, strings, modulus and integer division Reading: Chapter 4 |
Lab 3 Last day to drop (Feb 07) | |
Feb 06 | ||||
4 | Feb 11 |
User input, while loops, string membership, passing lists, enumerate and test, modulus and integer division practice Reading: Chapter 6 |
Lab 4 | |
Feb 13 | ||||
5 | Feb 18 |
Passing lists, test and filter, algorithmic correctness |
Lab 5 | |
Feb 20 | ||||
6 | Feb 25 |
Hamming and Eucliden distances, string operations | ||
Feb 27 | ||||
7 | Mar 04 |
Midterm review | ||
Mar 06 |
Midterm 1 | |||
Mar 11 | Spring Break | |||
Mar 13 | ||||
8 | Mar 18 |
For-loops |
Lab 6 | |
Mar 20 | ||||
9 | Mar 25 |
Computational Complexity Reading: Chapter 7 |
Lab 7 | |
Mar 27 | ||||
10 | Apr 01 |
Machine Bias |
Lab 8 | |
Apr 03 | ||||
11 | Apr 08 |
Preliminary: Classes and objects |
Lab 9 | |
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 |