Syllabus

1.0 Instructor

Anthony Whyte

Lecturer IV in Information, UMSI faculty
715 N. University Ave, Ann Arbor, MI 48109 (Roumanis Square, Rm 201H)
arwhyte@umich.edu

2.0 Course Description

SI 506 is designed for graduate students with little or no programming experience. Computational thinking, program design fundamentals, and code readability and maintainability are key themes. 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 UMSI 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 object-oriented, dynamically typed, interpreted language popular among developers and data scientists.

2.1 Course prerequisites

None

2.2 Topics

Python 3.x will serve as the programming language of instruction. Key topics covered in this course include:

  • Local setup
    • Python 3.x installation
    • source code editor installation
    • Python interactive console and Bash shell use
  • Basic syntax and semantics
    • values (objects) and variables
    • data types
    • operators
    • expressions and statements
    • string formatting
  • Data structures (mutable/immutable)
    • sequences
    • associative arrays
    • sequence indexing and slicing
    • nested data structures
    • type methods
    • list and dictionary comprehensions
  • Control flow
    • iteration
    • conditional execution
    • control statements
    • truth value testing
    • ternary operator
  • Functions
    • built-in
    • user-defined
    • lambda
    • main()
  • File read/write
    • module imports (csv, json, os)
    • text, CSV, and JSON file handling
  • Web API
    • requests module installation (via pip) and use
    • HTTP GET request/response
    • JSON payloads
  • Exceptions, exception handling, and debugging
  • Program/script design
    • modules

3.0 Hardware specs

Students should secure hardware (e.g., a laptop) that meets or exceeds the School of Information’s recommended UMSI hardware specifications. If your machines does not meet the recommended specifications please see Anthony at your earliest convenience.

3.0 Communications

We use Slack 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 regular meetings or office hours, post it on Slack.

❗ Avoid emailing your GSI or instructor directly with a programming question. Broadcast it on Slack so that your classmates can participate in helping resolve your issue.

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

3.1 Announcements

General announcements and reminders will be posted to the relevant Slack channel and/or the MCommunity SI 506 course group lists.

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

For UMSI students you can 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.

Additional resources are also available. See section 8.0 Student mental health and well-being below.

4.0 Assignments

SI 506 will feature weekly readings, problem sets, summative assessments (quizzes), and in-class activities. The weekly rhythm of assignments will help establish a regular, repeated pattern of learning in small “chunks”.

4.1 Readings

Readings are a key component of this course. The readings complement and amplify each lecture. 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 and log in with your U-M email address (account confirmation required).

4.2 Problem sets (2100 points)

Problem sets comprising one or more programming problems will be assigned weekly. Each programming assignment provides an opportunity to write code, solve programming problems, and demonstrate your increasing fluency in the language.

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.

4.3 Exams (1900 points)

Three exams will be held during the semester (see the course schedule for exam dates and times). Each exam will feature an in-class summative assessment (quiz). Specific details regarding each exam will be provided in class.

4.4 Last assignment (1000 points)

The weekly problem sets and paper exams are designed to prepare you for submitting a last assignment that will involve writing a Python program designed to combine, filter, and clean data sourced from several data sets and a Web API.

4.5 In-class bonus challenges (extra credit)

The teaching team may offer from time to time optional bonus points via in-class coding challenges or 1-5 question quizzes. These short exercises are designed to assess your understanding of programming concepts, patterns, and practices. A bonus challenge is an occasional pop up or flash classtime activity that can occur at any time between the start and end of class. You must be present in class to participate. If you are absent from class on the day a bonus challenge is offered you will not be permitted to attempt the exercise at a later date (bonus challenge solutions will have already been discussed).

5.0 Course points and grading

Problem sets, the midterm, and the last assignment are scored using a Python auto grader. Instructions on how to submit assignments will be provided. Scores will be posted on Canvas.

If you have a concern about a score on any assignment or desire a score explanation or re-grade, please contact your GSI. If warranted your concern will be escalated to Anthony.

5.1 Course points

Assignment Points Weight Running Total
Problem set 01 75 .015 75
Problem set 02 100 .02 175
Problem set 03 125 .025 300
Problem set 04 150 .03 450
Exam 01 500 .10 950
Problem set 05 200 .04 1150
Problem set 06 225 .045 1375
Problem set 07 250 .05 1625
Exam 02 600 .12 2225
Problem set 08 300 .06 2525
Problem set 09 325 .065 2850
Problem set 10 350 .07 3200
Exam 03 800 .16 4000
Last assignment 1000 .20 5000

5.3 Late policy (problem sets only)

A problem set is considered late if it is submitted after the due date. A late problem set may be submitted for scoring up to two (2) calendar days after the due date. Late problem sets will be penalized 10% of the total points to be earned each day the submission is overdue. No problem set will be accepted for scoring after the late submission window closes.

