Class Logistics
What is Programming?
Programming Languages
Debugging
Interpreters vs Compilers
Python
Python Prompt
Python Values (numbers and strings)
Expressions and Statements
Variables
Input
Boolean Values
Logical Operators
Conditional Execution
Modules
The math module
The random module
Repeated execution: The for Loop
The range function
The while statement
"Sentinel" values and termination
Infinite looping
Why programming is difficult
Strings and string operations
Slicing
Unicode
Traversing characters of strings
Lists and list operations
Mutating lists and aliasing
Nested lists
Traversing lists
Debugging
Midterm Review Session
Functions
Return Values
Parameters
Local and Global Variables
Recursion
Loops vs Recursion
Divide-and-Conquer
Induction Proofs and Recursion
Side Effects
Pure Functions
Docstrings
Default Arguments
Named Arguments
Primitives vs Defining Functions
Tuples
NumPy
Scientific Computing
Matplotlib Plotting and Visualization
Finding Correlations
GUI programs vs Command line programs
Widgets
Layouts
Events and Commands
Browsers and Web Pages
Web applications
Flask
Dictionaries
Dictionary Operations and Methods
Dictionaries and Aliasing
Sets
Types
Type Annotations
Type Checking with MyPy
Final Exam Review Session