Lecture 1


MCS 275 Spring 2022
David Dumas

Lecture 1: Introduction

Course bulletins:

  • Check the Getting started section of the web page.
  • Read the syllabus completely (under Syllabus and Policies on the web page)

Plan for Today

  • Introduction to the course
  • Overview of policies

Everything I'm about to tell you is in the syllabus*.

I'll present a summary. The syllabus is the full, official policy document and you must read it. I hope that reading it is the most boring thing you do in MCS 275.

Note for students in my Fall MCS 260: This course has some different policies.

* For a version of the syllabus with zoom links, see the course web page.

Course topic

The course title is "Programming tools and file management". This is not a very descriptive title.

MCS 275 is a direct sequel to MCS 260 and should be called "Intro to Computer Science II".

The course consists of:

  • Deeper study of Python programming
  • Intro topics in algorithms and data structures

Delivery method


First two weeks: Everything is online

After that: Planned to be in person (but we'll see!)


  • It's hard to lecture to empty rectangles.
  • Virtual backgrounds are welcome.
  • Must do one of these (for attendance records):
    • Log in to zoom with netid@uic.edu account
    • Make your zoom name equal to your full name as in Blackboard


I encourage you to add your pronouns to your zoom profile (uic.zoom.us/profile → Edit → Pronouns)

Mine are he/him/his

Course Staff

  • Instructor: David Dumas <ddumas@uic.edu>
    • Leads lectures
    • Office hours: MWF 12:00pm-12:50pm (different zoom link, see Blackboard)
  • TA: Johnny Joyce <jjoyce22@uic.edu>
    • Leads Tue and Thu labs
    • Office hours: Tue 11am and Wed 3pm

All course staff are involved in grading your work.

Course Meetings

Everyone should be enrolled in:
  • MWF lectures 1:00-1:50pm (CRN 16583)
  • Exactly one of the weekly discussion meetings:
    • Tue 3:00-4:50pm (CRN 16581), OR
    • Thu 1:00-2:50pm (CRN 26354)


  • Some slide presentations.
  • As much live coding as possible.
  • Attendance is taken every time (drop 5).
  • Recordings posted so you can review.
  • When lecturing in person, I still run a zoom call. Join it if you need to stay home on occasion, but don't do this regularly.


  • Mostly students working on the weekly worksheet with TA support.
  • Come to lab ready to work: Join from a computer where you can develop code and share your screen.
  • Attendance is taken every time (drop 2).


When we go back to in person instruction, we'll take attendance using a smartphone/tablet app called Acadly.

You'll need to install it in advance and bring your phone or tablet to class.

It records distances between students in the room, allowing the required contact tracing without a seating chart. This requires bluetooth.

Office hours

Fixed weekly times. No appointment needed.

If classes are in person, so are office hours. In that case, contact me if you want to ask a question in office hours by zoom so I can log in.

For online office hours, it usually helps if you can share your screen.

You can ask for an appointment if you cannot attend office hours.

How to reach us

Outside of office hours, you can ask questions by email or by posting on Discord.

Course site has the Discord invitation link.

Paste code into message or attach a screenshot for best results.

Types of course work

  • Worksheets: Done in lab. Not collected or graded. Collaboration encouraged.
  • Homework: Weekly, due each Tuesday at Noon. Limited resources you can consult. No collaboration.
  • Projects: Four larger coding assignments. Due on 4 Feb, 25 Feb, 18 Mar, and 29 Apr. Open book (but only the course texts, slides, videos). No collaboration*.

* Except project 4 which will have its own rules.

Monthly homework excuse

In each of these months:

  • February
  • March
  • April

you can be excused from one homework assignment that's due in that month, on request. Email your TA before the homework deadline. No reason needed.

You can't be excused after the homework deadline.


All work that is graded in MCS 275 is collected using Gradescope (an online grading platform).

Access Gradescope from the course web page.

Gradescope allows you to upload any number of files as part of a submission. (Ask for help if needed.)

You can submit an assignment as many times as you like before its deadline and get some immediate feedback.


  • 40% homework (drop two lowest)
  • 40% projects
  • 10% lecture attendance
  • 10% lab attendance

I use a fixed grading scale where A=85% to 100%, B=75% to 84.99999%, C = 65% to 74.99999%, etc (see syllabus), with no rounding.

Late or missed work

Generally no extensions on homework. Use monthly excuse or dropped grades instead.

If you will miss a project deadline: Email me an extension request. Specify a new deadline you request. Explain reason.


Can complete course work using a computer running Windows, MacOS, or Linux.

You need access to such a computer with:

  • Python 3, version 3.8 or later
  • Microsoft Visual Studio Code (a text editor)

Alternative: Virtual Computer Lab

There will be some time to get help installing things during the first lab meeting.


There are no required textbooks and no recommended purchases for MCS 275.

There are some optional textbooks you can access online, for free, including:

See course site for access info.

Individual lectures will cite chapters/sections to read.

Coding standards

Code you submit for a grade must follow some basic style rules that make it easier for humans to read and understand.

These are described in the Coding standards document on the course web page.

You'll read this more closely in this week's lab, but it would be nice to take a look even before then.


The course is broken into units (broad topics), most of which will take about one week of course time.

A list of units is available on the web page.

I'll add detail to this list, including titles for the upcoming lectures, as the semester proceeds.

Academic integrity

You are subject to UIC's Student Disciplinary Policy.

Key point: Plagiarism or giving or receiving assistance on graded assignments in MCS 275 is prohibited.

Cheating is very easy to detect.

We refer all instances of cheating to the Dean of Students for hearings, determination of penalties, etc.

MCS 260 materials

I taught MCS 260 in the Fall and have made all of my sample code, lecture slides, worksheets, quizzes, projects, and solutions publicly available:


(Some of these materials were developed by our excellent TAs from MCS 260 in Fall 2021: Johnny Joyce and Kylash Viswanathan.)

Prerequisite expectations

Not all instances of MCS 260 (or MCS 275) cover exactly the same material.

I aim to teach a course accessible to all students who have completed the prerequisites.


  • For most lectures, I'll list relevant sections of the textbooks on the last slide.
  • In some cases I will link to other useful resources, too.

Revision history

  • 2022-01-10 Initial publication
  • 2022-01-10 Add Joyce office hours
  • 2022-01-11 Fix typo in project 4 deadline