Lecture: Course goals and administrivia

Welcome to CS/ECE 374! To make sure we’re all on the same page, you’re in (or more specifically, reading) a lecture for the A section of the course which is taught by CS faculty and primarily aimed at CS students or at least those who appreciate the perspective we have on this side of Matthews Avenue.

I (the author of these notes and/or the person talking to you right now) am Emily Fox (she/they) a Teaching Associate Professor of Computer Science. I’ve been somehow involved in this course and others like it for quite a long time! There used to be separate models of computation and algorithms courses required to graduate, and I took both as an undergrad in CS in 2006. As a Ph.D. student, I was one of the TAs for the more algorithms focused of the two courses in 2009 and 2010. I left Illinois for 12 years to do postdocs and profess in Texas, and then I returned to Illinois in Fall 2025. Along with being a member of the Instructional (Teaching) faculty, I’m also a member of the Theory faculty. I do research in computational geometry and graph algorithms. The latter is something we’ll discuss in detail a little over halfway through the semester. I’m not the only one who deserves credit this semester, even if I ultimately deserve all the blame. We also have (at least) eight graduate TAs and 16 undergraduate CAs to run labs, office hours, and provide feedback, i.e., grades.

So why are we here? 374 is a course on theoretical computer science. In short, we’re going to cover the fundamentals of models of computation such as regular and context-free languages and finite-state automaton, the fundamentals of algorithms such as the use of recursion and applications of graphs, and some topics on complexity and computability that kind of blend the two subjects together. We won’t be doing much if any programming. Instead, all definitions, examples, constructions, and theoretical arguments will be done using a combination of English prose with math notation sprinkled in where appropriate. In turn, a major component of this course is the development of clear technical communication which will be handled primarily through examples, practice, and feedback from the course staff. Also, as far as we can, we will let you know what all needs to be said about any given problem.

Now, we do understand that this class, like its predecessors from my time, has a reputation as being one of, if not the most, difficult courses in the CS or ECE curriculum. It’s kind of the nature of theory, unfortunately. You might get less instant gratification compared to, say, a programming class, because the things you build—and again, you will be building things, just not with code—are going to be more abstract than programming code. Like in your other classes, the way you’re going to get better is to practice, and we will be providing you with work to practice on and, later, tests that you took the practice to heart. But because you rarely do so much practice with abstract things, it’s going to be difficult, at least at first.

The other side of the theory coin, though, is that the skills you practice will be broadly applicable outside the course. You’ll practice approaching problems systematically and using principled methods of making sure what you’re doing is provably correct and not just something that passes a handful of test cases or feels right. You’ll practice breaking problems down into manageable pieces and reducing to known solutions when applicable. And, you’ll practice understanding why certain tasks are difficult or even impossible so you can recognize such issues and plan accordingly.

So, this is class is hard. It’s likely harder than many of you expect. I thought Algorithms was the hardest class I took in undergrad, and I came in expecting to enjoy it! However, we’re going to give you as many resources as we can to help you succeed, and many of you will end up doing much better than you expect.

Our expectations

First, please take a careful look at the course website https://courses.grainger.illinois.edu/cs374al1/fa2026/ (you’re there right now!) There’s… a lot there, but it has every detail we can think of for both grading policies and logistics of how to submit homework. Everything is there both to help such a large course run more smoothly and to make sure we can give you the feedback and grades you deserve for your work.

We do expect everybody to read through every page at least once (sorry), but here are some highlights:

35% of your grade comes from guided problem sets (GPSs) on PriarieLearn along with written homeworks. We’ll use your best 9 GPS scores and your best 18 homework problem scores, weighing each full GPS and individual homework problem equally. Unfortunately, we cannot accept late GPS submission or written homework submissions. The way PrairieLearn itself handles late submissions is somewhat nonsensical, and there are too many of you to make individual exceptions. For homework, we’re on a tight week-by-week schedule that works much more smoothly if we cut off submissions with a hard deadline and provide solutions the very next morning. However, there are going to be at least 10 GPSs and at least 22 written homework problems (across 11 homework assignments,) so there’s room for unexpected issues. In extreme cases, we can also discuss forgiving individual assignments.

The remaining 65% of your grade comes from for exams (sorry, too many of you will get near perfect assignment scores for us to weigh them more and still have meaningful grade assignments.) There are two midterm exams with five problems each covering the first two units in isolation plus one cumulative final exam with seven problems. Each problem carries equal weight. All exams are done in-person on paper outside of normal lecture hours unless you have a conflict. We’ll give you more information on the format including representative practice exams when the first midterm draws near.

The website has score thresholds for different letter grades. We will not curve individual assignments or exams unless there is a very large discrepancy between an exam’s regular and conflict versions.

There will be quite a lot of writing—likely a lot more than in 173—and we’re going for clarity, not concision so it may be different from some math classes you’ve taken. However, we have lots of resources to help you practice show you what we expect.

So you’ll have to work hard, but we have so many resources beyond the raw gradables to help you. And while we do not require you to use any one resource, we do expect you to take advantage of at least a few of them. We have: