CSCI 121: CS Fundamentals I


Syllabus   •   Schedule   •   Assignments


Weekly Schedule

Below I will be adding lecture materials as the course progresses. These will be lecture slides, code examples, relevant links, and readings. For the readings, “TP” is the Think Python text, and “CP” is the Composing Programs text.

I also have drafted a schedule of lectures and assignments as a calendar. This is an approximate schedule for later dates but should give you a good sense of what's coming up and should help you plan for the work.


Week 1: scripting

Reading: TP Ch. 1 and 2; CP Ch 1.1-1.2
Reading: the syllabus on the main page of this site.
Lecture 1: course overview; Python introduction
example code from lecture.
Homework 1: set-up and scripting.
Lecture 2: integer division; booleans.

Week 2: conditionals

Reading: TP Ch. 4.1 and 4.8; CP Ch 1.5
Homework 2: quotients and conditionals.
Lecture: conditional statement.

Week 3: functions, procedures; iteration

Lecture 1: programmer-defined functions.

Reading: TP Ch. 3 and 6; CP Ch 1.3 and 1.4
Homework 3: vend and function.
Lecture 2: procedures and iteration.
Reading: TP Ch. 5 and 6; CP Ch 1.5.5

Week 4: more iteration; lists

Lecture 1: while loop
• Examples: countdown.py, guess.py, guess6.py.
Homework 4: loop.
Project 1: grid life
Quiz #1: the problem and a sample solution

Week 5: lists

Lecture 1: lists
Homework 5: list.
Lecture 2: more list stuff

Week 6: dictionaries; recursion

Lecture 1: dictionaries
Homework 6: joining splits and other things.
Lecture 2: recursion
Quiz #2 has been moved to Monday, 10/10
Project 2: stats/chats or trends

Week 7: object-orientation

Lecture 1: more recursion
Homework 7: call yourself.
Lecture 2: objects and classes

Fall Break

Practice Midterm and its sample solutions.


Week 8: inheritance

Lecture 1: inheritance
Homework 8: objects

Week 9: higher order functions

Lecture 1: nested def and lambda
Homework 9: higher order functions
Lecture 2: environments
slides A
slides B
slides C
slides D
Project 3: hawks/doves or flocks

Week 10: linked lists

Quiz #3 on recursion
Lecture 1: linked lists
linked list Python class
Homework 10: linked lists

Week 11: BSTs and searching

Lecture 1: search trees
BSTree Python class
Project 4: adventure arcade
• The (brief) project proposal is due Friday, 11/18.

Week 12: efficiency and sorting

Lecture 1: introduction to efficiency
five kinds of power
Homework 11: trees and sorting
Lecture 2: efficiency

Week 13 and 14: sorting

Practice 2nd Midterm and its solution.
Exam solutions.
Lecture: sorting

Final Exam

Review Session: Tuesday, December 13th, 7-9pm in Eliot 314
Practice Final and its solutions.
Final Exam: Thursday, December 15th, 1-5pm in VLH