Advanced Python

David Blaikie

Spring, 2025


Getting Started

Prework

Register on
School System

Windows/Dos
Command Line

Style Requirements

Command Line Reference

Glossary

Python 2 vs. 3

pdf html pdf html      pdf html      pdf html      pdf pdf html      pdf


Class Slides

Note: the slides are presented in three forms: the "Single Topic Pages", each of which cover a specific topic; the "slideshow", which is a continuous sequence of slides spanning all topics, and a single page linked as "All Slides" below -- useful for text searching. The material contained in each of these three is the same.
 

Session 1 -- Review of Containers; Reading and Writing CSV; Aggregations

   Readings Register on School System
Code Quality
   Slides slideshow
   Slides as Single
   Topic Pages
Python Intermediate Features
Boolean (True/False) Values
Command Line: Moving Around and Executing a Script
Applications with Command Line Arguments
[Review] File Reading and Writing
[Review] File Parsing Algorithms
CSV Parsing Using Built-In Python
CSV Parsing Using the csv Module
[advanced] Advanced Container Structures
List Processing
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 2 -- SQL; Multi-dimensional Structures

   Readings Command Line Reference
Introduction to Python Feature Summary 6
   Slides slideshow
   Slides as Single
   Topic Pages
User-Defined Functions
Functions and Code Organization
SQL Part 1: Databases and SQLite3 Client
SQL Part 2: Working with Databases through Python
SQL Part 3: Primary Key, JOIN, GROUP BY, ORDER BY
Reading Multidimensional Containers
Building Multidimensional Containers
[advanced] Testing
[advanced] Packages
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 3 -- Web Clients and Web Page Scraping

   Slides slideshow
   Slides as Single
   Topic Pages
HTTP and Web Clients
Web Scraping
Understanding Unicode and Character Encodings
Git Part I: Getting Started with git and GitHub
[advanced] Jinja2 Templating
[advanced] Flask
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 4 -- Regular Expressions and Github

   Readings Feature Summary -- Regexes
   Slides slideshow
   Slides as Single
   Topic Pages
Regular Expressions: Text Matching and Extraction
Git Part II: Comitting Changes and Pushing to Server
Environment Variables
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 5 -- Complex Sorting; Higher-Order Functions

   Slides slideshow
   Slides as Single
   Topic Pages
User-Defined Functions
Complex Sorting
Higher-Order Functions and Decorators
[advanced] Generators and Recursion
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 6 -- User-defined Classes

   Slides slideshow
   Slides as Single
   Topic Pages
User-Defined Classes and Object-Oriented Programming
Modules
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 7 -- Python Data Model

   Slides slideshow
   Slides as Single
   Topic Pages
Python Data Model
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 8 -- Pandas, Part I

   Slides slideshow
   Slides as Single
   Topic Pages
pandas: Introduction
pandas: Subscripting, Slicing, Joining, Appending
pandas: Transforming, Sorting and Cleaning
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 9 -- Pandas, Part II; Matplotlib

   Readings Data Analysis Types
   Slides slideshow
   Slides as Single
   Topic Pages
Matplotlib
pandas: Advanced groupby(), apply() and MultiIndex
pandas: TimeSeries, Binning and Categorizing
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
 

Session 10 -- Algorithm Efficiency and Interview Questions

   Slides slideshow
   Slides as Single
   Topic Pages
optional: Advanced Topics in Data Science
Benchmarking and Efficiency
Algorithmic Complexity Analysis and "Big O"
Practice Problems
[advanced] Functional Programming
Homework

(note that exercises are available in source data as .py and Jupyter Notebook files)
In-Class Exercises
In-Class Exercise Solutions

Homework Projects
Homework Project Discussion
 
All Slides All Slides on One Page





entire website ©2025 David Blaikie