EECS 280

280

FA15, Prof. Juett

The major necessities to programming in C++ were covered very well in lecture. The Euchre project, though notoriously awful, was not that bad and kind of enjoyable if you had paid attention to lecture. Polymorphism, header files, data abstraction, and basic data structures were covered very well. Linked lists and templating were not covered all too well unless you attended the review sessions or office hours where they went more in depth with explanations. The weekly labs were not elaborated on much; they were basically just assigned and expected to be done. If you didn't start early the projects could seem overwhelming but the workload was not overly taxing. The exams could be tricky but most coding exams are hard because no one is used to handwriting code. The exams were reasonable and didn't have any curveballs on them.

FA15, Prof. Olson

This class was incredibly enjoyable. The material taught in lecture is directly implemented in projects throughout the course. There were an enormous number of office hours to get help pretty much anytime during the week. The projects were fun and non-trivial for the most part. I really enjoyed this course! I felt the exams were fair, although they required a lot of studying. I think it was taught well and covered important topics relating both to learning the content, but also overall success in the field. Definitely start the projects early. They are not too difficult, but require TIME. Same goes for the exams. If you attend lecture and work the projects out without too much help, you'll be prepared for the exam, but you'll still need to review everything to prepare adequately. It again, is not hard, but rather time consuming.

FA14, Prof. DeOrio

The course is very well structured and teaches you a lot about the basics of programming. You get a lot of experience dealing with larger programming projects. All the lectures are recorded and the project specs are clear and detailed. If you attend DeOrio's section for lecture, it's very crowded at the beginning of the semester, and students end up having to sit on the floor. Even though lectures are recorded, it's definitely better to attend lecture in person and actually work through the practice exercises on the lecture slides. Discussion, however, isn't really necessary.

FA14, Prof. DeOrio

I developed a foundational understanding of programming in C++. If you find programming fun, you will like the projects. Projects challenged me to truly understand the content being taught. I had to be committed in order to finish my projects and spent a lot of time on them, which I found enjoyable and rewarding. The autograder gives limited feedback which means it is difficult to tell what the score will be for each project. Even after my final projects' grades were revealed, I still did not know what I could have done to fix my code. Lectures can be dry sometimes, and the information can be tricky to understand without coding practice. Go to office hours, they help so much when you have project questions. Exams require studying beyond just completing the projects. Most people think they are difficult.

FA14, Prof. DeOrio

The projects helped to solidify the material taught in the lectures! Dynamic memory was taught well, and I feel that I understand a lot more about how C++ works from this course. The exams were a headache - sometimes they were difficult to understand what they were asking. Start early on projects and go to office hours. The projects can range in difficulty depending on how comfortable you are with the topics: recursion, memory management, and whatnot. Office hours can have really long lines when the projects are due, so beat the line and go early! Lastly you might want to consider not having a project partner. You learn more that way!

FA14, Prof. DeOrio

I liked learning the initials of how to program well, and the fundamental structures behind programming. The entire class was taught well. And I think most of the projects were done well. I did not like that they didn't give enough information on writing test cases, and that some of the projects had very difficult test cases to pass. TEST as much as possible, and learn by yourself, through other source/asking questions to the GSIs and IAs on how to test well.

FA14, Prof. Mihaelcha

I really enjoyed the material taught in this course. The projects are challenging, but really fun since they involve making card games or calculators. I didn't like my professor very much. Although it was clear that she's a C++ goddess, she couldn't get very good examples across. Most kids did not bother coming to class. But… go to every class, the lecture recordings are meant for review. GO TO DISCUSSION - the labs are really easy and you'll get them all done super quickly at discussion. Plus your IA might have some exam tips for you.

FA14, Prof. Mihaelcha

I did not enjoy much about this course. I would feel elated for about 5 seconds when I was able to fix a bug by myself, and then it would go back to hating everything about each project. Make no mistake, I like programming. I loved ENGR 101 and I loved coding projects I have done on my own since this class. I just did not like being in this class. I did not think this course was taught. It wasn't taught poorly, it wasn't taught well, it just wasn't taught. Projects were completed by putting in lots of hours on your own, and using Stack Exchange and IAs/Piazza to solve your bugs. I gained little from attending lecture, and discussion was only helpful in that sometimes your IA would give you hints about the project. I don't understand why this class didn't also have a lab like ENGR 101 because for me personally, it was much easier to understand what code would do by seeing a GSI write something and execute it on the spot, rather than seeing snippets of code in a PowerPoint presentation and then being told what the expected output would be. Of all my years in school, this was absolutely the most poorly structured class in regards to teaching/supporting learning I have ever taken. This class is really all about how much time you are willing/able to put into it. If you have a lot of time, you will probably do well. If you don't, you probably won't. Unless you already have a strong C++ foundation (ENGR 101 is not a strong C++ foundation), you probably won't get much out of lecture.

WN15, prof. unspecified

The course is a very good foundation for the higher EECS courses. And even though they say that it's not a programming course, coding is a big part of the projects so it's a great way to brush up your C++ skills. The team of the instructors, GSI's and IA's is great. The instructors are amazing and there is help available almost anytime of the day. There are office hours seven days a week and the instructors respond to Piazza questions pretty quickly. This course is not an easy one. It requires a lot of knowledge of C++ so if you are not comfortable with C++, I would recommend getting comfortable with it before you take this course. Also, START YOUR PROJECTS EARLY! Don't wait until the last minute because there is a lot of debugging involved.

FA14, prof. unspecified

I enjoyed learning about and implementing data structures, memory management and gaining experience with object-oriented programming. This course gave a thorough introduction to programming. While there are introductory programming classes at UMich (the most popular being EECS 183 and ENG 101) EECS 280 helps give students the foundation for future CS courses. The EECS 280 staff is also incredibly helpful; before each exam there is a 12 hour review session on the weekends. Attendance to these review sessions aren't mandatory, but if you lack confidence in any of the material covered, I would advise attending the sessions. I would say that there's nothing about this class that I didn't enjoy. The material could've been more challenging to better prepare students for EECS 281, but that's my only critique of the course. It's important that you spend a good amount of time on the projects, and I would advise against partnering up with someone unless you're sure that you and your partner will put an equal amount of effort into completing your projects. Make sure to learn how to use GDB-it will be especially useful for Project 3 (Euchre) and it’s just something you should know to make debugging easier.