A document from MCS 275 Spring 2023, instructor David Dumas. You can also get the notebook file.

Basics

  • Course Blackboard site
  • Lectures - three times a week; every student is in one of these sections:
    • MWF 12:00-12:50PM in Lecture Center A002 (CRN 44167)
    • MWF 1:00-1:50PM in Lincoln Hall 312 (CRN 16583)
  • Labs - once a week in Science & Engineering Lab East 2249F; every student is in one of these sections:
    • Tue 1:00-2:50PM (CRN 44168, TA Joyce)
    • Tue 3:00-4:50PM (CRN 16581, TA Viswanathan)
    • Thu 1:00-2:50PM (CRN 44169, TA Joyce)
  • Instructor
  • Teaching assistants

Welcome statement

Welcome to MCS 275. As your instructor, my main goals are to

  • Create a positive and welcoming learning environment
  • Make the course policies clear, so that there are no surprises about deadlines, grading, etc.,
  • Offer effective instruction, activities, and assessments so that you can master the course material

It is essential that you read this course syllabus because it explains the course policies.

Course content and learning goals

This course is a second semester of study in introductory computer science, designed for students who have completed CS 107, CS 109, CS 111, or MCS 260.

Key learning goals of MCS 275 include:

  • Designing, writing, and debugging more complex programs than are seen in the prerequisite courses
  • Understanding some fundamental algorithms and their implementation in Python
  • Writing programs that follow a specification
  • Learning the basics of some popular Python modules that are not in the standard library
  • Learning to manage files in the terminal and to use some terminal-based software development tools

The course is broken into units, most of which are planned to take about a week of class time. A list of units can be found on the course web page. As the semester progresses, a more detailed schedule of the topics for upcoming lectures will be posted.

Prerequisites

Grade of C or better in MATH 180 and grade of C or better in MCS 260; or grade of C or better in CS 107 or CS 109 or CS 111; or equivalent.

If you lack the prerequisites for MCS 275, your registration in the course may be canceled at some point. I do not control this process, and I wish it were more transparent.

How to succeed

As with most endeavors in a place of work or study, success in MCS 275 requires you to do at least three things:

  • Know and follow the rules (as described in this document)
  • Complete the assigned work on time
  • Show up for the meetings

In particular, simply having good Python programming skills by the end of the semester (or even at the beginning) does not ensure success. Everyone in the course must do the work and follow the rules.

Texts

There are no required textbooks. I do not recommend purchasing any textbooks.

There are several optional texts that are available online without any purchase (though some are available only to current UIC students). The lecture slides will often reference sections or chapters of optional texts, and when such references are given, it is a good idea to consult the texts.

See the course site in Blackboard for the list of optional texts with links to access them.

Attendance policy and delivery method

Lectures and labs are held in person in the rooms listed above, and under normal circumstances, attending each course meeting in person is required.

Students should not come to class while sick or while experiencing symptoms of illness. We understand that occasional absences happen for various other reasons as well.

For lectures, we provide two alternative means to view the lecture if you cannot attend in person:

  • Lectures can be live streamed from the Blackboard site using Echo 360, a lecture capture tool that uses cameras built in to our lecture rooms, and
  • Recordings of the lectures will be posted to the Blacboard site (usually later in the same day the lecture occurs)

No permission is needed to attend lecture remotely using the live stream or to view a recording in place of coming to lecture. However, students should not use these alternative means on a regular basis. Delivery of the lectures is optimized for the in-person experience.

The weekly labs are longer meetings focused on students working individually or in small groups on activities that reinforce and expand on the lecture material with the guidance and assistance of one of the course TAs. This important practice is an essential part of the course, and is more difficult to replicate remotely. Labs will not be live streamed or recorded, and students who will miss a lab for any reason should email their TA as soon as possible (ideally in advance).

Recording and grading lab attendance

Attendance will be recorded in each weekly lab meeting, and lab attendance will account for 10% of the final grade. The way this will be done is by assigning a score of 0 (absent) or 1 (present) to you for each lab. At the end of the semester your two lowest lab attendance scores will be dropped, and the remaining scores averaged. Since there are 15 labs in total, this means that as long as you attend at least 13 of them, your lab attendance score will be 100%.

Plans in case of instructor absence

