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.
-
GPSs are there to make sure you’re on the same page with regard to basics of a topic and—to the extent we can test this with an automated system—with the structure of thinking about and writing solutions to problems.
-
Homework is, in my opinion, where all the “real” learning happens. It is meant to take time. When I took Algorithms here in 2006, it was the way I learned everything (as much as I’d love for everybody to follow my every word during lectures, that’s not how my own brain worked.) Homework is not meant to be done the night before it’s due like it’s a simple knowledge check. It is supposed to be struggle at first. The problems are very similar to, but easier than, what’s on the exams. They’re there to make you to figure out what’s going on, practice what you figured out, and practice clearly writing to tell us what you figured out.
We’re not trying to trick you on what we grade on, even if it might feel unclear at first, so there are very detailed standard rubrics on the course webpage. Please check them before submitting every assignment to make sure you’re given us what we’re asking for. These exactly same rubrics are used for exam problems! So the more you take advantage of them for the homework, the fewer surprises you’ll have when get your exams back. The course staff will provide feedback on every written homework problem you submit so you know if you’re meeting those rubric items or if there’s other things you should focus on with your writing.
-
Finally, we have the exams. This is where you show off what you learned over the weeks of practice (and how I assign you a letter grade; sorry I have to do that.)
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:
-
A recommended textbook and notes by course architect Jeff Erickson.
-
Lecture notes (hello) written by myself that either condense what Jeff has written to what I consider the key points or present things in a way that I personally think works better for this course. (You’re free to disagree with me on how things should be presented! That’s why we’ve given you options.)
-
Lectures where I will introduce topics and walk through several examples of how to apply them. These will follow the lecture notes pretty closely, but you’re have the opportunity to ask questions and work through examples with me.
-
Labs where you’ll see the types of problems you’d find on the homework and exams with work done as a large group led and guided by course staff. Lab problems tend to be about the same difficult as exam problems and easier than homework problems. I think nearly every undergrad CA agrees that these are not being taken advantage of nearly as much as they should be by students. Please prove them wrong!
-
Office hours, so many office hours, to ask questions and get guidance in much smaller groups from course staff. COME TO THESE. Algorithms was the class in undergrad that I attended office hours more than a handful of times, and I attended multiple every week. The staff wants to help you. That’s why they’re here. Attend office hours regularly, even if you plan to just work on your homework. You never know if you’ll have questions or want to bounce ideas off of others, and all discussions (that aren’t grade related) will be open to everyone present. Some office hours will even be designated as conceptual; for these, I plan to go over subjects from lecture or the book, and I won’t let them be taken over by homework questions.
-
Homework parties likely three times a week where lots of you can work together with course staff and many other students to solve the actual graded homework problems!
-
Your homework group members should you choose to make a homework group. Each problem submission can have up to three authors who all get the same grade. See the course webpage for submission logistics (and take them seriously so we don’t fail to give you the grade you earned.)
-
Literally ANYTHING ELSE including your peers outside of your group or other textbooks or research papers, etc., as long as you cite it and write your solutions in your own words. That said, you must give a list of citations at the end of every part of every written homework problem, even if you’re just saying there is nothing to cite. This policy is partially there to encourage good scholarly practice and partially there to keep the graders sane as they go through the many many pages of written homework solutions. Also, if you use an LLM/generative AI/a spicy chatbot, you must tell us what you used it for along with a citation to the exact tool you used, and the actual words you write in your solutions must still be your own. Do not simply copy what the LLM throws back at you. It won’t be there to help you with the exam, and it completely defeats the point of doing the homework. I would also be cautious about using them as an additional source of explanations, because their output won’t be based on our perspectives on how to think about a lot of the material or our expectations on what to include or to not include in your writing. As with everything, logistical details on citations and avoid plagiarism appear on the course webpage. Read it read it read it.
And this is the part of the lecture where we spend a lot of time on questions, hopefully.