5.4 Final grade

Total points earned in the course translate to the following letter grades:

Grade Points Percent Additional requirements
A 4650 93% ❗ student must also attempt all challenges comprising the last assignment.
A- 4500 90%
B+ 4350 87%
B 4200 84%
B- 4050 81%
C+ 3900 78%
C 3750 75%
C- 3600 72%
D+ 3450 69%
D 3300 66%
D- 3150 63%
E <= 3149  

❗ A+ grades are not awarded in SI 506.

❗ 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: 4600 points earned translates to an A- not an A.

⚠️ 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.

6.0 Audio and video recordings

6.1 Class Recordings

Audio and video recordings of all lectures will be made to enable those who cannot attend class in person on a given day to access the content. These recordings will not be made available publicly. Recordings of all sessions will be available on Canvas only to students registered for this class. As part of your participation in this course, you may be recorded. If you do not wish to be recorded, please contact the professor during the first week of class to discuss alternative arrangements. The camera only picks up the front of the room (instructor and laptop screen), but this may require you to sit in a particular place in the room, outside the cameras' view. Classrooms may have a ceiling mike that picks up student voices, in addition the instructor’s microphone records audio in the room. Students may not copy and share the lecture videos with those not in the class, or upload them to any other online environment (this is a violation of the Federal Education Rights and Privacy Act (FERPA)).

6.2 Personal recordings prohibited

Students are prohibited from recording/distributing any class activity without written permission from the instructor, except as necessary as part of an approved accommodation for students with disabilities. Approved recordings may only be used for the student’s own private use and must not be shared with others.

7.0 Academic integrity and misconduct

7.1 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. Each course and each instructor may place restrictions on collaboration for any or all assignments. Read the instructions carefully and request clarification about collaboration when in doubt. Collaboration is almost always forbidden for take-home and in class exams.

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.

7.2 Plagiarism

All written submissions must be your own, original work. Original work for narrative questions is not mere paraphrasing of someone else’s completed answer: you must not share written answers with each other at all. At most, you should be working from notes you took while participating in a study session. Largely duplicate copies of the same assignment will receive an equal division of the total point score from the one piece of work.

You may incorporate selected excerpts, statements or phrases from publications by other authors, but they must be clearly marked as quotations and must be attributed. If you build on the ideas of prior authors, you must cite their work. You may obtain copy editing assistance, and you may discuss your ideas with others, but all substantive writing and ideas must be your own, or be explicitly attributed to another. See the (Doctoral, MSI, BSI) student handbooks available on the UMSI intranet for the definition of plagiarism, resources to help you avoid it, and the consequences for intentional or unintentional plagiarism.

7.3 Generative artificial intelligence

Emerging generative artificial intelligence (AI) tools such as ChatGPT, UM-GPT, and Github Copilot can increase productivity and accelerate learning. Using generative AI to complete SI 506 assignments is permitted, unless expressly prohibited by the assignment instructions.

But downsides exist and you must exercise caution when leveraging AI in your work. AI tools are imperfect and can produce content that is inappropriate, offensive, or otherwise problematic. AI tools can produce code that is inelegant, inefficient, insecure, unreliable, unreadable, and/or unmaintainable. Within a classroom context, AI tools can produce code that performs the desired computation but nevertheless fails to meet the requirements of an assignment problem or challenge.

You are responsible for the code you submit. If you are unfamiliar with the syntax, structure, and/or semantics of AI-generated code do not include the code in your assignment solution. If you cannot explain to your instructor the computations that AI-generated code performs do not include the code in your assignment solution. You do yourself no favors by submitting code that you do not understand.

8.0 Student mental health and well-being

Students may experience stressors that can impact both their academic experience and their personal well-being. These may include academic pressure and challenges associated with relationships, mental health, alcohol or other drugs, identities, finances, etc. If you are experiencing concerns, seeking help is a courageous thing to do for yourself and those who care about you. If the source of your stressors is academic, please contact Anthony so that he can find solutions together. For personal concerns, U-M offers the following resources:

9.0 Accommodations

The University of Michigan recognizes disability as an integral part of diversity and is committed to creating an inclusive and equitable educational environment for students with disabilities. Students who are experiencing a disability-related barrier should contact Services for Students with Disabilities (SSD); 734-763-3000 or email ssdoffice@umich.edu. For students who are connected with SSD, accommodation requests can be made in Accommodate. If you have any questions or concerns please contact your SSD Coordinator or visit SSD’s Current Student webpage. SSD considers aspects of the course design, course learning objects and the individual academic and course barriers experienced by the student. Further conversation with SSD, instructors, and the student may be warranted to ensure an accessible course experience. The instructional team will treat any information that you provide in as confidential a manner as possible.

10.0 Religious holidays

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 Office of the Provost maintains a list of religious holidays that may pose a conflict with the academic calendar.