Course Requirements and Grading
|Final Exam||30%||Includes pre-midterm topics|
|Homework Assignments||35%||40-60 points each, 10 total planned|
|Exercises||10%||Pass (10 points) / fail (0), 11 total planned||1 fail exempted|
|Attendance & Participation||5%||100 points||1 missed class exempted. "Missed class" points are made up via participation; see below|
- As a rule, there will always be an assignment due between classes. Two types: homework assignments and programming exercises. They are administered via Canvas and due before the beginning of the next class.
- I will make every effort to post new assignments one week in advance. However, I might need to make some adjustments depending on the progress we make in classroom. Therefore, non-immediate assignments should be considered a DRAFT until it is finalized, which will happen 30 minutes post-class.
- Homework assignments are assigned on most Thursdays. 10 are being planned.
- Exercises usually go out on Tuesdays. 11 are being planned.
- Readings and previews: In addition to the homework/exercise assignments, you will have book chapters and Python tutorials for the upcoming class to study beforehand.
- Detailed assignment schedule is found on the Class Schedule page.
are designed for self-learning and run as an honor system. As long as you keep up with the course contents, you should be able to complete them in 1-2 hours, possibly more if you are new to programming.
Homework assignments comprise questions on lecture topics as well as programming problems. They will require more in-depth work on your part.
- Their Canvas submission portals are configured to accept multiple submissions until the deadline.
- Upon your initial submission, solutions will be revealed. You should study them, and then optionally revise your work (REVISE, don’t copy the key wholesale!) and submit again.
- With each submission, provide self-rating of your work: 10% to 100%. Try and shoot for 50+% for your initial submission, but occasional lower ratings are fine.
- Your last submission will be graded as PASS (10 points) or FAIL (0). Generally speaking, work rated at 80% (as judged by the instructor) is good enough for a pass. Under limited and rare circumstances, I *may* give out 5 partial points.
- Exercises are worth 100 total points and 10% of your grade. Everyone gets "1 FAIL allowance": out of 11 exercises, only top 10 scores will count, meaning 0 or 1 FAIL gets you full 100 points. Full exercise points will also qualify you for a round-up in your final grade calculation.
- No late submission will be accepted for exercises, but note that you get the 1 FAIL allowance.
- Most exercises will have a short turnaround time of just 2 days (out on Tuesday, due on Thursday). Time management is key!
- They are typically assigned on Thursdays. Some have a 5-day turnaround time, some larger ones will be given a full week to complete.
- They come with varying total points: 40 to 60.
- Homework can be submitted late but with the following penalty schedule: 15% for the first late day, and additional 10% for each late day thereafter.
If done properly, working together on assignments lead to a better learning outcome for all parties involved. If done improperly, however, it negatively affects learning AND results in cheating. For your learning benefit, I am allowing group work provided that the following conditions are met:
If you are stuck while coding and need help, posting a question on our MS Teams chat channel is a good idea. But be sure to take care so you don't expose your entire Python script while doing so. See "Getting Help" section below.
- Equal contribution: one student's contribution must not exceed 150% of other's.
- Individual work before a study group: do not show up to a study session without having worked on the assignment on your own beforehand.
- Individual work after a study group: do not write up your homework assignments while working in group, which leads to copying other's answers. Always finish up your answers by yourself afterwards, using your own words.
- Do NOT pass files: do not, under any circumstances, send or receive script files, even if they originated from the homework template. Doesn't matter if you intend to modify them afterwards or write your own: building on someone else's code is cheating.
Using AI and external resources: In completing homework assignments, you may be tempted to lean on external resources, such as StackOverflow and the latest AI sensation ChatGPT. You may use them, but I have some ground rules. You must submit your original work along with the solution you obtained through the resources, and provide commentary on how the new solutions are superior to what you had before and also the code routines we learned in class. The idea is that you should not submit the solutions you looked up without taking extra time to thoroughly understand them, especially because these "found" solutions tend to be more advanced and deviate significantly from the way I teach you to code Python in class. If parts of your submission look out of place, you will be asked to explain your code. If you can't demonstrate knowledge and understanding, you would have violated academic integrity.
But in truth, the best strategy for homework assignment is in fact taking the time to review the code bits and recipes previously covered in class. My homework assignments are always self-contained, designed to rely only on what we have previously learned in class, usually just a class or two before. So: if you're stuck, make sure to go back and review, and you just might discover that the missing piece that's been tripping you up is right on one of my PowerPoint slides.
Attendance & Participation
There is a big hands-on and interactive learning component in this class, therefore regular attendance is assumed. To encourage regular attendance and engagement, "Attendance and Participation" is built into the grading scheme: it starts with 100 full points with 7 points deducted with each missed class, excused or unexcused. Everyone gets 1 missed class allowance with no penalty.
Additionally, students can earn up to 35 points through extra-class participation:
This means: you can earn the full credit simply by attending all classes, but if you need to miss some on occasion (as we all do...) you can stay engaged through these extra-class participation venues and make up for the lost points.
- A meeting with the instructor or the TA: 4 points
- A question posted on the MS Teams forum: 2 points
- A reply to a classmate's question on MS Teams forum: 2 points
Remediation and Justification
Penalties for late work may be waived for documented emergencies.
For planned and justified late work, advance notice must be provided. Valid reasons for an extension include the following:
We are still dealing with lots of COVID-related unpredictability, so I have made some special provisions.
First, on class attendance, we will not distinguish between excused vs. unexcused absences. All absences incur a small hit in the "Attendance and Participation" score, which however is easily made up through extra-class participation, as noted above.
As for late work, I will likely offer a "late work forgiveness (with zero or small penalty)" opportunity later in the semester.
If you are experiencing difficulties at any point in time, including feeling ill, know that your safety and health come first. Please email me as soon as you can.
- A medical emergency (including mental health emergencies): submit a signed letter from a doctor
- A family emergency (death, birth, natural disaster, etc): submit documentation if you can
- A religious observance: advance written notice is required
How to Succeed
- As you can see from the course schedule, this class moves in a rapid pace. It is critical that you attend class regularly and keep up with the course content. Good time and project management skills are essential.
- There is a form of assignment due at every class, and they typically build on what was learned previously. If you miss a class, make sure to review and catch up before the next class. If you show up without catching up, you will be lost.
- When doing assignments, make sure to closely follow the provided instructions. The ability to follow instructions is a critical programming skill! Also, when programming, get in the habit of taking your time to get the details right. It will save you much frustration and confusion downstream: in writing a structured program, a seemingly minor detail that was glossed over in a haste has a way of resurfacing and tripping you.
- Ask for help! See the next section.
There's no worse feeling of frustration than getting stuck on a piece of buggy code. Conversely, finally getting your code to do exactly what you want it to, that's the kind of joy that gets us going! Getting there often requires help, and here's how to get it.
- Ask help early. Approach the instructor or the TA when you first have trouble understanding a concept or homework problem. Please note that certain problems are not easily communicated via email. Let's chat privately on MS Teams or meet in-person/virtually.
- Describe and SHOW. Don't just explain your problem at length in an email/chat. A screenshot of your script and output helps quick diagnosis. Even better if you can annotate!
- Helping classmates on MS Teams. Your fellow classmates are a great source of help, as they have likely encountered your exact problem recently. Also, helping others is a GREAT way to learn. Asking and answering questions on our MS Teams channel therefore is very much encouraged. The key is how to ask Python help without exposing your entire script, which can be accomplished by following a few pointers. I will be posting them on MS Teams, so make sure to keep those in mind.
(Pitt official) Students in this course will be expected to comply with the University of Pittsburgh’s Policy on Academic Integrity. Any student suspected of violating this obligation for any reason during the semester will be required to participate in the procedural process, initiated at the instructor level, as outlined in the University Guidelines on Academic Integrity. This may include, but is not limited to, the confiscation of the examination of any individual suspected of violating University Policy. Furthermore, no student may bring any unauthorized materials to an exam, including dictionaries and programmable calculators. To learn more about Academic Integrity, visit the Academic Integrity Guide for an overview of the topic. For hands- on practice, complete the Understanding and Avoiding Plagiarism tutorial.
Additionally in this class, working together on assignments is allowed strictly under a set of conditions noted above, as is looking up code solutions through external resources such as StackOverflow and ChatGPT. Failing to meet them will amount to a violation of academic integrity and will be handled accordingly.
Disabilities (Pitt Official)
If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services (DRS), 140 William Pitt Union, (412) 648-7890, email@example.com, (412) 228-5347 for P3 ASL users, as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.
Religious Observances (Pitt Official)
The observance of religious holidays (activities observed by a religious group of which a student is a member) and cultural practices are an important reflection of diversity. As your instructor, I am committed to providing equivalent educational opportunities to students of all belief systems. At the beginning of the semester, you should review the course requirements to identify foreseeable conflicts with assignments, exams, or other required attendance. If at all possible, please contact me (your course coordinator/s) within the first two weeks of the first class meeting to allow time for us to discuss and make fair and reasonable adjustments to the schedule and/or tasks.