Lectures
Overview
Introduction to Python
Sequences and loops
Functions, procedures, and effects
List comprehension
Dictionaries
Generics
Pattern matching
Recursion
Higher order functions
Data Classes
Functional programming
Unit Testing and Type Checking
Tutorials and Practicals
Getting started
[
sources
] [
solution
]
Simple functions and conditional branching
[
sources
] [
solution
]
Working with lists
[
sources
] [
solution
]
Lists, Exceptions, Strings
[
sources
] [
solution
]
Generic functions
[
sources
] [
solution
]
Dictionaries, Recursion
[
sources
] [
solution
]
Higher order functions
[
sources
] [
solution
]
List comprehension
[
sources
] [
solution
]
Structural Pattern Matching (tutorial)
[
sources
]
Structural Pattern Matching (Quick Intro)
[
sources
]
Recursion on lists
[
sources
] [
solution
]
Binary Trees
[
sources
] [
solution
]
Part I: Abstract Syntax Trees
[
sources
] [
solution
]
Part I: Python ast module
[
sources
]
Part I: Dynamic typing
[
sources
] [
solution
]
Part I: Static typing
[
sources
] [
solution
]
Part II: Code coverage
[
sources
] [
solution
]
Part II: Design-by-contract
[
sources
] [
solution
]
Part II: A simple PBT framework
Part II: Python libraries for testing
[
sources
]
Part II: PBT with Hypothesis