Ok I know this class was a bit contentious and it wasn't perfect but I actually liked it???? I think 90% of this had to do with Prof Ross's Australian accent. I cannot confidently say I would have the same feeling if Prof Ross did not have an accent. But I thought his lectures were clear and he had a good command of the material. I thought the homeworks helped to enforce the lectures and they always reflected what was taught in lecture, there were never any surprises except for when we had to use formulas in the textbook but Prof Ross made it clear that was the case. The TAs were kinda bad tbh, there was one standout in my opinion and the rest were hit or miss. As long as you stay on top of lecture and homeworks, you'll be fine. I learned a lot of really relevant skills - before this class I didn't know how tf to route db calls through a web app but that's literally what you do for the front end portion of the project and that's also literally how web apps are built!!! Pretty cool. The only downside was yeah if you don't have prior experience with flask + html (I did not) then you're going to be looking up a lot of stuff if you choose to do the front end portion of the project. But it's worth it because now I feel like I have an infinitely larger appreciation for how this stuff actually works. Prof Ross is not the most approachable professor ever but he is helpful if you go to his office hours for questions or chat him on Piazza.
Do not take this course with Ross unless you are willing to do the extra work to understand his disorganized lectures/teaching-style. He is not the best lecturer and lots of textbook reading and youtube video watching had to supplement his sub-par efforts, which is personally not my way of learning since I like to have clear lecture notes. Still managed to do well-ish in the course, but I feel like the drain on my time was not worth it if there are better profs out there. Also do not do the coding path for the project if you don't have the most comfortable with terminal and web dev stuff!!!! They do not really give you a clear tutorial of how to connect a front-end html web page to your back-end database, and it was really hard to figure out how to connect the two in my opinion.
You would be wise to take this class. Professor Ross is very well-acquainted with the material. Lectures are well-organized and follow the textbook. The material is pretty tough, but you are given the tools to learn it. Topics covered are extremely relevant to software engineering today. Professor Ross is a slightly awkward guy who definitely doesn't play favorites. I'm not sure he particularly likes any students. One TA was a star. His name was Wangda and his response time on Piazza was incredible. The other TAs were okay. They tended to give away pset answers rather than help. Bonus tip: you should probably buy the textbook because the PDF online has lots of errors. The Eastern/Indian knockoff edition is only $30. Bonus bonus tip: Ross video records all his lectures. But you can't access them unless you go sit in the stinky TA room with a TA and watch them.
As you can read on CULPA and the SEAS Oracle, students who have taken this course generally have lots of positive things to say about it, most of which are absolutely true. However, because the course places such a huge emphasis on collaboration and the interchange of ideas, what you get out of it varies greatly with the competence and creativity of your fellow classmates. For some reason, Prof. Ross seems convinced that the course "self-selects" smart people, that those enrolled in it are naturally highly critical/creative thinkers. This may have been true for past offerings of this course, but I did not find it to be the case when I took it. Out of 22 students, maybe 8 regularly produced creative, original ideas and could competently implement them. Most of the others were pretty average, while a few people were just plain dumb, lazy, or both. This may sound harsh, but when you find yourself teamed up with one or (gasp) two of these people and have to think through an inventive problem solution, code it, and write the final report all by yourself, you *will* feel your urge to kill rising. Also bear in mind that all members of a group receive the same grade, and there is no formal peer review process. I still recommend this course; it has several important merits that others have mentioned, and what you learn in it will stay relevant long after you forget the intricate details of distributed transactions or lambda calculus. If you put in the work, you will walk away content unless, like me, you don't suffer fools gladly. If you don't put in the work, you will still do relatively well at the expense of those who do.
This is a spectacular class! It's officially limited to 30, and there's a chance you'll have to compete somewhat for a spot in the class, but that's rare - my class had 23 or so people at the beginning, and ended up at 21 for the bulk of the term. Unlike most CS classes, Programming & Problem Solving is a discussion-based class. There are four projects across the term (each covering about 3 weeks). There are 5 discussion classes per problem (in which the class demos their latest solutions and discusses their approaches), and one class where each group presents their report. Groups are randomly determined, but you can request to work with particular students (but you can only work with each person on ONE project). The groundwork for the problem-solving has been done for you - the TA provides the class with a simulator program and the interface for your code to use, so you can dive in and typically write a simple/naive solution to the problem in twenty minutes or so, leaving you most of the project time to create and implement more complex solutions - there is almost no setup work. The class works on full disclosure and full sharing - you can take any code you find online and use it, as long as you say you did, and you can rip off your classmates as much as you want, as long as you credit them for what you ripped off. One of the great things about this class is that it brings you into a group of some of the best minds currently studying at the school. It will have you thinking differently about all sorts of problems. The other great thing about the class is how I always left the discussions wanting to work on the project - unlike most classes where the assignments are fairly arbitrary, you have a great deal of leeway in the deliverable, and typically you have something you want to try. I would recomend this class to anybody who feels comfortable with a discussion- oriented problem-solving case study. Also, I would reccomend Professor Ross' databases course - he is an excellent professor.
Professor Ross has a cool Australian accent. That's pretty much what kept me going to the classes, though he does teach mostly out of the book. Either you go to the lectures and understand the material, or you read the book. You can take your pick. Also, the first half of the semester covers the more interesting stuff, while the second half can get way over your head. Make sure not to slack off mid-semester. You're probably better slacking off for the first month or so.
If you have a hard time to follow in his class don't waste you time going to Ross' office hour. He is going to tell you to do the odd exercises in the book. After he will wait for you to leave. He is not very helpful and he does not make the class interesting. Too bad that some of us have to take his class.
The information is useful, but the class is boring. Professor Ross tends to give way too much homework much of which isn't necessary for understanding the material.