/SI506-2020Winter

SI 506 course materials (Winter 2020)

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

SI 506: Programming I (2020 Winter)

Prerequisites: None

Course Description

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.

Learning Objectives

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

Topics

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

Teaching Team

The SI 506 teaching team consists of the following members:

Lecturer

Anthony Whyte | arwhyte@umich.edu
Roumanis Square, 2nd floor ("the loft")
715 N. University Ave, Ann Arbor, MI 48109
Pronoun preference: he/him/his

Graduate Student Instructors (GSI) and Instructional Assistants (IA)

Team Member role email 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

Lectures

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 make every effort to attend each lecture. Historically there is a strong correlation between lecture non-attendance and diminished performance on problem sets, the midterm exam, and the final scripting assignment.

Labs

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.

Office Hours

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.

Calendar Highlights: Midterm exam, Final Assignment, and meeting cancellations

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.

Communications

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.

⚠️ Also, please do not post problem set solutions on Piazza.

Announcements

General announcements and reminders will be posted to Canvas using the Announcements tool.

Personal concerns

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:

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.

Assignments

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

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

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.

Labs

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.

In-Class Midterm Exam

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.

Final Assignment

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.

Assignment Scoring

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.

Course Points

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

Extra Credit Points

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

Auto Grader/Scoring issues

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 Policy

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).

Final Grade

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.

⚠️ Recall that SI 506 is a required course for UMSI students. As such, a grade of D+ or less in the course will not count for degree credit and SI 506 will need to be repeated. See the MHI and MSI Student handbook's "Grades and Grading Policy" for a more complete description of letter grades and their interpretation.

Academic Integrity and Misconduct

Collaboration

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.

Plagiarism

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.

Accommodations for Students with Disabilities

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.

Religious holidays

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.

Student Mental Health and Well-being

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/.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.