Syllabus

Note

This is a tentative syllabus and subject to change.

Introduction to Computer Science II is the second course in a three course sequence (CMSC 15100-15200-15400) designed for students who intend to take more advanced courses in computer science. This course introduces imperative programming using the C programming language. Topics include program design, control and data abstraction, pointers and memory management, and data structures including lists, trees, and graphs.

NOTE: Non-majors may use this course to meet the general education requirement in the mathematical sciences; students who are majoring in Computer Science are required to complete either CMSC 15200 or CMSC 16200.

Prerequisites: Students must have completed CMSC 12100, CMSC 15100 or CMSC 16100 with a quality grade of higher than an F or with a P.

Course Staff

Instructors

Teaching Assistants

  • James Liu

  • Antonio Martinez

  • Emma Peterson

  • Jonathan Yuan

Course Structure

This class will meet three times a week for synchronous (remote) lectures, and once a week for synchronous (remote) discussion sessions. Graded work includes homeworks, labs, projects, and quizzes (in lieu of exams).

Lecture sections

All lecture sessions are conducted remotely using Zoom.

Lecture Section #1

MWF 9:10am-10:00am

Morgan

Lecture Section #2

MWF 11:30am-12:20pm

Morgan

Lecture Section #3

MWF 1:50pm-2:40pm

Wachs

Discussion sections

The class will also include weekly one-hour discussion sessions, which will meet on Tuesdays. These sessions will be led by a Teaching Assistant and will be remote. The times for these sessions are TBD.

Labs

There will be weekly labs, which will be released on Tuesdays and due on Fridays. The Tuesday discussion sessions are used to provide additional support for the labs.

Homeworks

There will also be weekly homeworks, released mid-week and due the following Monday. We release homeworks once we have covered the relevant material in lecture, so the schedule for homeworks may occasionally vary to match lecture pacing. Near the end of the quarter, a sustained multi-week project will take the place of homeworks.

Although homeworks and labs are both weekly exercises, they play different roles in the course. Homeworks consist of a set of short, and often unrelated, problems that provide targeted practice on recent lecture topics, such as new syntax or techniques. Labs are organized around building a program to accomplish a specific goal, and so involve writing several functions to accomplish a coherent task.

Project

In the latter part of the course, a multi-phase, multi-week project will have you writing the largest program of the quarter, one in which you implement the rules of, and interface for, a board game that we have created. Projects give you more experience with the kinds of considerations that come up when working on a large and sustained programming task.

Quizzes

In lieu of exams, there will be three quizzes. Think of these similarly to exams: they allow you to demonstrate your mastery of course material up to that point, and must be completed in a limited amount of time. However, there will be three of them, to spread them out more than the traditional pattern of having two exams; and each quizz will count for less of your final grade than an exam would.

Unlike conventional exams where everyone must be in the same room at the same time, you will have some flexibility in scheduling these remote, online quizzes. You will also be allowed to use the tools from the course to debug and test your solutions.

We will announce quizzes during the quarter based on lecture progress, but will give you at least one week’s notice before a quiz takes place.

Grading

Your final grade will be based on the following:

Homeworks

25%

Labs

20%

Project

25%

Quizzes (each)

10%

The grade boundaries will be set based on class performance.

Late submissions

You are allowed to make at most two late submissions across the homeworks and labs. Late submissions will be accepted up to 48 hours after the deadline.

No credit will be given for late submissions after you have used up your two allowed late submissions.

No credit will be given for any submission made 48 hours after the deadline.

Please note that, while Gradescope does enforce the 48-hour limit on late submissions and will clearly flag late submissions with a red “LATE” label, it does not enforce our specific limit of two late submissions. It is your responsibility to keep track of how many late submissions you have made so far, and to ensure you don’t make more than two late submissions.

If extraordinary circumstances (illness, family emergency, etc.) prevent a student from meeting a deadline, we may grant additional extensions on a case-by-case basis. Whenever possible, the student must inform their instructor of these extraordinary circumstances before the deadline.

Please note that having a heavy workload in a given week does not qualify as an extraordinary circumstance. The purpose of the two extensions is precisely to give you some flexibility in weeks when you are busier than usual.

Regrades

