This course meets Wednesdays from 3:30 to 5pm @ Towne 337. For OH times, check the staff page.
📚 Topics
This course is an introduction to Python and a wide range of popular Python libraries. Some example topics covered beyond the language:
- Standard Library
- Data Science
- Machine Learning
- Web Scraping
- Backend Development
- Scripting
- Computer Graphics
- Computer Vision
We will not go super in-depth into any of these topics but ideally enough for you to be able to pick up any of these topics on your own after the course.
If there are other topics you are interested in, or a topic you prefer we cover more in-depth, just let the instructors know!
🫵 Prerequisites
- CIS 1200 or equivalent (or permission of instructor).
🧱 Structure
There will be a new topic covered each week, with a few exceptions. After each class, a homework assignment will be released that will be due the following week, before class. These homeworks shouldn't take more than a few hours to complete, so please make sure to ask on EdStem if you get stuck.
Toward the end of the semester, you will have a group final project that will be due on the last day of class, during which you will also give a short presentation.
Academic Integrity
This section doesn't have an emoji in the title because we want you to take this seriously.
We actively encourage using Google, and have no problem with students using LLMs like ChatGPT to better understand problems they face and possible solutions. Don't copy/paste from online sources, or students who have already taken the course.
Don't have mid-level discussions with other students - implementation detail should be individually authored. However high-level discussions like overall homework goals and structure, or low-level discussions like syntax or built-in function usage are totally fine.
🚔 Grading Policies
Each assignment will have a variable number of points, depending on the workload, but overall, they will be worth 60% of your grade. Each assignment will have a few points delegated to best practices, which will be graded deductively. Check the style page for guidelines.
The final project will be worth 30% of your grade, and will be graded on a similar scale to the homeworks.
The last 10% of your grade will be based on attendance and participation. We don't expect everyone to have perfect attendance, but we do expect you to be engaged in the course.
🕰️ Late Policy
You have 3 free late days to use throughout the course. A single assignment can use at most 2 late days. After this, late submissions will be docked 10% for every day late. Late days are rounded up and counted in increments of 1 day (e.g. 1 hour is 1 day, 23 hours is a day, 25 hours is two days). Additional extensions can be granted only in extenuating circumstances.
We will apply the late days policy at the end of the semester in a way that is most optimal for your grade.
There are no late days for the final project since it is due on the last day of class.
📝 Logistics
We use Ed for discussion, to which you should already be invited automatically via Canvas.
All detailed course info can be found on this website, including all lectures we hold, and full assignment writeups. We are using GitHub Classroom for assignments, which will set you up with starter templates you can work from. We will provide grades and feedback through Canvas.
All 19xx courses have a shared "lecture" which meets for the first three weeks at the start of the semester and does not meet after. The "recitation" as listed in PennInTouch is the actual course. This meets once a week throughout the entire semester.
Check the development page to get set up with Python!
📢 Feedback
Let us know throughout the course if you have any feedback on the course structure, content, or anything else! That way we can adjust as soon as possible to make the course better for everyone.
Special thanks for this beautiful website design to the absolutely legendary TypeScript wizard
Thomas Shaw! 🐐