Date |
Topics |
Readings |
Lecture Videos and Notes |
Week 1: Jan 25-29 |
Course introduction and Administrivia
Installing and running Python and Jupyter
Basic Python: types, variables and functions
Basic Python: conditionals and iteration
|
Jupyter notebook documentation (required);
either A. B. Downey, Chapters 1 through 3 or Severance, Chapters 1, 2 and 4 (required)
|
Playlist: types, variables and functions; Slides; Demo code
Playlist: conditionals and iteration; Slides; Demo code
HW1 out
|
Week 2: Feb 1-5 |
Sequence data: strings, lists and tuples
List comprehensions
Python dictionaries and hashing
|
Either A. B. Downey, Chapters 8 and 10 or Severance, Chapters 6 and 8 (required); A. B. Downey, Chapter 9 (recommended)
Python documentation on lists (recommended); Python documentation on sequences (recommended)
Either A. B. Downey, Chapters 11 and 12 or Severance, Chapters 9 and 10 (required)
Python documentation on dictionaries (recommended)
Python documentation on tuples (recommended)
Python documentation on sets (recommended)
A. B. Downey, Section B.4 (recommended); A. B. Downey, Chapter 13 (recommended)
|
Playlist: strings, lists and sequence data; Slides; Demo code
Playlist: dictionaries and tuples; Slides; Demo code
HW2 out
|
Week 3: Feb 8-12 |
Files and I/O
Python on the Command Line
|
A. B. Downey, Chapter 14 or Severance, Chapter 7 (required)
Python File I/O Documentation (required)
Handling Errors and Exceptions (required)
Python pickle module (recommended)
Overview of the Python interpreter (recommended)
Calling Python from the command line (recommended)
Python sys module (recommended)
|
Playlist: Files and I/O; Slides; Demo code
Playlist: Python on the Command Line; Slides; Demo code
HW3 out
|
Week 4: Feb 15-19 |
Basics of object-oriented programming
Classes and instances
Methods and attributes
|
A. B. Downey, Chapters 15 and 16 or Severance Chapter 14 (required)
Python documentation on classes (only through section 9.3) (required)
D. Phillips (2015). Python 3 Object-oriented Programming, Second Edition. Packt Publishing. (recommended)
M. Weisfeld (2009). The Object-Oriented Thought Process, Third Edition. Addison-Wesley. (recommended)
|
Playlist: Objects and Classes; Slides; Demo code
HW4 out
|
Week 5: Feb 22-26 |
Basic concepts in functional programming
Map, reduce and filter
|
Python itertools documentation (required)
Python functools documentation (required)
A. M. Kuchling. Functional Programming HOWTO (required)
M. R. Cook. A Practical Introduction to Functional Programming (recommended)
D. Mertz Functional Programming in Python (recommended)
|
Playlist: Functional Programming; Slides; Demo code
HW5 out
|
Week 6: Mar 1-5 |
numpy, scipy and matplotlib
|
Numpy quickstart tutorial (required)
SciPy tutorial (recommended)
Pyplot tutorial (required)
Pyplot API (recommended)
E. Tufte (2001). The Visual Display of Quantitative Information. Graphics Press. (recommended)
E. Tufte (1997). Visual and Statistical Thinking: Displays of Evidence for Making Decisions. Graphics Press. (recommended)
|
Playlist: numpy and scipy; Slides; Demo code
Playlist: matplotlib; Slides; Demo code
HW6 out
|
Week 7: Mar 8-12 |
Python pandas
|
pandas quickstart guide (required)
Basic data structures (required)
Basic functionality of pandas Series and DataFrames (required)
pandas group-by operations (required)
Reshaping and pivoting (required)
pandas cookbook (recommended)
Merge, join and concatenation (recommended)
Time series functionality (recommended)
|
Playlist: pandas; Slides; Demo code
HW7 out
|
Week 8: Mar 15-19 |
Markup languages: HTML, XML and JSON
|
Severance Chapter 12 (HTTP, HTML) and Chapter 13 (XML, JSON) (required)
BeautifulSoup documentation (just Quick Start) (required)
BeautifulSoup documentation (everything up to sections about CSS) (recommended)
BeautifulSoup4 tutorial (recommended) |
Playlist: markup languages; Slides; Demo code
HW8 out |
Week 9: Mar 22-26 |
Databases and SQL
|
Oracle relational databases overview (and only the overview!) (required)
First section of Python sqlite3 documentation (required)
w3schools SQL tutorial (recommended)
|
Playlist: Databases and SQL; Slides; Demo code
HW9 out |
Week 10: Mar 29 - Apr 2 |
Retrieving data with APIs
Introduction to Hadoop and MapReduce |
Wikipedia: Web APIs (recommended)
Overview of HTTP Request Methods (recommended)
J. Dean and S. Ghemawat MapReduce: Simplified Data Processing on Large Clusters in Proceedings of the Sixth Symposium on Operating System Design and Implementation, 2004 (required)
Introduction to HDFS by J. Hanson (recommended)
|
Playlist: Web APIs; Slides; Demo code
Playlist: MapReduce; Slides
HW10 out
|
Week 11: Apr 5-9 |
MapReduce using mrjob |
mrjob Fundamentals and Concepts (required)
Hadoop wiki: How MapReduce operations are actually carried out (required)
|
Playlist: mrjob; Slides; Demo code
HW11 out |
Week 12: Apr 12-16 |
MapReduce using PySpark |
PySpark quickstart (required)
RDD programming guide (required)
Spark MLlib, a Spark machine learning library (recommended)
Spark GraphX, a Spark library for processing graph data (recommended)
|
Playlist: PySpark; Slides; Demo code
HW12 out |
Week 13: Apr 19-23 |
Google TensorFlow and Keras |
Guide: TensorFlow Basics (required)
TensorFlow Estimators API (recommended)
|
Playlist: TensorFlow; Slides; Demo code
HW13 out
|
Week 14: Apr 26-30 |
Google TensorFlow and Keras, cont'd |
Modules, layers and models in TensorFlow (required);
Training loops in TensorFlow (required);
Specifying models with Keras (recommended); |
Playlist: Building and Training Models in TensorFlow; Slides; Demo code
Demo: recognizing handwritten digits with softmax regression
Demo: recognizing handwritten digits with a CNN |