Chevron Left
Back to Computer Science: Programming with a Purpose

Learner Reviews & Feedback for Computer Science: Programming with a Purpose by Princeton University

1,144 ratings

About the Course

The basis for education in the last millennium was “reading, writing, and arithmetic;” now it is reading, writing, and computing. Learning to program is an essential part of the education of every student, not just in the sciences and engineering, but in the arts, social sciences, and humanities, as well. Beyond direct applications, it is the first step in understanding the nature of computer science’s undeniable impact on the modern world. This course covers the first half of our book Computer Science: An Interdisciplinary Approach (the second half is covered in our Coursera course Computer Science: Algorithms, Theory, and Machines). Our intent is to teach programming to those who need or want to learn it, in a scientific context. We begin by introducing basic programming elements such as variables, conditionals, loops, arrays, and I/O. Next, we turn to functions, introducing key concepts such as recursion, modular programming, and code reuse. Then, we present a modern introduction to object-oriented programming. We use the Java programming language and teach basic skills for computational problem solving that are applicable in many modern computing environments. Proficiency in Java is a goal, but we focus on fundamental concepts in programming, not Java per se. All the features of this course are available for free. People who are interested in digging deeper into the content may wish to obtain the textbook Computer Science: An Interdisciplinary Approach (upon which the course is based) or to visit the website for a wealth of additional material. This course does not offer a certificate upon completion....

Top reviews


May 13, 2019

Beautiful course. I am a software developer with 10+ years of experience in programming and have never realized depth of actual MATH behind all that I do. Thank you Robert Sedgewick, you are the BEST.


Aug 6, 2023

This was a very great course to learn a powerful programming language, techniques used. This has changed my life for better and am looking forward to a career change into the programming world.

Filter by:

1 - 25 of 332 Reviews for Computer Science: Programming with a Purpose

By Vasile D

Feb 19, 2020

Course states "Beginner Level".

Video tutorials are indeed for beginners.

Assignments have nothing in common with the word "beginner".

You must do an assignment that is 1000 times harder than what you learned from the video tutorials and the other lecture supplements.

