SI 506 is designed for graduate students with little or no programming experience. SI 506 together with SI 507 constitutes an introductory course series that focuses on programming fundamentals. As a foundational course SI 506 serves as a prerequisite for SI 507 along with other more advanced MSI/MHI courses.
Again, no one who enrolls in this course is expected to have any prior programming experience. The programming language of instruction is Python 3.x, a general-purpose, object-oriented, dynamically typed, interpreted language popular among developers and data scientists.
Leverage Python at the introductory level to
- analyze computing problems thoughtfully
- solve computing challenges skillfully
- debug runtime errors quickly
- process data efficiently
- prepare for SI 507
Key topics covered in this course include:
- Python installation
- source code editor and Bash shell use
- Python Interpreter
- syntax and semantics
- values and variables,
- expressions and statements
- strings, lists, dictionaries, and tuples
- sequence indexing and slicing
- operators, conditional statements, and truth-value tests
- for loops, while loops, and control statements
- functions: user-defined functions, built-in functions, and type methods
- nested data structures
- module imports
- errors, exceptions, and exception handling (try/except)
- debugging
- file read/write (text, CSV, JSON)
- classes
- interacting with a REST API
- data processing
The SI 506 teaching team consists of the following members:
Anthony Whyte | arwhyte@umich.edu
Roumanis Square, 2nd floor ("the loft")
715 N. University Ave, Ann Arbor, MI 48109
Pronoun preference: he/him/his
Team Member | role | pronouns | |
---|---|---|---|
Morgan Durow | GSI | mdurow@umich.edu | she/her/hers |
Andrew Vande Guchte | GSI | avandegu@umich.edu | he/him/his |
Yangtao 'Max' Zhang | GSI | maxzhang@umich.edu | he/him/his |
Thomas Krouse | IA | tkrouse@umich.edu | |
Shrijesh Siwakoti | IA | shrijesh@umich.edu |
Section | Day | Time | Area | Building | Room |
---|---|---|---|---|---|
SI 506-001 / 506-101 | Tuesday | 10:00-11:30* AM | Central Campus | Dental Building (DENT) | G390 |
SI 506-001 / 506-101 | Thursday | 10:00-11:30* PM | Central Campus | Dental Building (DENT) | G390 |
*Note: Lectures commence at 10:00 AM and will end 10 minutes prior to the official end time.
Please attend the lab section to which you have been assigned. We recognize that a schedule conflict may occasionally arise due to personal or professional issues; in such cases you may attend another lab. But avoid making this a habit; all lab rosters are full. If you need to switch sections, please contact the UMSI registrar at umsi.registrar@umich.edu.
Section | Day | Time | Area | Building | Room | GSI |
---|---|---|---|---|---|---|
SI 506-002/506-102 | Tuesday | 4:00-5:30* PM | Central Campus | North Quad (NQ) | 2185 | Morgan Durow |
SI 506-003/506-103 | Tuesday | 5:30-7:00* PM | Central Campus | North Quad (NQ) | 2185 | Morgan Durow |
SI 506-004/506-104 | Tuesday | 4:00-5:30* PM | Central Campus | North Quad (NQ) | 2245 | Andrew Vande Guchte |
SI 506-005/506-105 | Tuesday | 5:30-7:00* PM | Central Campus | North Quad (NQ) | 1265 | Yangtao 'Max' Zhang |
SI 506-006/506-106 | Wednesday | 4:00-5:30* PM | Central Campus | North Quad (NQ) | 1255 | Yangtao 'Max' Zhang |
*Note: Labs will end 10 minutes prior to the official end time.
Optional office hour sessions are staffed by 1-2 members of the teaching team. If you have questions, need a code review, or want to hang out with our classmates and members of the teaching team, feel free to attend any of the scheduled sessions that align with your weekly schedule.
Team Member(s) | Day | Time | Area | Building | Room |
---|---|---|---|---|---|
Yangtao 'Max' Zhang | Monday | 9:00 AM-12:00 PM | Central Campus | North Quad (NQ) | 1282 |
Andrew Vande Guchte | Wednesday | 9:00 AM-12:00 PM | Central Campus | North Quad (NQ) | 1286 |
Morgan Durow | Friday | 9:00 AM-12:00 PM | Central Campus | North Quad (NQ) | 1278 |
Anthony Whyte | Thursday | 1:00 - 3:00 PM | Central Campus | UMSI Loft | Rm 201 |
You can also schedule individual appointments with Anthony to discuss personal concerns or other issues as described below in the Communications section.
Event | Date | Day | Disposition | Notes |
---|---|---|---|---|
Lecture | 9 January | Thursday | Scheduled | First lecture. |
Labs, Office Hours | 8-10 January | Thursday | Cancelled | No labs or office hours scheduled. |
Midterm exam | 27 February | Thursday | Scheduled | In-class, open book, open network. |
Lecture | 3 March | Tuesday | Cancelled | Vacation (2-6 March) |
Lecture | 5 March | Thursday | Cancelled | Vacation (2-6 March) |
Labs, Office Hours | 2-6 March | Monday - Friday | Cancelled | Vacation (2-6 March) |
Lecture, Labs | 21 April | Tuesday | Scheduled | Last lecture. |
Final assignment released | 14 April | Tuesday | Scheduled | Final assignment made available. |
Final assignment due | 30 April | Thursday | Scheduled | Online submission. Due no later than 30 April, 11:59 PM Eastern. |
We use the Piazza Q&A platform to "crowd source" responses to programming questions and other issues of general concern. Contributions are not required but are encouraged.
If you have a question that pops up outside the lecture, lab, or office hours, post it on the Piazza Q&A platform. You can access Piazza via Canvas (you can also log in through Piazza directly after you have enrolled in our 'Piazza class' by clicking a link in an email or doing so on the Canvas site).
❗ Avoid emailing your GSI or instructor directly with a programming question. Broadcast it on Piazza so that your classmates can participate in helping resolve your issue.
General announcements and reminders will be posted to Canvas using the Announcements tool.
If a personal concern or private matter requires communications with the instructor only, never hesitate to talk to Anthony directly or email him at arwhyte@umich.edu.
Feel free to also contact the UMSI Office of Student Affairs (OASA) if an issue arises that poses a challenge to your academic success. UMSI students can reach the OASA support team at the following email addresses:
- MSI students: umsi.advising.msi@umich.edu
- MHI students: umsi.advising.mhi@umich.edu
OASA is especially useful if an emergency requires you to step away from your coursework. OASA can help reach out to all your instructors in order to make them aware of your situation. OASA is also an excellent resource if you have questions about enrollment, retention, graduation, and career success. You can also contact OASA whenever you require academic or personal advising while in the program.
SI 506 will feature weekly readings, problem sets, and lab activities. The weekly rhythm of assignments will help establish a regular, repeated pattern of learning in small "chunks".
Assignment due dates will be posted on Canvas. Canvas is the source of truth for due dates and scores.
Readings are a key component of this course. The readings complement and amplify each lecture and lab. Readings should be completed before you attempt any of the accompanying problem set assignments. There is nothing to submit after completing a reading, but be prepared to budget time to engage with the content thoughtfully.
Many of the texts will be sourced from O'Reilly, a prodigious publisher of computing monographs, videos, tutorials, and related content. O'Reilly provides an online platform for accessing its content that you can access free of charge as a U-M student. See the U-M Library instructions for creating an account or visit https://www.safaribooksonline.com/library/view/temporary-access/ and log in with your U-M email address (account confirmation required).
Problem sets comprising one or more programming problems to be solved using Python will be assigned weekly. Each programming assignment provides an opportunity to write code, solve programming problems, and demonstrate your increasing fluency in the language.
You can earn up to 100 points per problem set completed and submitted. Submissions are scored using an auto grader, itself written in Python. Problem set assignments will be released on Tuesday and must be completed and submitted no later than the following Monday evening at 11:59 PM Eastern time. No problem set scores will be dropped. Instead, there are extra credit points to be earned via lab exercises.
GSI-led labs are designed to both reinforce and explore further programming concepts and topics discussed during the lectures. Labs require active participation to be effective. Discussion, Q&A, and problem-solving activities will predominate.
Weekly labs will feature an exercise worth 20 points of extra credit. The points are earned by submitting code or a related deliverable. Lab exercises will be released on Tuesday and must be completed and submitted no later than the following Monday evening at 11:59 PM Eastern time. A maximum of 220 extra credit points can be earned across the semester.
An in-class, "open book, open network" midterm exam will be held on Thursday, 27 February, 2020. The midterm exam is worth 1000 points. More details regarding the midterm exam will be provided in class.
❗ If the Services for Students with Disabilities (SSD) office has issued you a test-related accommodation please inform Anthony at least two weeks before the midterm date.
The weekly problem sets are designed to prepare you for submitting a final assignment that will involve writing a Python program designed to combine, filter, and clean data sourced from multiple data sets. The final project is worth 1500 points. The final assignment will be released on Tuesday, 14 April and will be due no later than Thursday, 30 April, 11:59 PM Eastern.
Problems sets will be scored using a Python auto grader. Other assignments may use auto graders and/or be scored manually. Instructions on how to submit assignments will be provided. Scores will be posted on Canvas.
Week(s) | Assignment | Points | Weight | Running Total |
---|---|---|---|---|
03 | Problem set 01 | 100 | .025 | 100 |
04 | Problem set 02 | 100 | .025 | 200 |
05 | Problem set 03 | 100 | .025 | 300 |
06 | Problem set 04 | 100 | .025 | 400 |
07 | Problem set 05 | 100 | .025 | 500 |
08 | Midterm Exam | 1000 | .25 | 1500 |
10 | Problem set 06 | 150 | .0375 | 1650 |
11 | Problem set 07 | 150 | .0375 | 1800 |
12 | Problem set 08 | 200 | .05 | 2000 |
13 | Problem set 09 | 200 | .05 | 2200 |
14 | Problem set 10 | 300 | .075 | 2500 |
15-18 | Final Assignment | 1500 | .375 | 4000 |
Week | Assignment | Points | Running Total |
---|---|---|---|
02 | Lab 01 | 20 | 20 |
03 | Lab 02 | 20 | 40 |
04 | Lab 03 | 20 | 60 |
05 | Lab 04 | 20 | 80 |
06 | Lab 05 | 20 | 100 |
07 | Lab 06 | 20 | 120 |
10 | Lab 07 | 20 | 140 |
11 | Lab 08 | 20 | 160 |
12 | Lab 09 | 20 | 180 |
13 | Lab 10 | 20 | 200 |
14 | Lab 11 | 20 | 220 |
If you have a concern about a score on any assignment, believe that we've missed something and want us to check, or desire a score explanation or re-grade, please contact your GSI. If warranted your concern will be escalated to Anthony.
Late assignments will be penalized 10% of the total points to be earned each day the submission is overdue. An assignment that is submitted > three (3) calendar days after the due date will receive a score of zero (0).
Total points earned in the course will translate to the following letter grades:
Grade | Points | Percentage |
---|---|---|
A+ | 3880 | 97% |
A | 3720 | 93% |
A- | 3600 | 90% |
B+ | 3480 | 87% |
B | 3360 | 84% |
B- | 3240 | 81% |
C+ | 3120 | 78% |
C | 3000 | 75% |
C- | 2880 | 72% |
D+ | 2760 | 69% |
D | 2640 | 66% |
D- | 2520 | 63% |
E | <= 2519 |
❗ Total points earned that fall between any of the points/letter grade thresholds listed above will result in the lower of the two letter grades being awarded. Example: 3700 points earned translates to an A- not an A.
UMSI strongly encourages collaboration while working on some assignments, such as homework problems and interpreting reading assignments as a general practice. Active learning is effective. Collaboration with other students in the course will be especially valuable in summarizing the reading materials and picking out the key concepts. You must, however, write your homework submission on your own, in your own words, before turning it in. If you worked with someone on the homework before writing it, you must list any and all collaborators on your written submission.
If you are a more advanced student and are willing to help other students, please feel free to do so. Just remember that your goal is to help teach the material to the student receiving the help and not do their work for them.
For example, when working on SI 506 problem sets, add a comment in your Python code when citing a fellow classmate's assistance. Reference each student collaborator using their uniqname:
# Worked on lines 10-15 with nantin and ssciolla.
Each course and each instructor may place restrictions on collaboration for any or all assignments. Read the instructions careful and request clarification about collaboration when in doubt. Collaboration is almost always forbidden for take-home and in class exams.
All submitted work must be your own original work unless otherwise specified in a specific assignment. Asking someone to contribute to or complete your work or copying work of another student is a form of academic misconduct (cheating). The use of ideas or expressions from others without attribution is another form of academic misconduct (plagiarism). Any violation of the School’s policy on Academic and Professional Integrity (found in the student handbooks) will result in serious penalties. These range from failing an assignment, to failing a course, to being expelled from the program. Violations of academic and professional integrity will be reported to the UMSI academic integrity officer. Consequences impacting assignment or course grades are determined by the faculty instructor; additional sanctions may be imposed by the Senior Associate Dean for Academic Affairs.
If you think you need an accommodation for a disability, please inform Anthony at your earliest convenience. Some aspects of this course, including the assignments, in-class activities, and the way the course is usually taught may be modified to facilitate your participation and progress. As soon as you make Anthony aware of your needs, he can work with the Services for Students with Disabilities (SSD) office to help determine appropriate academic accommodations. The SSD office (734-763-3000) http://ssd.umich.edu typically recommends accommodations through a Verified Individualized Services and Accommodations (VISA) form. Any information you provide is private and confidential and will be treated as such.
The Office of the Provost maintains a list of religious holidays that may pose a conflict with the 2010-2020 academic calendar.
Although the University of Michigan, as an institution, does not observe religious holidays, it has long been the University's policy that every reasonable effort should be made to help students avoid negative academic consequences when their religious obligations conflict with academic requirements. Absence from classes or examinations for religious reasons does not relieve students from responsibility for any part of the course work required during the period of absence. Students who expect to miss classes, examinations, or other assignments as a consequence of their religious observance shall be provided with a reasonable alternative opportunity to complete such academic responsibilities. It is the obligation of students to provide faculty with reasonable notice of the dates of religious holidays on which they will be absent. Such notice must be given by the drop/add deadline of the given term. Students who are absent on days of examinations or class assignments shall be offered an opportunity to make up the work, without penalty, unless it can be demonstrated that a make-up opportunity would interfere unreasonably with the delivery of the course. Should disagreement arise over any aspect of this policy, the parties involved should contact the Department Chair, the Dean of the School, or the Ombudsperson. Final appeals will be resolved by the Provost.
The University of Michigan is committed to advancing the mental health and well-being of its students, while acknowledging that a variety of issues, such as strained relationships, increased anxiety, alcohol/drug problems, and depression, directly impacts students’ academic performance. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. For help, contact Counseling and Psychological Services (CAPS) at (734) 764-8312 and https://caps.umich.edu/ during and after hours, on weekends and holidays or through its counselors physically located in schools on both North and Central Campus. You may also consult University Health Service (UHS) at (732) 764-8320 and https://www.uhs.umich.edu/mentalhealthsvcs, or for alcohol or drug concerns, see www.uhs.umich.edu/aodresources. For a more comprehensive listing of the broad range of mental health services available on campus, please visit: http://umich.edu/~mhealth/.
This work is licensed under a Creative Commons Attribution 4.0 International License.