Fall 2020 - Todd is a great professor! He explains concepts very clearly, and does lots of examples to make sure we understand the material. There were 6 homework assignments in the class, and each one we had about 5-7 days to do it. While some of the problems could be challenging, all were very doable. It was especially nice that there were office hours held by TA's everyday of the week, making it easy to drop in to ask questions. This course also has LA's, which I really liked. Overall, I'd really recommend taking this course with Todd if you have no CS experience because it made me really enjoy coding.
Fall 2017 - I had zero coding experience prior to UCLA, so I had a difficult time choosing between CS31 and CS97. I ended up taking 97 (obviously) and I'm actually really glad I did. Professor Millstein does a great job of creating a strong base of coding knowledge and clearly explaining more difficult concepts. The class was Python-based and covers recursion, arrays, loops, lambda functions and map/list/reduce. While participation isn't mandatory during lectures, I'd recommend answering questions in class to get the most out the course. CS31 was pretty easy because I took 97 first, and having two languages (Python and C++) as a freshman looks great on a resume, so I'd definitely recommend taking it if you're feeling unsure. Plus, some of the concepts you learn in 97 aren't actually taught until CS32 or upper division CS classes, so it's cool to get a sneak peek so early in the year. Definitely would recommend taking CS97!
I HIGHLY recommend Millstein for CS 131. I very thoroughly enjoyed the class. I might even say it's been my favorite so far. Compared to what the class would have been and compared to other CS classes, Millstein makes CS 131 pretty easy and very pleasant. My only complaint would be that he spent way too much time on ML because he absolutely loves that language. The first half of the class (homeworks 1-4 and all of the midterm) is based on OCaml (i.e. ML). Then the next two homeworks are based on Java and the last one is Prolog. His exams don't involve a lot of coding problems, and the few that are given are all pretty easy. What makes his exams a bit tough is that they are largely multiple choice. The multiple choice questions on the midterm were pretty tricky, especially because a lot of them are like "Circle all that apply," but I think the final was better for me. My tip for answering them would just be not to second guess your answer. If you know that one is right, but you also think another one MIGHT be right just because it sounds like it could be, just don't circle it. Be SURE that it's right, especially on those "Circle all that apply" questions. However, his exams are certainly not that difficult, but as a result, the averages for the midterm and final were pretty high (in the 80's). Homeworks were very enjoyable and doable. There are 7 HW's total and there was only 1 or 2 that were pretty challenging. He gives you about a week to finish each one, but most of them can easily be done if you start about 3 days ahead of time. A good majority of the class got nearly full points on their homework assignments. There is also one language exploration report that we did on C#, but it's only a maximum of 2-3 pages and you write it with a partner. Like someone else said, he probably gives you full points as long as you follow instructions. Just to give you an idea of the grading, I received nearly full points on all of my homework assignments, got a few points below the average on the midterm, and did fairly well above average on the final. I ended up getting an A. Make sure you don't mess around on the homework though because he incorrectly graded one of my homeworks, giving me only half the points, and that was enough to put me down to an A-. (He immediately fixed it though). Millstein isn't the perfect teacher though. He canceled a few of the lectures and many of his office hours, which may be irritating to people who prefer professors that are always there for his students. However, I will say that he DOES care for his students and he is concerned with your learning, but I guess he's not 100% reliable in terms of presence. Also, he does seem quite dry and stiff in lecture most of them, aside from a few jokes he makes about other languages that he considers inferior to ML, but overall, he's a pretty nice guy and his interactive teaching style (typing examples on his computer, kind of like Smallberg) makes up for it. All in all, I'd say definitely don't miss the chance to take CS 131 with Professor Millstein.