CSCI 121: CS Fundamentals
I

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