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
• “PP” is Adam Groce’s text Principled Programming,
• “TP” is the Think Python text, and
• “CP” is the Composing Programs text.

I have also drafted a schedule that lays out my sense of what we’ll be covering, how we’ll be covering it, and when.


Week 1: scripting; computing values

Reading: the syllabus on the main page of this site.
Lecture 1: course overview; Python introduction.
example code from lecture.
Project 0: set-up.
Homework 1: scripting.
Lecture 2: script execution; conditionals.

Reading: PP Chs. 1.1-1.3; TP Ch. 1 and TP Ch. 2; CP Ch. 1.1 and 1.2

Week 2: conditional execution; loops

Lecture 1: if and while
Homework 2: conditionals and loops
Lecture 2: more on loops; functions

Readings on if and while
PP Chs. 1.7; TP Ch. 4 and 5; CP Ch. 1.5

Week 3: functions and procedures

Lecture 1: def
Quiz 1: on scripting
Homework 3: functions
Lecture 2: procedures; function variables
Project 1: a dice game

Readings on functions
PP Chs. 1.4 and 1.6; TP Ch. 3 and TP Ch. 6; CP Ch. 1.3 and 1.4

Week 4: lists

Lecture 1: lists
Homework 4: functions
Lecture 2: lists

Readings on lists
PP Ch. 2.2; TP Ch. 9; CP Ch. 2.3

Week 5: dictionaries; recursion

Lecture 1: dictionaries
Homework 5: dictionaries
Lecture 2: recursion
Project 2: breaking ciphers

Readings on recursion
PP Ch. 2.3
TP Ch. 5.8-10
CP Ch. 1.7

Week 6: recursion; object orientation

Lecture 1: recursion visualized
Homework 6: recursion
Lecture 2: object classes
example object code from lecture.

Readings on object-orientation
PP Ch. 2.3
TP Ch. 14-16
CP Ch. 2.2, 2.5

Week 7: class inheritance; more higher-order functions

Lecture 1: inheritance
Practice midterm 1a and solutions
Practice midterm 1b and solutions
Homework 7: classes
Lecture 2: lambda and nested functions
Python Tutor frame demo 2
Python Tutor frame demo 3
old slides showing frame demo: see page 84 onward.

Readings on object-orientation
PP Ch. 2.1
CP Ch. 1.6

Week 8: linked lists

Lecture 1: midterm exam on Homework 1 through 5
int, str, float, bool and their operations
• assignment statements and variable use
input and print
• defining and calling functions
if and while
• lists and dictionaries
Homework 8: higher-order functions


Week 1: scripts; int, float, bool; the if statement

Week 2: loops and iteration

Week 3: functions and procedures

Week 4: lists

Week 5: dictionaries

Week 6: recursion

Week 7: object-orientation

Spring Break

Week 8: higher order functions

Week 9: linked lists

Week 10: efficiency and running time; sorting and searching

Week 11: BSTs

Week 12: exceptions; file I/O

Week 13: review; demo; evaluation