CIS-1902 Python Programming 🐍
Fall 2024 Section 201
Instructor: David Cao (davidcao@seas)
TAs: Winnie Wang (winniew1@sas) & Jack Hourigan (hojack@seas)
Location: 3401 Walnut St, 401B, Tuesdays 5:15 to 6:45 PM
Office Hours (Jack & Winnie): Levine 601, Tuesdays 12:00-1:30 PM
Office Hours (David): Zoom, Wednesdays 1:00-2:00 PM
Welcome to CIS-1902 Python Programming! In recent years, Python has truly shown its dominance as a programming language. In fact, Python is arguably the most popular programming language in the world today. Due to its simplistic nature and vast developer ecosystem, Python is a premier choice in a myriad of fields such as data analysis & processing, machine learning, and web development. This course aims to introduce you to the latest paradigms in a wide breadth of these topics and ultimately the skills necessary to excel at utilizing Python for any use case.
We will begin by going over the fundamentals of Python, after which we will cover two modules: scientific computing/machine learning and web development. Each class will typically be broken in two halves: a short lecture covering the topic of the day and then an in-class lab or code-along. At the end of the course you will build a final project of your choosing!
Some highlights of the topics covered include:
- Data Analysis and Scientific Computing (pandas and numpy)
- Machine Learning and Neural Nets (scikit-learn and PyTorch)
- Web Requests (requests)
- Fullstack Development and REST APIs (Django)
but may change given the interests of the class.
Grading
There will be a total of five programming assignments and a final project. Homeworks will count for 55% of your grade, the final project will count for 35%, and attendance will count for 10%. Attendance will be graded through the labs done in class. Up to two unexcused absences will be granted no questions asked. Excused absences will be given for unavoidable conflicts, e.g. a job interview. There will be opportunities for extra credit throughout the course!
Additionally, everyone has a total of five late days. Up to two late days can be used per assignment, except for the final project. Any additional day an assignment is late is a 25% deduction, up to 2 days total, meaning the latest you can turn in an assignment is 4 days for 50% credit.
Course Policies
- There are no restrictions on using LLMs to aid you in completing assignments, but students are urged to rely on them only for things such as documentation type queries or conceptual questions. Relying too heavily on LLMs will only hinder your learning process. While LLMs have become an increasingly powerful tool in software development, ultimately one still needs to understand the code it outputs before employing it.
- 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/~cis1902/.