CIS 192: Python Programming

Spring 2019

Welcome! Python is a powerful language with both imperative and functional paradigms. As one of the fastest growing languages of all time, Python is widely across academia and industry. This course aims to not only teach you valid Python syntax, but also introduce you to the rapidly growing ecosystem. In particular, this course will familiarize you with algorithms, game development, web development and machine learning through programming assignments. The course also features a final project of your choosing! In past years, these final projects have been very impressive uses of Python.


Logistics

Instructor: Arun Kirubarajan
Time: Thursdays from 12:00 to 1:20 PM in Towne 309

Office Hours:
Pranab Krishnan @ Harnwell Mezzanine, Sundays 6 - 8 PM
Cassandra Li @ Weiss Tech House, Thursdays 3 - 5 PM
Sarah Payne @ Harrison Mezzanine, Wednesdays 6 - 8 PM
Arun Kirubarajan @ Weiss Tech House, Tuesdays 12 - 1 PM


Week Topics Resources Homework
Week 1 Logistics, Basic Python Syntax None None
Week 2 Data Structures, Functions Code Homework 0
Week 3 Args, Kwargs, Classes, File I/O, Functional Programming Code
Week 4 Python Packages, Virtual Environments, Git, Imports Code (Shell)
Week 5 Web Development Basics, REST APIs, Flask Framework Lecture Notes Homework 1
Week 6 MVC Paradigm, SQL ORMs, Django Framework Lecture Notes Extra Credit
Week 7 Database Relationships, Application Security, Authentication Code Homework 2
Week 8 Data Science, Machine Learning, Sci-Kit Learn Lecture Slides Example Code
Week 9 Logistic Regression, Neural Networks, Tensorflow/Keras Lecture Slides Homework 3
Week 10 Artificial Intelligence, Natural Language Processing Lecture Slides Example Code
Week 11 Cloud Computing, Deployment, Docker Lecture Slides Final Project
Week 12 Misc. Python Tricks and Tips Example Code
Week 13 Final Project Meetings
Week 14 Course Reflection (optional Smash Bros. Tournament)