From past end-of-semester evaluations:
This is the best thing that happened to me here. The course structure is great, the problems were well chosen. I not only learnt to solve challenging problems but also enjoyed collaborating with others. I recommend this course to anyone who loves CS or just want to test her love for CS :-p .

Programming and Problem Solving is by far the best course I have taken during Fall 2011. Professor Kenneth Ross is an effective communicator and did an amazing job of coming up with problem definitions which were challenging and bought out the best in terms of creativity and problem solving from all the participants. Every class discussion provided something new to be learnt.

Excellent course. I would recommend this course to any one who asks for my opinion. One of a kind discussion classes, and the problems that Prof. Ross chooses are amazing.

Prof Ross creates an incredibly dynamic classroom where the discussion is completely student-driven, but remains directed and guided. I've never seen anything like it in a technical class before.

The way he takes our discussion towards the right directions and exploits our capability is really incredible.

It is the most unique course in the department. It focuses on approaching problems from multiple perspectives. It is well planned and encourages team work and sharing of ideas as opposed to a ``patent'' like competitive attitude which is encouraged in the real world.

Professor Ross is the most professional and organized instructor I've had at CU. He manages the classroom very well takes attendance and draws all students into the discussion. Most importantly he minimizes distractions -- openly condemning folks who use laptops for personal use and engage in side bar conversations. Very well led class. This class is also unique in that the students do more than 70% of the talking. The instructor is a facilitator forcing the students to engage him and others in class. ...The class is the best class I've taken at Columbia and I highly recommend it to others.

This course really was quite excellent. One of the best run courses I have taken at Columbia: the timing for everything was excellent and nothing ever felt rushed. The course takes work and it takes imagination but being able to have the courage to try new things and apply an engineering mind to the problems pays off even when they aren't successful. As close to a sandbox based class as I have seen.

This course gave a lot of benefits and I think rates as one of the most positive and memorable experiences of my degree. Much of what we did is applicable to problem solving in a greater context this course helped strengthen these skills significantly. It is great to have a course in computer science in which person to person communication is so important. Among other things I was impressed by how Prof. Ross moderated the discussions and gave people personal attention and memorized all their names. ...In summary a lot of work a lot of stress but a lot of fun.

Certainly the best course I have taken at Columbia. PPS encourages one to keep thinking of ways to beat your competition and this is what makes it unique. The fact that we get to code our ideas makes this course especially attractive for those who wish to improve their Java programming skills. Having to come up with your own strategies makes this course very interesting and students are encouraged to try out different approeaches even if it doesn't yield the best results. The open discussions in the bi-weekly classes definitely facilitates the evolution of new ideas as students need not worry about their own plans being copied by other teams -- in fact one wishes that his her ideas are borrowed by the participants as credit will be given to them. Prof. Ross does a great job of communicating each student's ideas to the class often developing them into something more useful for the problem and some times comes up with his own strategy as well. The rotating teams makes PPS a bit of a lottery but I think making people work with those they are not familiar with is an added attraction of the course. The course does involve a lot of work mostly because of its adversarial nature. This is perfectly fine as the instructor does warn the students about this in the first class and it doesn't seem like too much work when you're enjoying it. ... I really wish there were more courses which are so open-ended.

One of the few classes that I would voluntarily sit down and think about hypothetical situations ...for hours on end

This course is one of the best computer science courses offered in the department. I say this after completing my bachelors and masters in CS at Columbia. I found the material challenging but fun and problems required creative as well as technical problem-solving. I enjoyed the discussion aspect of the class as well and got much more out of this than many lecture style courses. This is by far the best CS course that I have taken across my 5 years of studying Computer Science. It takes your programming skills to a whole new level and does wonders for your overall confidence. This is a course that helps you learn not only if you are really into programming but draws you in with its magnificent course structure and intense group dynamics it makes believers out of cynics. It has really been a great experience.

Prof. Ross has literally kept the spirit of problem solving alive. He is truly inspirational.

Spectacular class. One of the best i've ever experienced.

Prof. Ross led the class well. He managed to integrate the students' ideas together, while also not getting bogged down with them. This enabled us to make decidedly forward progress during each session.

This is easily one of the best computer science classes that I've taken. It should be made compulsary for all CS majors. The learning that you get from applying all the knowledge that one has accumulated over the years is very fulfilling. Excellent course, excellent TA, excellent instructor.

This was a great and very different course. I can't say that I learned a lot of new knowledge, but I did learn how to think about problems differently and use new approaches to solve Computer Science problems. It was a lot of fun, too, being mostly a discussion class and involving many games. The slightly competitive aspect was good, and the professor didn't let it get out of hand either.

It's a challenge. But it's worth [it].

fantastic course. great student interaction, great class discussion. a pleasure to attend class.

The first course in my life where I've attended more than half the classes... in fact I attended all of them. and enjoyed every minute of it.

The small class size and that too of hand-picked students really made the discussions to be of very high quality. And the idea of having different team members for different problems was fantastic. It was fun interacting with so many bright and motivated people in a single semester.

A wonderful class with a very different format. Being able to discuss solutions and devise one's own is far superior to having everyone implement cookie-cutter solutions based on a textbook. I was able to learn quite a bit about devising algorithms, far more than I've learned from any other class in that regard.

Hands down the best CS course I've ever taken. Incredibly challenging and rewarding, I think everyone should take this course. It is the culmination of three years of preparatory CS courses.

By far the most unique course offered by the C.S. department. A lot of work but worth every minute. Great class.

One of the best CS courses I have taken.

This was a very interesting class and it really refined my problem solving skills. This was one of the best classes I took at Columbia.

A very different course that is an asset to the computer science department.

This was the best course I have ever taken in the Columbia Computer Science department. The small class size was very important towards this end.

This is one of the best courses at the CS department. Wonderful for higher-level students who are serious about computer science. A lot of work, though, but as it should be.

One of the best courses Ive taken at this university. This is what all CS courses should be like. ... people more concerned with creativity ... are going into this department and that this is the type of class that they need. The small class size and discussion-based setup made this class the one of the only intellectually challenging cs classes out there. You don't have to be creative to memorize algorithms or hack kernel code, but these open ended problems excited an interest and an enthusiasm that I've never seen in almost any other class.

It's unfortunate that I can't select answers better than excellent for this class. This class was easily my favorite class through all 4 years of school here. It was fun and it was very challenging. The work was VERY heavy, but was reasonable considering the nature of the class.

This is a class that ALL serious computer scientists should consider taking. It's a class that focuses more on ideas than on the implementation. It's also a class where teamwork is key and good communication is vital.

Most CS courses are about learning concepts. Those classes teach you those concepts by beating them into your head in lectures, then in textbooks then in homework assignments. This class makes it much easier to learn new material because it's learned in a way that all material should be learned, through experience and application. All new concepts are discovered and learned by the students themselves rather than be told what to learn by the professor.

Professor Ross was an excellent professor. He taught the class the way it should have been. He maintained his role as a mediator more than as a teacher which was important to the structure of the class. He allowed us to think during class (something unheard of in most classes) and to come up with our own solutions and ideas. I would hope he teaches future offerings of this class.

Class size was beyond comparison. Having a small class is a wonderful thing. ... To be able to give each student this much attention can only be a good thing. The class size for this particular class is important. ... The purpose of the class is to allow for discussions during class time. Having a class of more than 25 would make that difficult for many students like myself. Having fewer people in the class makes me more comfortable and gives me the chance to speak my mind. Something I have not had in ANY class up to this point.

I would and I will recommend this class to all of my computer science friends.

Ken Ross 2012-09-17