Lecture 1

Introduction

MCS 275 Spring 2021
David Dumas

Lecture 1: Introduction

Course bulletins:

  • Check the Getting started section of the course web page. (There is a backup site if Blackboard fails!)
  • 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. It's boring but important, like most lists of rules.

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

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 probably be called "Intro to Computer Science II".

The course consists of:

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

Zoom

  • Every course meeting is held in Zoom.
  • Check Zoom links on the web page for all the meeting links.
  • Please keep your video on, as it helps everyone. (Not a rule, but a request.)
  • Virtual backgrounds are welcome.

Course Staff

  • Instructor: David Dumas <ddumas@uic.edu>
    • Leads MWF lectures
    • Office hours: MWF 1:00pm-1:50pm
  • TA: Jennifer Vaccaro <jvacca4@uic.edu>
    • Leads Tue and Thu discussions
    • Office hours: TBA

All course staff are involved in grading your work.

Course Meetings

Everyone should be enrolled in:
  • MWF lectures 12:00-12:50pm (CRN 44167)
  • Exactly one of the weekly discussion meetings:
    • Tue 1:00-2:50pm (CRN 44168), OR
    • Thu 1:00-2:50pm (CRN 44169)

Lectures

  • Mostly presentation of new material.
  • Some slide presentations.
  • As much live coding as possible.

Discussion

  • Mostly students working on the weekly worksheet with TA support.
  • Come to discussion ready to work: Join from a computer where you can create and run code and share your screen.
  • TA assigns each student a score of 0 or 1 for participation in each discussion.

Office hours

You don't need to inform anyone in advance if you plan to come to office hours. Just show up.

Please come with a question ready (and prepared to share screen and show us code, if applicable)

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

Email questions

Email questions are welcome. I do my best to answer within 24 hours, often much sooner. Over weekends, my response will be slower.

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

Types of course work

  • Worksheets: Weekly. Discussion focuses on it. Not collected or graded. The most important part of MCS 275. Collaboration encouraged.
  • Quizzes: Weekly, usually posted at Noon on Monday and due at Noon on Tuesday. Closed book. No collaboration.
  • Projects: Bigger coding assignments. Due on Feb 5, Feb 26, Mar 19, and Apr 23. Open book (but only the course texts, slides, videos). No collaboration.

Gradescope

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.

Grading

  • 45% quizzes (drop two lowest)
  • 45% projects
  • 10% discussion participation

We 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

You can ask to be excused from one quiz in each calendar month. Ask the TA before the deadline. Give no reason. Always granted.

If you need to miss a week of discussion, you can ask to be excused from it. Ask the TA before the meeting. Explain the reason. Granted if infrequent.

Anything else (e.g. asking for an extension, or if a deadline has already passed): Email the instructor. Explain the request and the reason.

Platform

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

You need access to such a computer with:

  • Python 3, version 3.6 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 discussion meeting.

Textbooks

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

There are two optional textbooks you can access online, for free, and which are strongly recommended:

  • Learning Python, 5th Edition, by Mark Lutz
  • Python Cookbook, 3rd Edition, by David Beazley and Brian K. Jones

The course web page has info about how to access these books.

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 discussion, but it would be nice to take a look even before then.

Schedule

The course is broken into units (collections of related 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.

Collaboration and resources

Please collaborate on the worksheets, inside and outside of discussion.

But everying you submit for a grade in MCS 275 must be done individually, and must be your own work. There are no exceptions.

Every assignment will indicate the resources you are allowed to consult, if any, while working on it.

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 easy to detect. We use automated tools as well as manual review. We know about the common methods, evasion tactics, and online services. Don't risk the harsh penalties and long-term consequences.

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:

https://dumas.io/teaching/2020/fall/mcs260/

(Some of these materials were developed by our excellent TAs from MCS 260 in Fall 2020: Jennifer Vaccaro and Kylash Viswanathan.)

Prerequisite expectations

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

CS 107/109/111 are also slightly different.

If you took MCS 260 with me, you'll have seen some of the topics from this semester before. That may be the case for others, too.

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

Discord

I'm going to make a course discord server to provide another way to stay in touch with one another.

Discord is a group text message platform, similar to Slack and GroupMe.

I'll post more info on this shortly.

References

  • 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

Every time I edit the slides after their initial public posting, a note is added here.

  • 2021-01-08 Initial publication