More than that you have limitations to doing the assignments (you can't use array in this one... conditionals and loops in that one... etc)

The video tutorial teaches you a basic fundamental that a tyre is round and that you put it on your car.

But for you to pass the assignments you must build a runflat tyre that goes 1000 km/h for an infinite ammount of time and do that without using your arms or legs...

By Gilad B

Jul 3, 2019

Good course on the whole. Quizzes and assignments often assume knowledge that has not yet been introduced or made clear. Checkers for assignments often require more than is officially stated (such as no "magic numbers", which are not mentioned anywhere in the course materials or assignment directions, and API's that are not specified for given questions). As such, I needed an iterative process of uploading an assignment, seeing why it failed, reverse engineering what the requirements are, and then fixing and uploading again.

By Andrew S

Mar 4, 2020

First lecture was ok , but from 2nd lecture forward you encounter only algorithmic assignments. I do understand that algorithms are part of programming but not when the video tutorials just teach you basic language fundamentals. I see this course useful for people that have been programming for a few years not someone that is learning to program.

By Adriana N E

Apr 6, 2020

Not beginner friendly

By Julie C

Sep 15, 2019

I was a total and utter programming newbie (a smidge of self-taught Python, and that's it). I cannot BELIEVE what I can do now in Java. This course takes a LOT OF PATIENCE and tons, I mean TONS of perseverance. Google and Stack Overflow will be your new best friends as you try to piece together what to do at times. But it's amazing what you learn if you stick with it. Interesting topics, and good lectures, helpful readings, and the programs you write are really challenging and cool. I can't wait to take the second one!

By Vinod S

May 14, 2019

Beautiful course. I am a software developer with 10+ years of experience in programming and have never realized depth of actual MATH behind all that I do. Thank you Robert Sedgewick, you are the BEST.

By Bhavik

Mar 13, 2019

Excellent course, inface the best I found on any MOOC platform for a complete beginner to Java. Loved it. Would appreciate more coding assignments though. Only week 1 & 2 have those.

By Glen F

Aug 15, 2019

Excellent course, Thank you Drs Sedgwick and Wayne.

That said, this is not a beginners course: the assignments are not easy, but they teach you a great deal; there is very little 'hand-holding' and you can expect to spend a good bit of time on Wikipedia in order to understand what you are trying to do before you get to writing any code. That is when you learn what the word 'Purpose' means in the title - many subject area are covered in the practice code assignments i.e. real world examples. Also, it is easy to get to a (frustrating) place where your programs work on everything but the auto-grader(A-G), and A-G feedback is sparse. Be sure to look at the exercises in the online book as there are many program examples/solutions that teach you a lot of programming techniques often useful in completing the practice programming assignments.


Jun 16, 2021

Can't wait to get into the second part of the course. The best programming course ever provided for free of cost. The techniques used are backed by mathematical thinking. It is just awesome.

By Lompar M

Sep 22, 2019

I liked this course very much. Good materials and perfect lecturers. Good structured and well explained material and interesting exercises ranging from very beginner to challenging.

By Kirill N

Apr 12, 2020

I've taken this course with intention to be able to do graded exercises on further Algorithms I and Algorithms II. I have experience with Python, but thought that this would be great additional enrichment.

Little did I know that this course would give me more than I bargained for, even some insight into algorithm complexity. Graded exercises, while not exactly too hard, did provide me with some challenge and made me want to solve them, and experience with Java will definitely prove me useful in the future even beyond the scope of these courses. Ah, did I also mention that ALL THIS COMES FOR FREE? On the platform where you often can't even do quizzes without buying the entire course?

To sum up, definitely looking forward to all the next courses in the series. This must be one of the best courses I've ever had on this platform.

By Binliu Z

Jan 28, 2020

1.Easily for Java beginner like me.

2. Much of math problems, try to develop mathematical models, using the computer to address math problems is funny.

3. Creative exercises are just like interview questions, also need more assignments or projects.

4. The very helpful FAQ of assignment from that I've learned many more things.

5. The auto-grader of assignment is very useful, including check style and test. Using reversing engineering to meet the demand and get grade 100 became one of my goals.

By Sherry C

Sep 20, 2020

THIS COURSE OFFERS VERY LITTLE SUPPORT FROM THE DASHBOARD, ESPECIALLY FROM THE PROFESSORS. Depending on which dashboard, the professor's last comment is at least 1 month old, if not older. As you progress through the course, more/most of the students drop off, because no one is helping each other out and the teachers have abandoned the students. The concepts introduced in the course is not too hard. But the execution of how to solve for a problem into actual code is oftentimes glossed over. If you do not know java already or some other kind of programming language, this course is not for you. Sometimes, the solution calls for you to use an obscure method/code that is not listed in the API list. The other problem is the homework. Most of the homework is worded convolutedly, vaguely (at times), and require the solution to be written in a way that is not taught until much later on in the class. Some information is scattered in the FAQ. Some of the information is not given at all. You have to hope that someone in the dashboards talks about it. Most of the homework involves complex math theories or concepts. If math is not your strong suit, you might want to reconsider. NOT AN INTRODUCTION COURSE.

By Francisco J R A

Aug 5, 2020

I can't give a full review cuz I only was here for a couple of days, Maybe it is good, but it is far from basic.

Though they do start with basic concepts, they don't explain how and why , but later the ask you to use them.

By William G

May 7, 2020

This course is incredibly rewarding, intellectually as well as practically. Teaching algorithms and explaining how they relate to the pharmacy industry or to physics is very enriching.

If you aim to get 100 pct. in all programming exercises you should expect to go way past the eight hours recommended for most assignments. At least this was true in my case. At one stretch I used an entire week to get through the assignments. Having a master's from a competitive economics programme in mathematical finance I can easily say that this course was up there with respect to a proper challenge. I am happy to have problems which, like these, are not trivial nor immediately solvable.

The autograding of the assignments is unbelievably well made. I learnt a lot from type checking to style checking, and although I don't yet feel fluent in Java, at least I now have a much deeper appreciation for compiled languages. I would recommend this to any first timer in Java like myself.

I bought the book for this course. That was not necessary for anything but curiousity.

By Deleted A

May 21, 2020

I am a high school senior preparing major in CS in college, I have watched a lot of java instructions, including Duke-solve problem with programs, which I also highly recommend. Although this course called itself a "course for beginners", it is not easy at all and I don't think beginners can finish those graded programmings!!! (Even though I've learned a lot in java, I still encounter problems in this course.) However, if you want to take challenging courses, this one is perfect, not only because of the lecture but also those "challenging" but interesting coding tests.

By Tim R

Sep 6, 2020

Very poor course. Basic fundamental concepts are not explained well and you are left to learn them on your own through errors and failing assignments. The lecturer often says "Of course you already know this..." and assumes a baseline level of knowledge of other subjects that is not mentioned anywhere as a prerequisite. Many things are presented in a confusing and unhelpful way - and when repeated to an actual Software Engineer are not consistent with how Java is used in the real world.

By Jovonne B

Oct 26, 2020

Not for beginners at all. The assignments are for those whom have strong background in math and computer programming experience.

By Jack Y

Apr 10, 2021

This is a great way to learn computers. Professor Sedgwick, thank you very much!


Jun 19, 2021

This review is really honest and based on my opinion and my personality trait.

This course is not suited for someone, like me, who hates math and did not do well with math.

Sure, the programing is a true basic I understand the most and find with how it runs, but the reading material and assignment mostly have to do something with mathematic, which really hindered my interest, focus, and always made me feel burned out. Because at the time I am writing this review I am currently in week 3, I still can not do all the exercises in the reading material. It is hard for me. My knowledge of math is just a middle school, to be honest. It stops me from being productive and studying all the questions. And finally, I feel depressed. So, I decided to unenroll in this course.

Again, for someone who has a knowledge of math and likes it. I, sure, believe that you will be fine.

The only reason I find the first week easy is because it has less math than the second week.

Uunfortunately, I assume programing is out of my league. If only it involves less math, that would be lovely.

By 许楷

Mar 5, 2019


By S. U

Oct 16, 2021

Challenging, but superficial. The lectures do a good job of giving big-picture overviews, but gloss over actual coding techniques and concepts. The weekly assignments are *miles* harder than what was discussed in the lectures. Often you will have no clue what the assignment is actually asking you to do. I completed the course by sheer determination, but I don't really know that I have learned anything that will stick, and it was a slow, painful process. I feel like adding more instruction video to really go over the concepts would help make this the best course on Coursera. As it is, this is a wasted opportunity.

By randy s

Jul 2, 2021

I absolutely loved this course! I started off taking Algorithms ! from Sedgewick/Wayne, but my inexperience in Java made it slow going. I started this course as a way to catch up, and it TOTALLY helped me accomplish that goal.

There are so many things about this course that are excellent: it is comprehensive, it starts from the beginning and moves methodically, it has TONS of exercises, sample code, solutions, etc., it has legitimately challenging applications that really require you to think logically in addition to learning programming.

All around, this is one of the best learning experiences of my life.

By Ajeet A

Jul 17, 2020

Amazing Course. I had dabbled in other languages prior to this but this gave me a much deeper understanding from the most basic concepts to more advanced ones later in the course.

By Saleh H

Jun 5, 2019

Great course with emphasizing on computational thinking.