Except in cases of a last-minute emergency that prevents alternate plans from being made, if the instructor cannot give a lecture on campus at the regular time (e.g. due to illness, required quarantine, or other unexpected event), one of these things will happen:

  • The lecture will be run remotely on zoom, using a zoom meeting link posted on the course blackboard site
  • A substitute instructor will give the lecture
  • An asynchronous lecture video will be recorded and posted to the course site

The exact plans will be announced on the course web site, with as much advance notice as possible. Instructor absences are expected to be rare.

Plans in case of TA absence

The lab will be run by a substitute TA or instructor, except in case of a last-minute emergency in which case a lab would be cancelled. TA absences are expected to be rare.

Important dates and deadlines

Fixed dates

Date Weekday Event
Jan 9 Monday First day of class
Jan 16 Monday Martin Luther King, Jr. Day (no class)
Jan 20 Friday Course add/drop deadline
Feb 10 Friday Project 1 due at 6pm Central
Feb 24 Friday Project 2 (mini) due at 6pm Central
March 17 Friday Project 3 due at 6pm Central
March 20-24 Mon-Fri Spring break (no class)
April 28 Friday Project 4 due at 6pm Central
Last day of class
May 9 Tuesday Departmental deadline for course grades to be submitted
May 15 Monday Course grades become available on my.uic.edu

Recurring

  • Homework is due every Tuesday that classes are in session at Noon Central time unless a schedule change is announced.
    • Exception: There is no homework due in the first week of class.
    • Exception: The first homework will be due on Wed Jan 18, one day later than the normal schdeule because of the Mon Jan 16 holiday.

Types of course work

There are three types of work in MCS 275: ungraded worksheets that are the focus of Tue/Thu labs, weekly homework, and four larger programming projects. Details about each type of work are given in the subsequent sections.

Note in particular that there are no midterm exams, no final exam, and no other high-stakes assessments. I have tried to distribute graded work across the semester as evenly as possible. There are also no graded in-class quizzes or tests.

All work that is graded in MCS 275 is collected on Gradescope, an online assignment submission system that you can access from the course Blackboard site.

Worksheets

The main activity of the Tue/Thu labs will be students working individually or in small groups on a worksheet of problems and short coding exercises that reinforce and expand on the previous week's lecture material. The worksheet for each week will be posted to the course site before the lab meeting. If the worksheet is not completed during lab, students are encouraged to complete the remaining problems on their own.

Starting in week 3 of the semester, the first problem on each worksheet will be handled differently depending on which lab you are enrolled in:

  • Tuesday lab students: Problem 1 will be completed in a group discussion led by the TA.
  • Thursday lab students: Attempt problem 1 before lab, and bring your solution or work to present.

Each week's worksheet is designed to prepare you for the homework that is due the following Tuesday.

Worksheet solutions will be posted each week, and students will be allowed to refer to these solutions while working on the week's homework. However, having solutions available should not been seen as a substitute for the practice you get by completing the worksheet yourself.

Worksheet collaboration policy

Collaboration on worksheets is strongly encouraged (inside or outside labs).

Homework

Each week, a homework assignment will be posted in Gradescope on Thursday afternoon. The submission deadline will be indicated on the assignment and can be checked on Gradescope. Usually, the deadline will be the following Tuesday at Noon.

Homework is to be completed individually, outside of class meeting times.

Homework is graded primarily by the TA and reviewed by the instructor.

Completing homework regularly and doing well on the assignments is important, but we understand students face occasional variations in their workload (e.g. midterms, deadlines in other courses, etc.) and other circumstances that interfere with their work on MCS 275. To account for these, we give you several opportunities to miss an assignment without affecting your grade, as described below.

Two no-reason homework excuses

Twice in the semester, you can ask to be excused from an upcoming homework assignment without giving any reason. However, you need to ask before the homework assignment is due. This is meant to help you deal with unexpected changes in workload or available time by simply skipping an assignment. If you use this policy to be excused from a homework assignment, it is expected that you will not submit any work on it at all. And if you do submit work to an assignment you've been excused from, it won't count toward your grade. Being excused from an assignment is a one-way process; once excused, you cannot receive credit for the assignment.

To use one of these excuses on an upcoming assignment, email your TA.

Also, you cannot use this option to be excused from the first homework assignment.

Two lowest grades dropped

At the end of the semester, the two lowest homework grades that haven't been excused will be dropped.

Usually we avoid giving extensions on homework

The two policies listed above (homework excuses and dropping low scores) provide ways to avoid a missed homework deadline affecting your final score. If students ask for an extension on a homework assignment due to some extenuating circumstance, we will usually prefer that they user one of these methods instead of an actual deadline extension. However, the full course policy on missed and late work can be found below,

