CS/ECE 374 A — Spring 2018
Dakshita Khurana Jeff Erickson

Teaching assistants
Christian Howard Cosmo Viola
David Zheng Eliot Robson
James Hulett Robert Andrews
Shubhang Kulkarni Stav Ashur
Tanvi Bajpai

Course assistants
Angela Zhao Ananya Yammanuru
Aryaman Jain James Wei
Jiasheng Hu Joe Carolan
Kaiyao Ke Lou Zeh
Michael Jiang Noah Watson
Nora Dunleavy Rishub Podar
Samraj Moorjani Shresta Bangaru
Yipeng Yang

PrairieLearn developers
Eliot Robson Jason Xia
Julie Lee Steven Pan
Tomoko Sakurayama

Lectures and labs
Exam dates Midterm 1: Sep 27, 7:00–9:30pm
Midterm 2: Nov 8, 7:00–9:30pm
Final exam: Dec 15, 8–11am

Calendar of all weekly class events
Office hours
About this course
Prerequisite skills
Homework • Exams • Grading
Accommodations • Health • Culture
Academic integrity
Zoom links
Labs (see calendar for more info) AD0 (9am)
ADA (9am)
ADB (10am)
ADC (11am)
ADD (12pm)
ADF (1pm)
ADH (2pm)
ADK (3pm)
ADE (4pm)
ADG (5pm)
Office hours: Dakshita. Jeff, TAs
Office hours
Labs (see calendar for more info) AD0 (9am)
ADA (9am)
ADB (10am)
ADC (11am)
ADD (12pm)
ADF (1pm)
ADH (2pm)
ADK (3pm)
ADE (4pm)
ADG (5pm)
Other Links
Gradescope (N84GEX)
Piazza (374A) • DiscordQueue
Other useful resources
Section B (taught by Nickvash Kani)


October 27
Homework 8 solutions are available.
October 25
  • Guided Problem Set 9 is due (on PrairieLearn) Monday, November 1, at 8pm.
  • Homework 9 is due (on Gradescope) Tuesday, November 2, at 8pm. This is the last homework before Midterm 2.
October 21
Homework 7 solutions are available.
October 19
October 13
Homework 6 solutions are available.
October 12
Grades for Midterm 1 have been released on Gradescope.
  • Regrade requests can be submitted until two weeks from today: Tuesday, October 26.
  • Here is the distribution of midterm grades and computed course averages that I showed in class today:

    The orange curve shows computed course averages (36% Homeworks 1–4 and GPS 1–4 + 64% Midterm 1) for all students who took the regular exam, in sorted order. These averages were used to define the vertical letter-grade boundaries. The blue dots show the corresponding midterm scores for each student. Dots that are further above the orange curve indicate students with lower homework averages. Assuming a HW+GPS average of 95% (the class median), a midterm score of at least 40 is consistent with an A, a midterm score between 28 and 40 is consistent with a B, and a midterm score between 16 and 28 is consistent with a C.

    Please keep in mind that this is an extremely rough prediction of you final course grade, based on roughly 30% of the overall work. Past experience suggests that most students‘ final course grades will be within one letter grade of these estimates, but differences of a full letter grade (in either direction) are quite common, and there are a few differences of two letter grades or more (in either directions) every semester.

    Students are strongly encouraged to talk with Jeff or Dakshita before dropping the class. In addition to his usual Friday office hours, Jeff will be available Friday 11-1 and 3-5, specifically for students who are thinking of dropping the class and/or are seriously concerned about their midterm performance.

October 11
  • Guided Problem Set 7 (available soon) is due (on PrairieLearn) Monday, October 18, at 8pm.
  • Homework 7 is due (on Gradescope) Tuesday, October 19, at 8pm.
  • Homework 6 has been revised to update the standard dynamic programming rubric. Specifically, two new penalties have been added.
    • –1 for naming your recursive function (or memoization structure) "OPT" or "DP" or any single letter.
    • –2 for any greedy optimization in your recurrence, without a proof that your optimization is correct. (See Chapter 4 of Jeff's textbook for examples of greedy proofs; we won't cover these in class.)
    The actual problems in Homework 6 are unchanged.
October 8
Solutions for Conflict Midterm 1 are finally available. (Sorry for the delay.)
October 6
  • Homework 5 solutions are available.
  • Starting on Wednesday, October 13, students who are not in compliance with COVID-19 testing requirements will lose access to certain university computing resources, including Media­Space and Prarie­Learn (but not Zoom, Grade­scope, Piazza, Discord, or these web pages). Please see the official announcements to students and to instructors for more information. Questions about this policy should be directed to covid­wellness@illinois.edu.
