Spring 2020 - [spring 2020 covid online quarter] For me, I didn't take PIC 10A so I had to find my footing at first. One of the first topics is pointers, which are really confusing but push through it! Don't give up because it gets better and way easier after that. Quizzes: started out too hard but Prof Chu listened to feedback from us and made them more reasonable. She emphasizes theoretical questions on these. Homework: One assignment per week, I thought it was really reasonable and tbh I found them too easy compared to the rest of the level of the class. Tends to be a lot of code already written for us. Midterm/Final: Did on Gradescope, was overall a very fair and good experience. Thumbs up for adapting to online format, thumbs up for listening to students and adjusting the class, thumbs up for organized/punctual lectures and always answering our questions when something's unclear. While to some extent the class was just business, let's learn the content and do the class, the prof and TA reminded us they still saw us as humans with lives during this time and were very sensitive to that. The real sice was the TA, Jennifer, who, besides having the most balanced mindset towards school (which I loved), just straight siced us the entire quarter. The time and effort that she and the prof put into this class for us was evident and just big thanks. Pay attention and I don't think it would be hard to get an A.
Fall 2016 - He sorta teaches the theory by teaching how to re-create the types of concepts in question. For example one assignment is something to do with creating your own custom linked list class. All the assignments are basically that, creating your own custom version of a built-in type. However we never get to really actually implement these classes, which is much more important from a practical standpoint than being able to re-code them and understand what's happening beneath the hood. If you can't drive a car it doesn't really matter whether or not you understand what's going on beneath the hood. Also, this professor is sort of a bitter man. He constantly complains about unfairness in the professional industry and occasionally in the academic. Which on it's own I wouldn't mind, but he sort of takes it out on the students. I had a few incidents where I was graded unfairly, and he even admitted to it, but refused to change my grade because ...some story about how he once got short-changed in an academic journal. As if him getting short-changed justifies him being unfair towards me. Furthermore, his tests are unfair and poorly written. If you interpret the question to be asking for a certain thing but he had in mind a different thing- even though the question is objectively ambiguous- say goodbye to a ton of freebee points. Finally, he is constantly talking about interview preparation and industry applications, but I think he fails severely in these goals. No interviewer asks you to create a custom map class, or to define a class that uses bitwise operators (we spent like a month on binary and bitwise operations). They ask you to do something where the map class might just be the optimal thing to implement. Like I said before, you don't get enough of the actual implementation in this course. In sum, I could see how people would like him, as he is quite enthusiastic and exposes us a lot of new things and concepts. It is difficult though, which would be worth it definitely, however I feel the subject matter is misguided and contradicts the goals he preaches. It is often non-applicable to interview and industry settings. Again, you might be able to tell the driving test person all about how a car works, but if you can't drive the car, you fail. I also feel that this professor has a large chip on his shoulder and replicates that unfair environment for his students, which is not right.. at all. Also, his lecture slides are terrible.
Winter 2023 - Just like 10A, Professor Ding provided very helpful study guides for his tests, so you are able to get a good score if you understand how those codes work. That being said, while I understood the code, I could never write it myself. But honestly, that didn't really matter because the class is very conceptual. The second half of the class has some homework assignments that don't require coding at all, and ask you purely about the concepts. I loved this, because thats the part I understood, but I don't know how well it actually taught me how to code. So take that as you will.
Spring 2018 - The homework is strictly graded on criteria based to knock points off. Same with the midterm and final; just small things to knock your grade down. She doesn't care about learning, but rather her point rubric and her little "good coding practice" rules. The teacher is cold, unengaged and uninteresting. Take this class with any other teacher. I got an A- in pic 10A, and I put in a good amount of work for this class.
Spring 2016 - Haberland was pretty good. He genuinely seems like he cares about student learning. You have to do reading and take a online quiz before each class (really easy, not too time consuming), but that genuinely helped me keep up with the class. Average of 2-3 online quizzes per week, usually with 2-4 attempts allowed. There are also pop quizzes in discussion, which wasn't all that bad ( but that also means you have to go to discussions) Depending on the TA, the discussions really did complement the lecture. Basically he ensures you keep up with lectures, so no one falls behind. He has slides, so that helps. His lecture is someone disorganized some times, but usually it's not that bad. The exams were pretty easy, its open notes. The first exam was on the computer, which was not bad( s long as the code does what the problem asks for, you get 100%) The 2nd midterm and final were harder and by hand, but they were not necessarily super hard, maybe a little tricky. Basically, Haberland is bae and I recommend his class!!!