Advanced Python Programming Spring 2021
Course Description
Python is a general-purpose programming language that is used in many application areas, including data science, machine learning/AI, web development, scientific computing, graphical user interfaces, systems programming, gaming, rapid prototyping, and more. This course provides a thorough overview of the Python 3 language with an emphasis on writing idiomatic code in Python and object-oriented design patterns and is suitable for students with some prior programming experience. We will develop an understanding of the core features of the languages and gain exposure to commonly used standard-library and third-party modules.
The following information below about the course is subject to change.
Course Staff
Instructors
Lorena Mesa
Pronouns: she/her
Email: lorenanicole@uchicago.edu but please contact on Ed Discussion
Office: Remote for the Quarter
Office hours: Wednesday from 5:30pm - 7:30pm CT. Please sign up on Ed Discussion.
TA
Christopher Ward
Pronouns: he/him
Email: cdward@uchicago.edu but please contact on Ed Discussion
Office hours: Saturday from 2:30pm - 4:30pm CT
Graders
Jason Edelstein
Discuss through Ed Stem
Course Information
Lectures |
Online videos will be posted on Thursday evenings |
Discussions |
Monday 5:30pm ~ 7:30pm, (Zoom meetings), see Canvas Calendar for Zoom meetings. |
Communication |
All forms of communication such as important class announcements, general discussion, course material,
etc. will be done on Ed Discussion.
As our content is done remotely for Spring 2021 quarte, it is crucial that you regulary check
Ed Discussion. You are required to check it at least twice a day! Ed Discussion is also the best place to get help
quickly.
Christopher and I will monitor Ed Disuycssion as frequently as possible and aspire to answer within 24 hours.
Students
are encouraged to help their peers on Ed Discussion by contributing when it is convenient.
|
Textbook |
While there are no required textbooks for this course, the following books may be useful for reference:
- Learning Python, by Mark Lutz (Main text)
- Think Python: How to Think Like a Computer Scientist , by Allen B. Downey
- The Hitchhikers Guide to Python, by Kenneth Reitz & Tanya Schlusser
- Fluent Python, by Luciano Ramalho
- Python Cookbook: Recipes for Mastering Python 3
- Python Essential Reference, by David Beazley
|
Course Software |
Python 3.8: We'll be using Use the Python installation provided in the CS department's virtual environment which can also can be accessed via SSH at linux.cs.uchicago.edu).
Git: http://git-scm.com/downloads/
Interactive Developer Environment: Visual Studio Code (suggestion, not required): https://code.visualstudio.com
Alternatively, another Interactive Developer Environment: PyCharm (suggestion, not required): https://www.jetbrains.com/pycharm/
|
Getting Help |
The Canvas website has office hours posted with the Zoom link for the instructor and TA. You should sign up in advance on Ed Dicussion if you are seeking,
more detailed hands on help. Please note, that the instructor and TA will within reason assist on tech problems but we are advising for this class students
use the CS department's provided virtual environment (or can be accessed via SSH at linux.cs.uchicago.edu).
The pace of this course is rapid,
so use office hours with the instructor and TA as well as engage with questions on Ed Discussion if you feel you're falling behind or need help.
|
Course Content
Topics that will be explored in the course will include (but not limited to) the following:
- Recap of Python Basics
- Metaprogramming
- Developer Tools & Testing
- Working with databases
- Networking Programming
- Multiprogramming
- Serializing Data
- Python and the Web
- Python for Data Analysis
- CPython Internals & Type Hinting (time permitting)
A detailed description of when each topic will be discussed is on the course schedule page.
Course Content Distribution (Spring 2021)
Following the
University's remote learning plans, the course lectures will be provided in two ways:
Coursework
The course will include weekly homework and a final project.
The weekly homework will contain practice programming problems to help enforce the concepts learned via the
course content sessions. Please look at the homework page to
check the assigned and due dates for each assignments.
Late submissions
All students may use up to two 24-hour extensions for the programming assignments during the quarter. These
extensions are all-or-nothing: you cannot use a portion of an extension and have the rest “carry over” to
another extension. To use an extension, the student must fill out the extension request for a homework
here before the assignment is due. For each 24 hours
after the homework is due and an extension is requested, a full letter grade will be docked from the assignment.
If extraordinary circumstances (illness, family emergency, etc.) prevent a student from
meeting a deadline, the student must inform their instructor before the deadline.
Please note that having a heavy workload in a given week does not qualify as an extraordinary circumstance.
The purpose of the two extensions is precisely to give you some flexibility in weeks when you are busier
than usual.
Regrades
We sometimes make mistakes, and are happy to review any grading decision that you feel is unfair or
unjustified. However, it is also your responsibility to make these requests in a timely manner. Requests for
regrades must be submitted
no later than one week after a graded piece of work is returned to you by filling
out the regrade form
here.
After that time, we will not consider any requests for regrades, regardless of whether the regrade request is reasonable
and justified.
Process of Submitting a Regrade Request
- Fill out the regrade form here.
- Make sure to submit within 1 week of graded assignment being returned to you
- To check on the status of a regrade, you can open a private thread for the instructors on Ed Discussion
Please note that there is no timeline for processing regrade requests. However, your regrade request will be
handled before the end of the quarter.
NOTE : The assigned and due dates for homework and projects are subject to change with notice.
Grade Evaluation
The final grade is determined as follows:
|
Weight |
Homework |
75% |
Final Project |
25% |
Grading Scale
Grades are not curved in this class. The following is set of grading boundaries for this course:
- 95-100: A
- 90-94: A-
- 85-89: B+
- 80-84: B
- 75-79: B-
- 70-74: C+
-
<70: Dealt on a case-by-case basis
Policies
Academic Honesty
You must adhere to The University of Chicago and the Masters Program in Computer Science policy on academic
honesty:
The universitys' and programs' rules have the final say in all cases, but the following rules of thumb
summarize
honesty as it
pertains to this course:
- Do not copy anyone's work.
- Do not allow your work to be copied by anyone.
- Do not submit work identical to another student's.
- Document all collaboration.
- Credit your sources.
To expand on the second rule, sharing completed or partially completed work in advance of its deadline in
any way, including posting to the Internet, is expressly forbidden.
We take academic honestly seriously and dishonest behavior will result in serious consequences.
Zoom guidelines
We will be using Zoom in this class. We expect your interactions via Zoom to be consistent with an in-person
class experience. Respect the people you’re working with. Enter the Zoom meetings muted if possible
(unfortunately, it will not be possible if you’re calling in), and unmute to speak. Raise your hand if you’d
like to speak. [There’s a “Raise Hand” button on the participant page.] If your background is unusually noisy,
use the chat channel instead of unmuting. We strongly encourage you to have your camera on during our Zoom
sessions, but we’ll understand if some of you prefer to keep your video off.
Note that you can set your name in your Zoom profile, so you don’t have to go with whatever was assigned. We
encourage you to include your pronouns in your name (if so, please include them after your last name).
Our Zoom class meetings will be recorded and saved to the cloud to allow students in this class to review the
discussion, and especially to allow students who can’t participate the opportunity to benefit from class. We
will not make these recordings available to anyone but class participants, we will not make them available after
the quarter, and students will not be allowed to save copies. However, we have no way to guarantee that students
will follow this policy. If you have FERPA concerns, please mask yourself accordingly, e.g., by turning off
video and using an alias.
Diversity statement
The University of Chicago is committed to diversity and rigorous inquiry that arises from multiple perspectives.
We concur with that commitment and also believe that we have the highest quality interactions and can creatively
solve more problems when we recognize and share our diversity. We thus expect to maintain a productive learning
environment based upon open communication, mutual respect, and non-discrimination. We view the diversity that
students bring to this class as a resource, strength and benefit. It is our intent to present materials and
activities that are respectful of diversity: gender, sexuality, disability, socioeconomic status, ethnicity, race,
religious background, and immigration status. Any suggestions as to how to further such a positive and open
environment in the class will be appreciated and given serious consideration.
If you have a preferred name different from what appears on the class roster, or preferred gender pronouns you
would like us to use, please let us know.
Accessibility
The University of Chicago is committed to ensuring equitable access to our academic programs and services.
Students with disabilities who have been approved for the use of academic accommodations by
Student Disability Services (SDS) and need a reasonable
accommodation(s) to participate fully in this course should follow the procedures established by SDS for using
accommodations. Timely notifications are required in order to ensure that your accommodations can be implemented.
Please meet with me to discuss your access needs in this class after you have completed the SDS procedures for
requesting accommodations.
Phone: (773) 702-6000
Email: disabilities@uchicago.edu
COVID-19 Policies
UChicago Health Pact
All students on campus are required to adhere to the guidelines in the UChicago Health Pact in order to promote a
safe environment in the classroom.
- Secure face coverings must be worn appropriately at all times at all times while in University buildings
- Maintain a distance of 6 feet from others
- Do not attend and in-person class if you feel unwell or are experiencing COVID-19
related symptoms
The complete text of the UChic
Reporting COVID-19 Related Concerns
Any concerns over inappropriate PPE usage, physical distancing, cleaning/disinfection, or other COVID-19 related
public health concerns should be directed to
UCAIR. If there is an
emergency, call 773-702-8181 or dial 123 on any campus phone.
Reporting COVID-19 Exposure or a Confirmed Case
If you were potentially exposed to COVID-19 or your COVID-19 test results come back positive, reach out
immediately to C19HealthReport@uchicago.edu.
Recording and Deletion Policies for Academic Year 2020-1
The Recording and Deletion Policies for the current academic year can be found in the Student Manual under
Petitions, Audio & Video Recording on Campus.
- Do not record, share, or disseminate any course sessions, videos, transcripts, audio, or chats.
- Do not share links for the course to those not currently enrolled.
- Any Zoom cloud recordings will be automatically deleted 90 days after the
completion of the recording.
Attendance
Students who have been exposed to or who are experiencing symptoms of COVID-19 should contact
UChicago Student Wellness immediately to be tested, and reach out to
their area Dean of Students to request accommodations for classes until:
- At least 10 days have passed since symptoms first appeared and;
- At least 3 days (72 hours) have passed since recovery- defined as resolution of fever without the use of
fever-reducing medications and improvement in respiratory symptoms (e.g., cough, shortness of breath).
Credits
Big thanks to the oiginal author
J. Alex Halderman, for allowing me to adapt his
web site design for this course as well as Lamont Samuels.