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.