for Oregon State University's Computer Science Post-Bacc Program

Upper Division

Elective

CS 321

Introduction to Theory of Computation

Filter:

2

Reviews

6

Hours per Week

2.5

/ 5.0 Difficulty

CS 381:

2 times

Page 1 of 1

SP 20230-5 hours/week2 / 5 CS 381

I loved this class! I'd build automata for a living if I could lol, but it's not super practical so don't expect it to really help you as a software developer. Also don't worry if the textbook seems really technical at parts and you don't understand it, it all makes so much more sense after you watch the videos. If you liked (or didn't mind) discrete math and want to get into the more theoretical side of computing, definitely take this class.

Submitted Tue Jun 20 2023

SP 20236-12 hours/week3 / 5 CS 381

I thought this class was really interesting and a great opportunity to get a more well-rounded CS education. The topics are about what computers do at a high level of abstraction. Despite the abstraction, I think the topics are useful for general programming if you look in the right places. The coverage of grammars applies directly to how programming languages and compilers work. The bits about automata, computation, Turing Machines, etc, give you some helpful techniques to think about things like designing a program that holds state, thinking through algorithms, and realizing when problems are even possible to solve with an algorithm. I took this class with 381 (Programming Languages), which was an excellent combination, as there ended up being conceptual overlap several times. It also leads nicely into Algorithms, as the course leaves off just before the topics of time and space complexity come in. The coursework was pretty manageable. The weekly problem sets are small, usually around 3-6 problems, and consist of creating state diagrams of automata and doing proofs. The proofs aren't too difficult except maybe weeks 7 and 10. If you hated Discrete, I would probably avoid this class. It's way less stressful, but it's mostly about mathematical abstractions and involves proofs almost every week. There are also three very easy open-book quizzes. If this kind of material is up your alley, it's generally a pretty fun class. Even if you're having a hard time with the occasional topic, it's hard to get too overwhelmed about it because the workload is so manageable and the grading is pretty lenient. As for the class structure, this is pretty much a read-the-book-and-do-the-assignments course. There are 2-4 videos for each unit, only about 5-10 minutes each, that tend to show how to do a certain kind of problem or a certain kind of proof, but don't do much to further elaborate the concepts, generally speaking. However, there are surprisingly excellent videos available on Youtube if you prefer lectures or tutorials. Check out Michael Sipser's MIT lectures, Easy Theory, and Nesso Academy if you need more learning materials. The professor (Tim Alcon) is friendly and available, and likes to talk about the material. The Ed board tends to be dead, so you're mostly on your own as far as learning goes unless you do office hours. Bottom line: really interesting and eye-opening class if you like abstraction and mathy topics; avoid if you dislike proofs or mostly independent classes. If you're even seriously considering this class given its 3 hour status and the nature of the material, it's probably for you.

Submitted Tue Jun 13 2023

Page 1 of 1

Course Analytics was developed for students of Oregon State University's online Computer Science program. The data on difficulty, time commitments, course pairings, and tips have been submitted by real students using this survey. Feel free to add your own reviews if you are a current student! The data is scraped from this spreadsheet.

Course Analytics is an open source project by Nic Nolan.

View the repository on GitHub