We sometimes make mistakes, and are happy to review any incorrect grading decision. It is your responsibility to make these requests in a timely manner. Requests for regrades must be submitted no later than one week after a graded piece of work is returned to you. After that time, we will not consider any requests for regrades, regardless of whether the regrade request is reasonable and justified.

Books

We recommend the following books as useful for learning to program in C.

  • C Programming Language, 2nd edition, Brian Kernighan and Denis Ritchie, 1988, ISBN: 978-0131103627

  • The Practice of Programming, Brian Kernighan and Rob Pike, 1999 ISBN: 978-0201615869

  • 21st Century C: C Tips from the New School, Ben Klemens, 2014, ISBN: 978-1491903896 (This book is a good second book to have on C. It is not a good first book.)

Policies

Policy on academic honesty

We take academic honesty very seriously in this class. Please make sure to read our Academic Honesty page.

Zoom guidelines

Note that you can set your name in your Zoom profile, so you don’t have to go with whatever was assigned. We encourage you to include your pronouns in your name (if so, please include them after your last name).

Our Zoom class meetings will be recorded and saved to the cloud to allow students in this class to review the discussion, and especially to allow students who can’t participate the opportunity to benefit from class. We will not make these recordings available to anyone but class participants, we will not make them available after the quarter, and students will not be allowed to save copies. However, we have no way to guarantee that students will follow this policy. If you have FERPA concerns, please mask yourself accordingly, e.g., by turning off video and using an alias.

Diversity statement

The University of Chicago is committed to diversity and rigorous inquiry that arises from multiple perspectives. We concur with that commitment and also believe that we have the highest quality interactions and can creatively solve more problems when we recognize and share our diversity. We thus expect to maintain a productive learning environment based upon open communication, mutual respect, and non-discrimination. We view the diversity that students bring to this class as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, socioeconomic status, ethnicity, race, religious background, and immigration status. Any suggestions as to how to further such a positive and open environment in the class will be appreciated and given serious consideration.

If you have a preferred name different from what appears on the class roster, or specific gender pronouns you would like us to use, please let us know.

Accessibility statement

The University of Chicago is committed to ensuring equitable access to our academic programs and services. Students with disabilities who have been approved for the use of academic accommodations by Student Disability Services (SDS) and need a reasonable accommodation(s) to participate fully in this course should follow the procedures established by SDS for using accommodations. Timely notifications are required in order to ensure that your accommodations can be implemented. Please contact your instructor to discuss your access needs in this class after you have completed the SDS procedures for requesting accommodations.

Phone: (773) 702-6000 Email: disabilities@uchicago.edu

COVID-19 Policies

UChicago Health Pact

All students on campus are required to adhere to the guidelines in the UChicago Health Pact in order to promote a safe environment in the classroom.

  • Secure face coverings must be worn appropriately at all times while in University buildings

  • Maintain a distance of 6 feet from others

  • Do not attend an in-person class if you feel unwell or are experiencing COVID-19 related symptoms

The complete text of the UChicago Health Pact along with additional information about COVID-19 protocols can be found here.

Students who have been exposed to or who are experiencing symptoms of COVID-19 should contact UChicago Student Wellness immediately to be tested, and reach out to their area Dean of Students to request accommodations for classes until:

  • At least 10 days have passed since symptoms first appeared and;

  • At least 3 days (72 hours) have passed since recovery- defined as resolution of fever without the use of fever-reducing medications and improvement in respiratory symptoms (e.g., cough, shortness of breath).

Reporting COVID-19 Exposure or a Confirmed Case

If you were potentially exposed to COVID-19 or your COVID-19 test results come back positive, reach out immediately to C19HealthReport@uchicago.edu.

Recording and Deletion Policies for Academic Year 2020-1

The Recording and Deletion Policies for the current academic year can be found in the Student Manual under Petitions, Audio & Video Recording on Campus.

  • Do not record, share, or disseminate any course sessions, videos, transcripts, audio, or chats.

  • Do not share links for the course to those not currently enrolled.

  • Any Zoom cloud recordings will be automatically deleted 90 days after the completion of the recording.

Attendance

Absent any extraordinary circumstances, we expect students to attend all lectures and discussions. That said, we do not keep track of attendance in this class and no part of your final grade is computed based on your attendance to lectures or discussions.