Advanced Python

David Blaikie

Spring, 2024


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
Review: File Reading and Writing
Review: File Parsing Algorithms
Command Line: Moving Around and Executing a Script
Applications with Command Line Arguments
CSV Parsing Using Built-In Python
CSV Parsing Using the csv Module
Boolean (True/False) Values
[advanced] Iterables, Iteration and List Processing
[advanced] Advanced Container Structures
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
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
Review: User-Defined Functions
[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
[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
Getting Started with Github
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
Proper Code Organization
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 ©2021 David Blaikie