Homework collaboration policy

Collaboration is not permitted on homework. Each assignment will list what textbooks and online resources students are allowed to consult, if any.

Projects

Four coding projects will be assigned during the semester. These will be substantial projects that students work on over a longer period, writing a program or set of programs to meet given specifications. These specifications, the project descriptions, will be posted to the course web site.

Projects will be submitted using Gradescope. The due dates for the projects are listed in the Important dates and deadlines section above. Once a project is accepting submissions, its deadline can also be seen in Gradescope.

Each student's project submission will be graded in two ways: First, an automated system (the "autograder") will run a series of tests to see whether the submission performs the requested tasks. Students can view the autograder report shortly after submission, and can use the results to revise and resubmit their project (before the deadline).

There is no limit to the number of submissions before the deadline, but only the last submission received before the deadline will count toward the project grade.
Students who make only one submission to the autograder—and who thus do not use its feedback to improve their projects—will often lose many points due to small and easily corrected errors, such as formatting differences or off-by-one mistakes.
Please avoid this by planning to make your first submission to the autograder well before the deadline.

The results of the autograder will account for most of the points available for projects 1 and 3; the exact fraction may vary from project to project. Project 2 will be somewhat smaller due to the shorter time available to work on it, and the use of the autograder will be correspondingly limited.

A manual code review by the instructor will look for adherence to the course coding requirements, sufficient comments, etc., as requested in the project description. Some feedback will be given at this stage to help students improve their performance on future projects.

No low project scores are dropped

All four projects count toward a student's final grade.

Project collaboration policy

For projects 1, 2, and 3, students may consult the course texts and the lecture slides or videos when working on projects. However, each student must be the sole author of the code they submit for a project; copying code from online resources or from other students is not permitted, nor is seeking assistance on projects from anyone other than course staff.

Project 4 will be more open-ended and allow more possibilities for collaboration and use of external resources. Those policies will be included in the project 4 description.

Project deadlines are important

The project deadlines are important: Unless an extension is granted (see course policy on missed and late work), a project submitted after the deadline will receive no credit. If you know you will miss a project deadline, ask for an extension and indicate the new deadline you are requesting.

Coding standards

Code submitted for a grade in MCS 275 must follow some basic formatting rules in order to be eligible for full credit. These rules are collected in a coding standards document which is also available on the course web page.

The rules encourage good coding practices and make programs more readable.

Policy on missed or late work

In general, meeting the deadlines for course work is important, and extensions will be considered only when there are extenuating circumstances.

Students who believe they are likely to miss a project deadline are encouraged to contact the instructor and explain the situation. When requesting an extension, it is always helpful to specify a specific new deadline you would be able to meet. Requests for "as much additional time as possible" are difficult to evaluate.

Students who add the course after the first meeting should contact the instructor to develop a plan for the work they have missed (e.g. extension or excuse from missed assignments and attendance scores).

As mentioned in the section about homework, we prefer to handle missed homework deadlines through the mechanisms that allow you to be excused from an assignment, or to have its score dropped as one of your two lowest. With the weekly pace of homework, an extension on homework also carries a serious risk of putting you behind on the next assignment with cascading negative effects. For these reasons, we rarely grant extensions on homework deadlines.

Academic honesty

Everything you submit for a grade in this course must be entirely your own work. You are also not allowed to give or receive assistance on graded work in MCS 275, except for assistance given by course staff or which is explicitly allowed by the assignment instructions.

Here are some examples of activities that violate the rules in MCS 275 and hence constitute academic misconduct. Keep in mind this list is not exhaustive.

  • Sending your code for a homework question or project to another student

to submit as their own, or to use as a reference as they work on the assignment

  • Searching the internet for answers to a homework question or for help with a project
  • Asking for help solving homework problems or part of a project in an online forum or commercial service
  • Asking an instructor or TA in another course a question for the purpose of using their answer as a solution to a homework problem or as part of a project in MCS 275

It is usually very easy to detect instances of cheating and plagiarism, often without any special tools. However, in MCS 275, we also use automated tools to detect cheating. We can easily tell if two pieces of code differ by changing variable names, adding and removing comments and indentation, and other common superficial evasion techniques. If you are ever tempted to cheat, please do not take the risk! Instead, contact the course staff and discuss what you are struggling with. Extension requests are always given serious consideration while instances of cheating are never tolerated.

