A Review of the CS Undergraduate Curriculum at UI
This is my review of the University of Iowa CS program.
It is alright. I don't have a lot of positive things to say about it other than some classes I learned a lot and some professors were really good.
I do have a lot of negative things to say though. I hated how variate the quality of courses were. Some were rigourous and fun, and the others were a pain. It wasn't the course content, I just feel like the teaching skills of professors varied so much.
Speaking about rigor, I wish they were harder and covered more. The only classes that were actually hard was Computer Organization (2630), Programming Language Concepts (3820), and Distributed Systems and Algorithms (5620).
Would I recommend University of Iowa's computer science program to a prospective high schooler?
If they are somewhat capable of math, the answer is no. The answer is self explanatory and you will only find 1-3 courses enjoyable, so yeah.
Well, these were my personal rankings of classes/profs
Courses [Fun]
S: 5620, 4330
A: 3330, 3640
B: 3620, 3820, 2210
C: 2630, 2230, 2820, 5820
Courses [Difficulty]
S: 2630
A: 5620, 3820
B: 3620, 5820
C: 2210, 2230, 2820, 3330, 3640
S:
5620 | Distributed Systems and Algorithms
This class is really interesting. However, it got pretty hard later on. In the past, I would be on my device during class. I'd look up and be able to get everything going on. The second half, I look up and have no idea what is going on. The worse part is that as a grad class, there is 0 help online. Good luck finding someone who knows Ben-Or!
4330 | Theory of Computation
Another very interesting class. Very fun proofs, fun homework, fun exams, and pretty easy. I think while it was a bit too easy, it was still very enjoyable.
A:
3330 | Algorithms
I will pretend that I did not have Denise as my professor, and judge it based on content. It was interesting. That's all I will say. I grinded LC so every algo problem was easy.
3640 | Networks
Really interesting class. Layer1 + Layer2 stuff were super cool. I didn't really like TCP unit. Applications would've been fun if I actually studied. Loved the prof and loved the research paper project at the end. Pretty easy to mem everything and get a good grade, if only I did that.
B:
3620 | Operating Systems
I will say I might have not found it this low if the homework were actually interesting and programming OS stuff in C rather than a stupid bank program. The last units on power management and real time systems were fire though.
3820 | Programming Language Concepts
Uh. Fun class. Super fun haskell homework. Fun grammar parser. Horrible agda. Horrible project.
That's about all I have to say, other than the fact that the class gave out so many As, I never really tried too much.
C:
2630 | Computer Organization
...
We don't talk about this class. This class was painful AF. Despite getting an (A-), this class was absolute turd. There was a custom assembly language that nobody knows how to use, the concepts were super hard to understand. I spent at least 20 hours every 2 weeks on the homework. It was just downright torture land.
C:
2820 | Software Development
Hmm. This class taught a bunch of memorization stuff that I forgot in a few weeks. The project was pretty irrelavant, and sprints were easy af. Overall, I didn't gain a lot from this class.
C:
2230 | Data Structures
I don't know why I hated this class so much. I just remember hated the tRats and iRats. I also remember getting a bad grade in this class, and bombing the final caz it was situated between 4 APs. Megaoof.
C:
5820 | Software Engeering Languages and Tools
Project was cool. Some content were cool, but not as much application to rl as I hoped. The quizzes were like wtf (got a terrible grade on them lol). Imagine getting fired at a job because you don't know what a "seam" is. "Do you know what a "seam" is? Cool, because I don't! => FIRED!!!"
Profs [my rankings on how good teachers]:
S: Rishab Nithyand, Sirium Pemmaju
A: Elizabeth Kleiman
B: Steve Goddard, Hans Johnson, Octav Chipara
C: Denise Schiezel
Pretty self-explanatory.