October 4
  • Guided Problem Set 6 (available soon) is due (on PrairieLearn) Monday, October 11, at 8pm.
  • Homework 6 is due (on Gradescope) Tuesday, October 12, at 8pm.
September 28
September 22
Homework 4 solutions are available.
September 21
  • In addition to the paper fodder, another large collection of study problems for Midterm 1 is available on PrairieLearn. Some of these are variants of past guided problems; others are simple multiple-choice questions; still others are Pythonic free-response problems. All the advice from page 1 of the fodder applies to these problems as well.
  • At the review session on Thursday, Dakshita will walk through a sample midterm, which collects several problems from past 374 exams. We strongly encourage everyone to work through this sample midterm themselves before the review session!
  • One of the language transformation problems on Guided Problem Set 4 turns out to have multiple correct solutions, based on subtly different interpretations of the proposed states. Here is an explanation of three of these solutions. We will adjust everyone's scores on PL to give everyone full credit for that problem.
September 20
Midterm 1 will be held next Monday, September 27, from 7:00pm to 9:30pm.
  • The exam will cover all material from Homeworks 1 through 4 and the corresponding Guided Problem Sets—string induction, regular expressions, DFAs, product constructions, fooling sets, NFAs, closure properties of regular languages, language transformations, and (very lightly) context-free languages, but not Turing machines.
  • A large collection of study problems is available. Please take the first page seriously. You can also find exams from past semesters either on past semesters' course web sites, or in Jeff's exam archive.
  • This Thursday's lecture and Friday's labs are cancelled. However, there will be an optional review sessions during the usual Thursday lecture time and Friday lab times (streamed and recorded as usual). In particular, Dakshita and/or Jeff will walk through a sample midterm on Thursday; we will post the sample midterm here shortly.
  • The exam will be held synchronously online, with Zoom proctoring, following the protocols recommended by CBTF Online. We will post Zoom links later this week. Please log into your Zoom room at least 15 minutes before the exam begins (6:45pm). Please read and understand the exam policies, especially with respect to exam logistics.
  • The conflict exam will be held on Tuesday, September 28, either 9:30–12 or 11–1:30. (Tuesday's lecture will be recorded as usual, and it should be mostly review, so that is not a conflict.)
    • If you need to take the conflict exam, please fill out the registration form no later than Friday, September 24.
    • If you need to take the conflict exam but you have additional conflicts both immediately before and immediately after the 374 lecture on September 28, please fill out the registration form no later than Wednesday, September 22.
    • The conflict exam will also be held online with Zoom proctoring. On Monday we will email Zoom link(s) to students registered for the conflict exam.
  • If you have a DRES accommodation, you are welcome to take the exam at the DRES Testing Accommodation Center or Tuesday morning. We strongly recommend scheduling your exam at TAC immediately. If you are not taking the exam at TAC and you have an accommodation for extra time, please take the conflict exam.
September 15
  • Homework 3 solutions are available.
  • Homeworks 1 and 2 have been graded on Gradescope. The long delay for Homework 1 was caused by some administrative bottlenecks in hiring the CAs; we plan to have future homeworks graded within one week of the submission deadline.
  • Regrade requests can be submitted directly on Gradescope up to two weeks after grades are released. All regrade requests require a brief written justification (not an explanation of what you meant). Please see the regrade request policies for more information.
September 14
Homework 4 is due (on Gradescope) Tuesday, September 21, at 8pm. This is the last homework before Midterm 1.
September 13
Guided Problem Set 4 is due (on PrairieLearn) Monday, September 20 at 8pm. This is the last guided problem set before Midterm 1, but we do plan to post some practice exercises (which won't count toward course grades).
September 8
  • Homework 2 solutions are available.
  • The course staff is producing a series of walk-through videos showing the solution process for some lab problems, or explaining some key concepts in more detail. We have been slow getting started, but at steady state, we hope to publish two or three of these videos per week.
September 7
  • Guided Problem Set 3 is due (on PrairieLearn) Monday, September 13 at 8pm.
  • Homework 3 is due (on Gradescope) Tuesday, September 14, at 8pm.
  • When you submit solutions to Gradescope, please remember to select which pages of your submission correspond to each graded part, as described here.
September 1
August 30
  • The weekly office hours schedule is now available.
  • Guided Problem Set 2 is due (on PrairieLearn) Monday, September 6 Tuesday, September 7 at 8pm.
  • Homework 2 is due (on Gradescope) Tuesday, September 7, at 8pm.
  • A LaTeX solution template is available for students who want to typeset their homework.
  • If you are not using your real name and university email on Gradescope, please fill out this form to register your Gradescope alias. If you are using your real name and university email on Gradescope, you do not need to fill out this form.
August 25
Zoom links for each lab section are listed in the weekly calendar at the bottom of this page.
August 24
  • Guided Problem Set 1 is due (on PrairieLearn) Monday, August 30, at 8pm.
  • Homework 1 is due (on Gradescope) Tuesday, August 31, at 8pm.
  • The web form to register your Gradescope identity should be available in a day or two Real Soon Now.
August 23
Thanks to the ongoing COVID pandemic, we are running a hybrid class this semester, which supports both both in-person and online participation.
  • Lectures will be given in person in 1002 ECE Building ("Grainger Auditorium") and streamed live over Zoom at this link. Any student registered for section AL1 or AL2 is welcome to attend either in person or remotely.
  • All students attending lectures and labs in person must be able to verify their building access through either the Safer Illinois app or the COVID-19 Boarding Pass, and must wear a mask or other face covering while inside any university building. Make sure your phone is charged before you come to class! Students who violate these policies will be asked to comply, and if they refuse, will be asked to leave. See our health-related policies for more information.
  • Remote students should ask questions during lecture on Discord; there will be a dedicated channel for each lecture. For example, questions about the August 24 lecture should be asked in the channel #08-24. In-person students are welcome to use Discord, especially if you are uncomfortable asking questions out loud. (Audio, video, and chat will be disabled on Zoom, except from the lecturer.)

    All students are encouraged to answer each other's questions directly in Discord, or to upvote (via reactions) questions they woudl like the lecturer to answer. Another member of the course staff will monitor Discord form the lectuer hall, answer simple questions directly, and forward interesting/upvoted questions to the lecturer. All Discord questions and answers will remain on that day's lecture channel through the end of the semester.

  • Similarly, lab sections (except for AD0) will meet in person in 1302 Siebel and will be streamed online; the Zoom links will be available soon at the bottom of this page. We will use Zoom chat and breakout rooms to facilitate group discussion.
  • All lectures and labs will be recorded. Lecture videos will be publicly available on MediaSpace. (This is one reason we are disabling student questions on Zoom.) Lab videos will be available on MediaSpace, but only to registered students. Watch for MediaSpace links at the bottom of this page.
  • Most office hours will be held entirelyonline, using a combination of Zoom, Discord, and Quque. Details will be posted soon; stay tuned!
  • Finally, given the distributed nature of the class, it is absoutely vital that that all online communication remain professional, courteous, and relevant to the course. Jokes are fine; jerks are not. Please review our cultural expectations.
August 17
  • Welcome! We're working hard to get everything set up here before the semester begins. Meanwhile, you may notice several broken links, pages that refer to previous courses, and inaccurate dates.
  • There are two independent sections of CS/ECE 374 this semester. This is the web site for Section A (formally: lecture section AL1 and lab sections AY*). Section B, taught by Nickvash Kani, has a separate site on Canvas.
  • The class is full! There is no waiting list this semester.

Weekly course calendar

Tuesdays and Thursdays at 11:00–12:15
1002 ECE Building • Zoom • Videos
Wednesdays and Fridays in 1302 Siebel (except for AD0). Yes, the section labels are out of order.

AD0: James and Robert 9:00–9:50 (online only) [Zoom] [Videos]
ADA: Eliot 9:00–9:50 [Zoom] [Videos]
ADB: Shubhang 10:00–10:50 [Zoom] [Videos]
ADC: Christian 11:00–11:50 [Zoom] [Videos]
ADD: James 12:00–12:50 [Zoom] [Videos]
ADF: Stav 1:00–2:00 [Zoom] [Videos]
ADH: Cosmo 2:00–2:50 [Zoom] [Videos]
ADK: David 3:00–3:50 [Zoom] [Videos]
ADE: Tanvi 4:00–4:50 [Zoom] [Videos]
ADG: Tanvi 5:00–5:50 [Zoom] [Videos]
Office hours
Weekly deadlines
Guided problem sets on PrairieLearn are due Mondays at 8pm
Written homeworks are due Tuesdays at 8pm, uploaded to Gradescope
GPS and homeworks are released at least one week before the due date.
Under normal circumstances, graded homeworks should be returned within 10 days of submission.

Si maintenant vous me donnez une équation que vous aurez choisie à votre gré, et que vous desirez connaître si elle est ou non soluble par radicaux, je n’aurai rien à y faire que de vous indiquer le moyen de répondre à votre question, sans vouloir charger ni moi ni personne de la faire. En un mot les calculs sont impracticables.
Évariste Galois
For every polynomial-time algorithm you have, there is an exponential algorithm that I would rather run.
Alan Perlis
Algorithms are for people who don't know how to buy RAM.
Clay Shirky