PIC 16 Python with Applications
You can download the course information here.
Winter 2018 Tentative Course Schedule
Week 1
- 01/08 Lecture 1: Course Overview
– Follow instruction in GettingStarted.pdf on CCLE
– Reading material: Python tutorial 1 and 2.1.2 - 01/10 Lecture 2: Python Basics - Basic Data Types, commenting, list, dictionary, functions, modules
– Reading material: Python tutorial 3.1.1, 3.1.2, 3.1.4, 5.1, 5.5 - 01/12 Lecture 3: Python Basics - Control Flow, Functions
– Reading material: Python tutorial 4.1 - 4.7
Week 2
- 01/15 Martin Luther King, Jr. Holiday (No Class)
- 01/17 Lecture 4: Python Basics - Data Structures
– Reading material: Python tutorial 5.2 - 5.5 - 01/19 Lecture 5: Python Basics - Functional Programming
– Reading material: Python tutorial 6.1, 8.1 - 8.4, 5.7
** Homework 1 due Wednesday by 5pm
Week 3
- 01/22 Lecture 6: Python Basics - Classes and Objects, Magic Methods
– Reading material: tutorialspoint - 01/24 Lecture 7: Regular Expressions I
– Reading material: tutorial
– Cheat sheet
– To test your regular expressions: pythex - 01/26 Lecture 8: Regular Expressions II
** Homework 2 due Friday by 5pm
Week 4
- 01/29 Lecture 9: Visualization I: Turtle, Matplotlib and pyplot
– Recursion
– Matplotlib tutorial - 01/31 Lecture 10: Visualization II: Pandas, Matplotlib and Numpy
– Pandas Tutorial
– Pandas Basics Cheat Sheet (on CCLE) - 02/02 Lecture 11: Visualization III: More on plotting
– Numpy tutorial
** Homework 3 due Friday by 5pm
Week 5
- 02/05 Lecture 12: GUI I: Tkinter
– An Introduction To Tkinter - 02/07 Lecture 13: GUI II: Tkinter bouncing ball example
- 02/09 Lecture 14: GUI III: Inheritance
– Executing Modules as Scripts
– Class Inheritance and Overloading Methods
** Homework 4 due Friday by 5pm
Week 6
- 02/12 Lecture 15: GUI IV: Qt Designer and PyQt
– Qt Designer Documentation
– PyQt5 Tutorial - 02/14 Lecture 16: Image Processing I: Grey-scale images and adding noise to an image
– Matplotlib image tutorial - 02/16 Lecture 17: Image Processing II: Uniform Blur and Gaussian Blur
– Blurring for Beginners
** Homework 5 due Friday by 5pm
Week 7
- 02/19 President’s Day Holiday (No Class)
- 02/21 Lecture 18: NLTK
– Read the introduction to Chapter 1 of the NLTK Book.
– Follow 1.2, 1.3, 1.4
– Follow Chapter 1, section 3 (all)
– Skim Chapter 1, section 5. This will give you a good overview of the issues in natural language
– Skim Chapter 3 for processing raw text processing. - 02/23 Lecture 19: Page-Rank algorithm
– https://networkx.github.io/documentation/stable/tutorial.html#creating-a-graph
– Read from “Creating a graph” to “Directed graphs”
– https://en.wikipedia.org/wiki/PageRank
– (Optional)https://www.geeksforgeeks.org/page-rank-algorithm-implementation
Week 8
- 02/26 Lecture 20: Linear algebra and transition matrices
– numpy.linalg - 02/28 Lecture 21: Symbolic Math I
– Sympy Tutorial - 03/02 Lecture 22: Symbolic Math II, Scipy
– Sympy Tutorial
** Homework 6 due Monday by 5pm
Week 9
- 03/05 Lecture 23: Machine Learning I: NMF
– Scikit-learn: Non-negative Matrix Factorization - 03/07 Lecture 24: Machine Learning II: KNN and K-means clustering
– Scikit-learn: Nearest Neighbors Classification
– K-nearest Neighbors Wikipedia
– Scikit-learn: K-Means Clustering
– Visualizing K-Means clustering - 03/09 Lecture 25: Machine Learning III: SVM
– Machine learning: the problem setting
– Scikit-learn: Support Vector Machines (SVMs)
** Homework 7 due Friday by 5pm
Week 10
- 03/12 Lecture 26: Scrapy
– W3 Schools HTML Intro
– W3 Schools XML Intro
– “What is the DOM” in W3 Schools XML DOM Intro
– XML DOM Nodes
– Scrapy Tutorial - 03/14 Lecture 27: Socket (Networking)
– The first half (16.5 minutes) of Python Advanced Tutorial 6 – Networking
– Socket module documentation
– Python Network Programming
– (Optional) How does ping work? - 03/16 Lecture 28: Review
** Homework 8 due Friday by 5pm
- 03/21 Final exam