EECS 281

FA15, Prof. Darden

This course has a lot of phenomenal content. Everything that you need for a job interview that involves coding will be learned in this class. It's a difficult class, but it makes you much better at C++. I didn't enjoy all of the hours I spent debugging my code. They said for every hour you spend coding, plan to spend two hours debugging. With that, get started as early as possible on your projects so you won't be debugging on the last day. Getting the correct output on your projects is only the first step. At this point you are far from complete. A lot of times, you'll have to restructure large chunks of your code to make it faster, use less memory, etc. This is extremely time consuming.

WN15, Prof. Paoletti

This course is pretty intensive and a big time commitment. However, it's also the most helpful programming course, probably the course where the most important information is learned. After this class, you'll be a lot better prepared for interviews. The lectures are important, but also somewhat dry. The same applies to the discussions. Particularly at the beginning, the lectures cover material already taught in 280 or 203, so it's not incredibly exciting. Once the new material is taught, however, the lectures become more interesting. Be prepared to dedicate a lot of time to this class. Also, it's incredibly important that you do not procrastinate. These projects can't be completed on the due date, unlike previous classes.

WN15, Prof. Paoletti

I really enjoyed the projects. The autograder gives the final grade and shows the result of the test cases (the amount of time your program ran, the memory usage, whether your program's result differs from the correct result, and how many points you got from it). Like EECS 280, the course is flexible, which means you can attend any lecture you want and go to any discussion as long as there is room. Also, lectures are recorded. Too much information in one semester, leaving me with a broad understanding for a lot of things. Exams were next to impossible to prepare for. Multiple choice questions are practically trivia questions depending on how hard the test maker decide to make it. Projects are time demanding, but the GSIs and IAs can help if they see you are stuck and trying your best to fix it.

WN15, prof. unspecified

In this class you will finally get to put the time complexity and graph theory material you learned in EECS 203 to use. This is something that I enjoyed because it made me think about programming in a different way. I enjoyed utilizing the C++ standard library, struggling to make my code more efficient and understanding the differences between data structures and when to use them. I also enjoyed the freedom given to students (you have to make your own header files!) and how there were multiple ways to code a project in an efficient manner. The exams were hard - I would've appreciated more practice exams and maybe even review sessions similar to the ones held for EECS 280 students. Generally speaking, I think the course material was taught well - no criticisms there. The EECS 281 staff is also the best. Start the projects early, study hard for the exams, attend lectures - maybe even revisit some of your 203 notes (although it's not really necessary for most of the class). The most difficult part of the class for me was the latter part where we focused more on graph theory, so if graph theory isn't your strong point be mindful of its importance in the class.

WN15, prof. unspecified

The projects were long and tedious - but they helped you learn everything really well. Find other 281 people, because my favorite part was bonding with other 281 students as we struggled with the projects. Lectures were boring - I ended up falling asleep in most of the lectures. I would have liked a better presentation of the material. START EARLY. The projects are 10% getting the right answer and 90% making it compute fast enough. Office hours are hit or miss - Paoletti is pretty helpful.

FA14, Prof. Paoletti, Prof. Darden

I really enjoyed the projects, as you were really building a tool from the ground up by yourself. It was a great opportunity to think about things like efficiency. Everything they taught was extremely useful in job interviews. Paoletti and Darden were great professors, and Darden was really funny. Slides were very useful! It was very time consuming, as projects took a very long time. Heavy workload, so I recommend starting everything as soon as they assign it. Start early so you can figure out where you're stuck early and can go to office hours before they get super crowded. I didn't find discussion particularly useful, but lecture is.