Note: this site is still up to serve as a reference for people who took the course in Spring of '20. If you're currently enrolled, please head to the site for the current semester.
Course Schedule
Part 1: Control Flow
Week 1
Mon: (Jan 20)
MLK Day!
No Class
Wed: Introduction (Jan 22)
- Class Overview
- Hardware
- Software
- Resources for getting help
Link to Slides
Read: Syllabus
Install: Python on Windows or Mac
Assigned: Lab-P1, P1
Fri: The Terminal (Jan 24)
- Terminal Emulatation
- Shells
- Navigation
- Program Execution
Link to Slides
Lecture: terminal commands
Week 2
Wed: Programming (Jan 29)
- Syntax+Parsing
- Values+Types
- Calculation+Operators
- Boolean Logic
- Interactive vs. Script Mode, print
Link to Slides
Link to Worksheet
Read: Downey Ch 1
Due: P1
Assigned: Lab-P2, P2
Lecture: code
Fri: Vars and Exprs (Jan 31)
- Naming Rules
- Assignment
- Types of errors
- Comments
Link to Slides
Read: Downey Ch 2
Lecture: code
Week 3
Mon: Using Functions (Feb 03)
- Functions
- input, str funcs, float funcs
- Arguments, Return Values
- Importing Modules
- Math Module
Link to Slides
Read: Downey Ch 3 ("Function Calls" to "Composition")
Lecture: code
Wed: Creating Functions (Feb 05)
- Positional Params
- Keyword Params
- Return Values
Read: Downey Ch 3 ("Adding New Functions" to "Flow of Execution" and "Fruitful and Void Functions")
Read: Creating Fruitful Functions
Link to Slides
Link to Worksheet
Interactive Exercises
Due: P2
Assigned: Lab-P3, P3
Lecture: code
Fri: Function Scope (Feb 07)
- Local vs. Global
- Argument Passing
- Frames
- Stack Diagrams
Read: Downey Ch 3 ("Parameters and Arguments" to end)
Link to Slides
Interactive Exercises
Lecture: code
Week 4
Mon: Conditionals 1 (Feb 10)
- Boolean Logic
- if,elif,else
- Modular arithmetic
Link to Slides
Link to Worksheet
Interactive Exercises
Read: Downey Ch 5 ("Floor Division and Modulus" to "Nested Conditionals" and "Keyboard Input" to end)
and Ch 6 ("Return Values" to "Boolean Functions")
Optional: Downey Ch 4
Lecture: code
Wed: Conditionals 2 (Feb 12)
- Refactoring
- Nesting
Link to Slides
Interactive Exercises
Due: P3
Assigned: Lab-P4, P4
Lecture: code
Fri: Iteration 1 (Feb 14)
- Reassignment
- While Loop
- Infinite Iteration
Link to Slides
Read: Downey Ch 7
Lecture: code
Week 5
Mon: Iteration 2 (Feb 17)
- Break
- Continue
Link to Slides
Link to Worksheet
Interactive Exercises
Read (Optional): Sweigart Ch 2
Lecture: code
Wed: Strings (Feb 19)
- Indexing/Slicing
- Sequences
- For Loop, range()
- Searching
- Comparison
- String formatting
Link to Slides
Link to Worksheet
Read: Downey Ch 8
Optional: Downey Ch 9
Due: P4
Assigned: Lab-P5, P5
Lecture: code
Fri: Review Day (Feb 21)
Evening Exam 1!
Part 2: State
Week 6
Mon: Lists (Feb 24)
- Sequence, Like a String
- Indexing, Slicing
- sys.argv, dir()
- Mutable vs. Immutable
- List Methods
Link to Slides
Read: Downey Ch 10
Lecture: code
Wed: CSV Tables (Feb 26)
- Comparison with Spreadsheets
- Format
- Headers
- Lists of lists
Link to Slides
Read: Sweigart Ch 16 (through "Reading Data from Reader Objects in a for Loop")
Due: P5
Assigned: Lab-P6, P6
Lecture: code
Week 7
Mon: Dictionaries 1 (Mar 02)
- Syntax
- Lookup
- Insert
- Pop
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("A Dictionary is a Mapping" through "Looping and Dictionaries")
Lecture: code
Wed: Dictionaries 2 (Mar 04)
- Nesting
- dicts with lists
- defaultdict
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("Dictionaries and Lists" and "Global Variables" to end)
Due: P6
Assigned: Lab-P7, P7
Lecture: code
Fri: JSON (Mar 06)
- Deserialization
- Serialization
- Pretty Printing
Link to Worksheet
Link to Slides
Read: Sweigart Ch 16
Lecture: code
Week 8
Mon: Objects (Mar 09)
- namedtuple and recordclass
- Mutability
- References
- Python Tutor
Link to Slides
Interactive Exercises
Read: Downey Ch 10 ("Objects and Values" and "Aliasing") and Ch 12
Wed: Copying (Mar 11)
- References
- Shallow Copy
- Deep Copy
Link to Worksheet
Link to Slides
Interactive Exercises
Read: Sweigart Ch 4 ("References" through the end)
Lecture: YouTube (or) Kaltura
Assigned: Lab-P8a, P8
Fri: Recursive Functions (Mar 13)
- Base/Resursive Cases
- Lists of Lists
- More Stack Diagrams
- Stack Overflow
Link to Slides
Interactive Exercise 1
Interactive Exercise 2
Read: Downey Ch 5 ("Recursion" through "Infinite Recursion"), Ch 6 ("More Recursion" through end)
Lecture: YouTube (or) Kaltura
Week 9
Mon: Spring Break! (Mar 16)
No Class
Wed: Spring Break! (Mar 18)
No Class
Fri: Spring Break! (Mar 20)
No Class
Week 10
Mon: Function References (Mar 23)
- map
- sort
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Wed: Generator Functions (Mar 25)
- iterators and generators
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Assigned: Lab-P8b
Due: P7
Fri: Error Handling (Mar 27)
- Catching Exceptions
- Throwing Exceptions
- Asserts
Link to Slides
Interactive Exercises
Link to Worksheet
Read: Sweigart Ch 10 (beginning through "Assertions")
Lecture: YouTube (or) Kaltura, Code: code
Part 3: Data Science
Week 11
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Link to Slides
Read: Downey Ch 14
Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Reading: Pandas Intro Notebook (HTML, .ipynb and data)
Lecture: YouTube
(or) Kaltura
Code: main.ipynb
Due: P8
Week 12
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Link to Slides
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: (Jan 20)
MLK Day!No Class
Wed: Introduction (Jan 22)
- Class Overview
- Hardware
- Software
- Resources for getting help
Read: Syllabus
Install: Python on Windows or Mac
Assigned: Lab-P1, P1
Fri: The Terminal (Jan 24)
- Terminal Emulatation
- Shells
- Navigation
- Program Execution
Lecture: terminal commands
Wed: Programming (Jan 29)
- Syntax+Parsing
- Values+Types
- Calculation+Operators
- Boolean Logic
- Interactive vs. Script Mode, print
Link to Worksheet
Read: Downey Ch 1
Due: P1
Assigned: Lab-P2, P2
Lecture: code
Fri: Vars and Exprs (Jan 31)
- Naming Rules
- Assignment
- Types of errors
- Comments
Read: Downey Ch 2
Lecture: code
Week 3
Mon: Using Functions (Feb 03)
- Functions
- input, str funcs, float funcs
- Arguments, Return Values
- Importing Modules
- Math Module
Link to Slides
Read: Downey Ch 3 ("Function Calls" to "Composition")
Lecture: code
Wed: Creating Functions (Feb 05)
- Positional Params
- Keyword Params
- Return Values
Read: Downey Ch 3 ("Adding New Functions" to "Flow of Execution" and "Fruitful and Void Functions")
Read: Creating Fruitful Functions
Link to Slides
Link to Worksheet
Interactive Exercises
Due: P2
Assigned: Lab-P3, P3
Lecture: code
Fri: Function Scope (Feb 07)
- Local vs. Global
- Argument Passing
- Frames
- Stack Diagrams
Read: Downey Ch 3 ("Parameters and Arguments" to end)
Link to Slides
Interactive Exercises
Lecture: code
Week 4
Mon: Conditionals 1 (Feb 10)
- Boolean Logic
- if,elif,else
- Modular arithmetic
Link to Slides
Link to Worksheet
Interactive Exercises
Read: Downey Ch 5 ("Floor Division and Modulus" to "Nested Conditionals" and "Keyboard Input" to end)
and Ch 6 ("Return Values" to "Boolean Functions")
Optional: Downey Ch 4
Lecture: code
Wed: Conditionals 2 (Feb 12)
- Refactoring
- Nesting
Link to Slides
Interactive Exercises
Due: P3
Assigned: Lab-P4, P4
Lecture: code
Fri: Iteration 1 (Feb 14)
- Reassignment
- While Loop
- Infinite Iteration
Link to Slides
Read: Downey Ch 7
Lecture: code
Week 5
Mon: Iteration 2 (Feb 17)
- Break
- Continue
Link to Slides
Link to Worksheet
Interactive Exercises
Read (Optional): Sweigart Ch 2
Lecture: code
Wed: Strings (Feb 19)
- Indexing/Slicing
- Sequences
- For Loop, range()
- Searching
- Comparison
- String formatting
Link to Slides
Link to Worksheet
Read: Downey Ch 8
Optional: Downey Ch 9
Due: P4
Assigned: Lab-P5, P5
Lecture: code
Fri: Review Day (Feb 21)
Evening Exam 1!
Part 2: State
Week 6
Mon: Lists (Feb 24)
- Sequence, Like a String
- Indexing, Slicing
- sys.argv, dir()
- Mutable vs. Immutable
- List Methods
Link to Slides
Read: Downey Ch 10
Lecture: code
Wed: CSV Tables (Feb 26)
- Comparison with Spreadsheets
- Format
- Headers
- Lists of lists
Link to Slides
Read: Sweigart Ch 16 (through "Reading Data from Reader Objects in a for Loop")
Due: P5
Assigned: Lab-P6, P6
Lecture: code
Week 7
Mon: Dictionaries 1 (Mar 02)
- Syntax
- Lookup
- Insert
- Pop
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("A Dictionary is a Mapping" through "Looping and Dictionaries")
Lecture: code
Wed: Dictionaries 2 (Mar 04)
- Nesting
- dicts with lists
- defaultdict
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("Dictionaries and Lists" and "Global Variables" to end)
Due: P6
Assigned: Lab-P7, P7
Lecture: code
Fri: JSON (Mar 06)
- Deserialization
- Serialization
- Pretty Printing
Link to Worksheet
Link to Slides
Read: Sweigart Ch 16
Lecture: code
Week 8
Mon: Objects (Mar 09)
- namedtuple and recordclass
- Mutability
- References
- Python Tutor
Link to Slides
Interactive Exercises
Read: Downey Ch 10 ("Objects and Values" and "Aliasing") and Ch 12
Wed: Copying (Mar 11)
- References
- Shallow Copy
- Deep Copy
Link to Worksheet
Link to Slides
Interactive Exercises
Read: Sweigart Ch 4 ("References" through the end)
Lecture: YouTube (or) Kaltura
Assigned: Lab-P8a, P8
Fri: Recursive Functions (Mar 13)
- Base/Resursive Cases
- Lists of Lists
- More Stack Diagrams
- Stack Overflow
Link to Slides
Interactive Exercise 1
Interactive Exercise 2
Read: Downey Ch 5 ("Recursion" through "Infinite Recursion"), Ch 6 ("More Recursion" through end)
Lecture: YouTube (or) Kaltura
Week 9
Mon: Spring Break! (Mar 16)
No Class
Wed: Spring Break! (Mar 18)
No Class
Fri: Spring Break! (Mar 20)
No Class
Week 10
Mon: Function References (Mar 23)
- map
- sort
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Wed: Generator Functions (Mar 25)
- iterators and generators
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Assigned: Lab-P8b
Due: P7
Fri: Error Handling (Mar 27)
- Catching Exceptions
- Throwing Exceptions
- Asserts
Link to Slides
Interactive Exercises
Link to Worksheet
Read: Sweigart Ch 10 (beginning through "Assertions")
Lecture: YouTube (or) Kaltura, Code: code
Part 3: Data Science
Week 11
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Link to Slides
Read: Downey Ch 14
Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Reading: Pandas Intro Notebook (HTML, .ipynb and data)
Lecture: YouTube
(or) Kaltura
Code: main.ipynb
Due: P8
Week 12
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Link to Slides
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Using Functions (Feb 03)
- Functions
- input, str funcs, float funcs
- Arguments, Return Values
- Importing Modules
- Math Module
Read: Downey Ch 3 ("Function Calls" to "Composition")
Lecture: code
Wed: Creating Functions (Feb 05)
- Positional Params
- Keyword Params
- Return Values
Read: Creating Fruitful Functions
Link to Slides
Link to Worksheet
Interactive Exercises
Due: P2
Assigned: Lab-P3, P3
Lecture: code
Fri: Function Scope (Feb 07)
- Local vs. Global
- Argument Passing
- Frames
- Stack Diagrams
Link to Slides
Interactive Exercises
Lecture: code
Mon: Conditionals 1 (Feb 10)
- Boolean Logic
- if,elif,else
- Modular arithmetic
Link to Worksheet
Interactive Exercises
Read: Downey Ch 5 ("Floor Division and Modulus" to "Nested Conditionals" and "Keyboard Input" to end) and Ch 6 ("Return Values" to "Boolean Functions")
Optional: Downey Ch 4
Lecture: code
Wed: Conditionals 2 (Feb 12)
- Refactoring
- Nesting
Interactive Exercises
Due: P3
Assigned: Lab-P4, P4
Lecture: code
Fri: Iteration 1 (Feb 14)
- Reassignment
- While Loop
- Infinite Iteration
Read: Downey Ch 7
Lecture: code
Week 5
Mon: Iteration 2 (Feb 17)
- Break
- Continue
Link to Slides
Link to Worksheet
Interactive Exercises
Read (Optional): Sweigart Ch 2
Lecture: code
Wed: Strings (Feb 19)
- Indexing/Slicing
- Sequences
- For Loop, range()
- Searching
- Comparison
- String formatting
Link to Slides
Link to Worksheet
Read: Downey Ch 8
Optional: Downey Ch 9
Due: P4
Assigned: Lab-P5, P5
Lecture: code
Fri: Review Day (Feb 21)
Evening Exam 1!
Part 2: State
Week 6
Mon: Lists (Feb 24)
- Sequence, Like a String
- Indexing, Slicing
- sys.argv, dir()
- Mutable vs. Immutable
- List Methods
Link to Slides
Read: Downey Ch 10
Lecture: code
Wed: CSV Tables (Feb 26)
- Comparison with Spreadsheets
- Format
- Headers
- Lists of lists
Link to Slides
Read: Sweigart Ch 16 (through "Reading Data from Reader Objects in a for Loop")
Due: P5
Assigned: Lab-P6, P6
Lecture: code
Week 7
Mon: Dictionaries 1 (Mar 02)
- Syntax
- Lookup
- Insert
- Pop
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("A Dictionary is a Mapping" through "Looping and Dictionaries")
Lecture: code
Wed: Dictionaries 2 (Mar 04)
- Nesting
- dicts with lists
- defaultdict
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("Dictionaries and Lists" and "Global Variables" to end)
Due: P6
Assigned: Lab-P7, P7
Lecture: code
Fri: JSON (Mar 06)
- Deserialization
- Serialization
- Pretty Printing
Link to Worksheet
Link to Slides
Read: Sweigart Ch 16
Lecture: code
Week 8
Mon: Objects (Mar 09)
- namedtuple and recordclass
- Mutability
- References
- Python Tutor
Link to Slides
Interactive Exercises
Read: Downey Ch 10 ("Objects and Values" and "Aliasing") and Ch 12
Wed: Copying (Mar 11)
- References
- Shallow Copy
- Deep Copy
Link to Worksheet
Link to Slides
Interactive Exercises
Read: Sweigart Ch 4 ("References" through the end)
Lecture: YouTube (or) Kaltura
Assigned: Lab-P8a, P8
Fri: Recursive Functions (Mar 13)
- Base/Resursive Cases
- Lists of Lists
- More Stack Diagrams
- Stack Overflow
Link to Slides
Interactive Exercise 1
Interactive Exercise 2
Read: Downey Ch 5 ("Recursion" through "Infinite Recursion"), Ch 6 ("More Recursion" through end)
Lecture: YouTube (or) Kaltura
Week 9
Mon: Spring Break! (Mar 16)
No Class
Wed: Spring Break! (Mar 18)
No Class
Fri: Spring Break! (Mar 20)
No Class
Week 10
Mon: Function References (Mar 23)
- map
- sort
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Wed: Generator Functions (Mar 25)
- iterators and generators
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Assigned: Lab-P8b
Due: P7
Fri: Error Handling (Mar 27)
- Catching Exceptions
- Throwing Exceptions
- Asserts
Link to Slides
Interactive Exercises
Link to Worksheet
Read: Sweigart Ch 10 (beginning through "Assertions")
Lecture: YouTube (or) Kaltura, Code: code
Part 3: Data Science
Week 11
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Link to Slides
Read: Downey Ch 14
Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Reading: Pandas Intro Notebook (HTML, .ipynb and data)
Lecture: YouTube
(or) Kaltura
Code: main.ipynb
Due: P8
Week 12
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Link to Slides
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Iteration 2 (Feb 17)
- Break
- Continue
Link to Worksheet
Interactive Exercises
Read (Optional): Sweigart Ch 2
Lecture: code
Wed: Strings (Feb 19)
- Indexing/Slicing
- Sequences
- For Loop, range()
- Searching
- Comparison
- String formatting
Link to Worksheet
Read: Downey Ch 8
Optional: Downey Ch 9
Due: P4
Assigned: Lab-P5, P5
Lecture: code
Fri: Review Day (Feb 21)
Evening Exam 1!Mon: Lists (Feb 24)
- Sequence, Like a String
- Indexing, Slicing
- sys.argv, dir()
- Mutable vs. Immutable
- List Methods
Read: Downey Ch 10
Lecture: code
Wed: CSV Tables (Feb 26)
- Comparison with Spreadsheets
- Format
- Headers
- Lists of lists
Read: Sweigart Ch 16 (through "Reading Data from Reader Objects in a for Loop")
Due: P5
Assigned: Lab-P6, P6
Lecture: code
Week 7
Mon: Dictionaries 1 (Mar 02)
- Syntax
- Lookup
- Insert
- Pop
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("A Dictionary is a Mapping" through "Looping and Dictionaries")
Lecture: code
Wed: Dictionaries 2 (Mar 04)
- Nesting
- dicts with lists
- defaultdict
Link to Slides
Interactive Exercises
Read: Downey Ch 11 ("Dictionaries and Lists" and "Global Variables" to end)
Due: P6
Assigned: Lab-P7, P7
Lecture: code
Fri: JSON (Mar 06)
- Deserialization
- Serialization
- Pretty Printing
Link to Worksheet
Link to Slides
Read: Sweigart Ch 16
Lecture: code
Week 8
Mon: Objects (Mar 09)
- namedtuple and recordclass
- Mutability
- References
- Python Tutor
Link to Slides
Interactive Exercises
Read: Downey Ch 10 ("Objects and Values" and "Aliasing") and Ch 12
Wed: Copying (Mar 11)
- References
- Shallow Copy
- Deep Copy
Link to Worksheet
Link to Slides
Interactive Exercises
Read: Sweigart Ch 4 ("References" through the end)
Lecture: YouTube (or) Kaltura
Assigned: Lab-P8a, P8
Fri: Recursive Functions (Mar 13)
- Base/Resursive Cases
- Lists of Lists
- More Stack Diagrams
- Stack Overflow
Link to Slides
Interactive Exercise 1
Interactive Exercise 2
Read: Downey Ch 5 ("Recursion" through "Infinite Recursion"), Ch 6 ("More Recursion" through end)
Lecture: YouTube (or) Kaltura
Week 9
Mon: Spring Break! (Mar 16)
No Class
Wed: Spring Break! (Mar 18)
No Class
Fri: Spring Break! (Mar 20)
No Class
Week 10
Mon: Function References (Mar 23)
- map
- sort
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Wed: Generator Functions (Mar 25)
- iterators and generators
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Assigned: Lab-P8b
Due: P7
Fri: Error Handling (Mar 27)
- Catching Exceptions
- Throwing Exceptions
- Asserts
Link to Slides
Interactive Exercises
Link to Worksheet
Read: Sweigart Ch 10 (beginning through "Assertions")
Lecture: YouTube (or) Kaltura, Code: code
Part 3: Data Science
Week 11
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Link to Slides
Read: Downey Ch 14
Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Reading: Pandas Intro Notebook (HTML, .ipynb and data)
Lecture: YouTube
(or) Kaltura
Code: main.ipynb
Due: P8
Week 12
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Link to Slides
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Dictionaries 1 (Mar 02)
- Syntax
- Lookup
- Insert
- Pop
Interactive Exercises
Read: Downey Ch 11 ("A Dictionary is a Mapping" through "Looping and Dictionaries")
Lecture: code
Wed: Dictionaries 2 (Mar 04)
- Nesting
- dicts with lists
- defaultdict
Interactive Exercises
Read: Downey Ch 11 ("Dictionaries and Lists" and "Global Variables" to end)
Due: P6
Assigned: Lab-P7, P7
Lecture: code
Fri: JSON (Mar 06)
- Deserialization
- Serialization
- Pretty Printing
Link to Slides
Read: Sweigart Ch 16
Lecture: code
Mon: Objects (Mar 09)
- namedtuple and recordclass
- Mutability
- References
- Python Tutor
Interactive Exercises
Read: Downey Ch 10 ("Objects and Values" and "Aliasing") and Ch 12
Wed: Copying (Mar 11)
- References
- Shallow Copy
- Deep Copy
Link to Slides
Interactive Exercises
Read: Sweigart Ch 4 ("References" through the end)
Lecture: YouTube (or) Kaltura
Assigned: Lab-P8a, P8
Fri: Recursive Functions (Mar 13)
- Base/Resursive Cases
- Lists of Lists
- More Stack Diagrams
- Stack Overflow
Interactive Exercise 1
Interactive Exercise 2
Read: Downey Ch 5 ("Recursion" through "Infinite Recursion"), Ch 6 ("More Recursion" through end)
Lecture: YouTube (or) Kaltura
Week 9
Mon: Spring Break! (Mar 16)
No Class
Wed: Spring Break! (Mar 18)
No Class
Fri: Spring Break! (Mar 20)
No Class
Week 10
Mon: Function References (Mar 23)
- map
- sort
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Wed: Generator Functions (Mar 25)
- iterators and generators
Link to Slides
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Assigned: Lab-P8b
Due: P7
Fri: Error Handling (Mar 27)
- Catching Exceptions
- Throwing Exceptions
- Asserts
Link to Slides
Interactive Exercises
Link to Worksheet
Read: Sweigart Ch 10 (beginning through "Assertions")
Lecture: YouTube (or) Kaltura, Code: code
Part 3: Data Science
Week 11
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Link to Slides
Read: Downey Ch 14
Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Reading: Pandas Intro Notebook (HTML, .ipynb and data)
Lecture: YouTube
(or) Kaltura
Code: main.ipynb
Due: P8
Week 12
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Link to Slides
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Spring Break! (Mar 16)
No ClassWed: Spring Break! (Mar 18)
No ClassFri: Spring Break! (Mar 20)
No ClassMon: Function References (Mar 23)
- map
- sort
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Wed: Generator Functions (Mar 25)
- iterators and generators
Interactive Exercises
Lecture: YouTube video (or) Kaltura video, code
Assigned: Lab-P8b
Due: P7
Fri: Error Handling (Mar 27)
- Catching Exceptions
- Throwing Exceptions
- Asserts
Interactive Exercises
Link to Worksheet
Read: Sweigart Ch 10 (beginning through "Assertions")
Lecture: YouTube (or) Kaltura, Code: code
Part 3: Data Science
Week 11
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Link to Slides
Read: Downey Ch 14
Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Reading: Pandas Intro Notebook (HTML, .ipynb and data)
Lecture: YouTube
(or) Kaltura
Code: main.ipynb
Due: P8
Week 12
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Link to Slides
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Files and Directories (Mar 30)
- Reading
- Writing
- Listing children
Read: Downey Ch 14 Lecture: YouTube (or) Kaltura, Code: code
Fri: Pandas 1 (Apr 03)
- iPython
- dataframe
- series
- reading CSVs
- element-wise operations
Lecture: YouTube (or) Kaltura
Code: main.ipynb
Due: P8
Wed: Web 1 (Apr 08)
- Servers/Clients
- URLs
- HTTP: GET and POST
- requests module
Read: Sweigart Ch 11
Assigned: Lab-P9b
Lecture: YouTube (or) Kaltura, Code: code
Fri: Web 2 (Apr 10)
- Intro to HTML
- Generating HTML
Lecture: YouTube (or) Kaltura, Code: code
Week 13
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Link to Slides
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Link to Slides
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube
(or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Link to Slides
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube
(or) Kaltura
Week 14
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Reading: Matplotlib Intro (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Interactive Learning Experience:
Lecture: YouTube
(or) Kaltura
Fri: Plotting 2 (Apr 24)
- line plots
Reading: Line and Advanced Bar Plots (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Web 3 (Apr 13)
- Document Object Model
- Parsing HTML
- beautifulsoup
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 1 (Apr 15)
- schemas/types
- queries
- where
- SQLite
- Querying from Pandas
Assigned: Lab-P10a, P10
Lecture: code
Lecture: YouTube (or) Kaltura
Fri: Database 2 (Apr 17)
- aggregates
- group by
Due: P9
Lecture: code
(do lecture.ipynb in class, bus.ipynb at home)
Lecture: YouTube (or) Kaltura
Mon: Plotting 1 (Apr 20)
- bar+scatter plots
- plot design
- AxesSublot
Lecture: YouTube (or) Kaltura, Code: code
Wed: Database 3 (Apr 22)
- Pandas <--> SQL
Fri: Plotting 2 (Apr 24)
- line plots
Lecture: YouTube (or) Kaltura, Code: code
Week 15
Mon: Plotting 3 (Apr 27)
- bar plots
Reading: same as for "Plotting 2"
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Reading: Axes and Plot Design (HTML, .ipynb and data)
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Link to Slides
Due: P10
Code: code
Lecture: YouTube (or) Kaltura
Mon: Plotting 3 (Apr 27)
- bar plots
Assigned: Lab-P10b
Assigned final project: Final Project
Lecture: YouTube (or) Kaltura, Code: code
Wed: Plotting 4 (Apr 29)
- axes
- adjacent plots
- design decisions
Lecture: YouTube (or) Kaltura, Code: code
Fri: Randomness (May 01)
- Debugging
- Simulation
- Significance
Due: P10
Code: code
Lecture: YouTube (or) Kaltura