CIS 192: Python Programming 🐍

Spring 2020

Instructor: Arun Kirubarajan (Section 201)

Location: Tuesdays at 12:00 PM in Towne 303


Welcome! Python is a powerful interpreted language with both imperative and functional paradigms. As one of the fastest growing languages of all time, Python is widely used across academia and industry; this class is aimed to teach you the skills necessary to excel in Python programming, no matter the circumstance. As such, this course not only teaches you the latest paradigms, but also introduces you to the rapidly growing ecosystem that makes Python so powerful.


Syllabus
After working through the Python fundamentals, this course is split into three modules: classical algorithms, web development and machine learning. At the end of the course, you will break into groups to build a final project of your choosing!

Some highlights of topics/frameworks include:

  • Algorithm Programming
  • Neural Networks (Keras and PyTorch)
  • REST APIs (Flask)
  • Database-driven Applications (Django)
  • Computational Linguistics (NLP)
  • Cloud Computing (Docker)


Grading
Six programming assignments count for 60% of the final grade. The final project counts for 30% and attendance/participation makes up the remaining 10%. There will be ample opportunity for extra credit throughout the course! Everybody gets five late days, and up to two can be used for a single assignment.


Textbook
An optional textbook that the course will sometimes refer to is Fluent Python, written by Luciano Ramalho. This is an advanced textbook, and we will only use it sparingly for more intricate concepts.


Licensing Information: You are free to use or extend these projects for educational purposes provided that (1) you do not distribute or publish solutions, (2) you retain this notice, and (3) you provide clear attribution to the University of Pennsylvania, including a link to https://www.cis.upenn.edu/~cis192/