Incidents of academic misconduct will be reported to the Dean of Students office and handled under UIC's Student Disciplinary Policy for investigation, hearings, and possible sanctions. No warning will be given in advance. The penalties for academic misconduct are typically quite severe, and the disciplinary proceedings are very slow. A course grade will not be assigned while such proceedings are underway, and this can create its own problems (e.g. with registering for courses having MCS 275 as a prerequisite, etc.).

Many students find it helpful to do course work in a team or study group. Please do this, but only for the elements of the course where collaboration is allowed.

Course grade computation

Things that contribute to your grade

The course grade is computed as an average of homework, projects, and attendance scores, weighted as follows:

  • 45% - Homework
    • Any assignments you were excused from are removed from consideration
    • Then, the two lowest scores that remain are removed
    • The remaining scores are converted to percentages, and those are averaged
  • 45% - Projects
    • All project grades are converted to percentages
    • The percentages are averaged
  • 10% - Lab attendance
    • We make a list of lab attendance scores, each of which is 0% if absent and 100% if present
    • The two lowest scores in this list are removed
    • The remaining ones are averaged

Fixed grading scale

When final course grade percentages are available, they will be converted to letter grades according to the following scale:

  • A = 85% - 100%
  • B = 75% - 84.9999%
  • C = 65% - 74.9999%
  • D = 55% - 64.9999%
  • F = less than 55%

Note that the scale above does not involve any rounding, so for example a final percentage of 74.97% corresponds to a grade of C. Also, raw percentages are used in all cases, with no modification or "curve".

Communication with course staff

Outside of course meetings, office hours, and scheduled appointments, email and Discord are the best ways to contact course staff in most cases. Please only email course staff from your @uic.edu email address so that we can easily match your email address with the course roster.

The instructor will usually respond to email or Discord questions within 24 hours. Response over a weekend may be slower.

Keep in mind that questions received in the last few hours before a course deadline (for a homework assignment or project) usually cannot be answered in time to help you with your work. It is a good idea to seek assistance as far in advanceas possible.

Communication with other students

In all class settings (meetings, office hours, online forums, etc.) students are required to treat everyone with respect. Harassment, bullying, discrimination, bigotry, and other behaviors that create a harmful or exclusionary environment will not be tolerated.

The course Discord server can be used to communicate with other students in the class (as a group, or through individual private messages).

University Policies

UIC requires that every syllabus mention the following university policies.

Academic deadlines

The UIC academic calendar can be found at:

In particular this calendar includes the deadlines for adding and dropping courses.

Academic honesty and standards of conduct

All UIC students are required to abide by the rules and standards of conduct described in the Student Disciplinary Policy

In particular, this policy prohibits academic misconduct such as plagiarism.

Disability accommodation

The University of Illinois at Chicago UIC is committed to full inclusion and participation of people with disabilities in all aspects of university life. Students who face or anticipate disability-related barriers while at UIC should connect with the Disability Resource Center (DRC) to create a plan for reasonable accommodations. In order to receive accommodations, students must disclose disability to the DRC, complete an interactive registration process with the DRC, and provide their course instructor with a Letter of Accommodation (LOA). Course instructors in receipt of an LOA will work with the student and the DRC to implement approved accommodations.

Religious holidays

The UIC Senate Policy on religious holidays (approved May 25, 1988) is as follows:

The faculty of the University of Illinois at Chicago shall make every effort to avoid scheduling examinations or requiring that student projects be turned in or completed on religious holidays. Students who wish to observe their religious holidays shall notify the faculty member by the tenth day of the semester of the date when they will be absent unless the religious holiday is observed on or before the tenth day of the semester. In such cases, the students shall notify the faculty member at least five days in advance of the date when he/she will be absent. The faculty member shall make every reasonable effort to honor the request, not penalize the student for missing the class, and if an examination or project is due during the absence, give the student an exam or assignment equivalent to the one completed by those students in attendance. If the student feels aggrieved, he/she may request remedy through the campus grievance procedure.''

The University Holidays and Religious Observances calendar can be found at:

http://oae.uic.edu/religious-calendar/

Revision history of this document

Any change to the document other than filling in missing information (such as office hours still to be determined) will be recorded here. No such changes are anticipated.

  • 2023-01-07 Initial publication
  • 2023-01-30 Add Joyce office hours
  • 2023-01-30 Adjust project deadlines to account for strike