Chevron Left
Back to Principles of Computing (Part 1)

Learner Reviews & Feedback for Principles of Computing (Part 1) by Rice University

524 ratings
90 reviews

About the Course

This two-part course builds upon the programming skills that you learned in our Introduction to Interactive Programming in Python course. We will augment those skills with both important programming practices and critical mathematical problem solving skills. These skills underlie larger scale computational problem solving and programming. The main focus of the class will be programming weekly mini-projects in Python that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games. In part 1 of this course, the programming aspect of the class will focus on coding standards and testing. The mathematical portion of the class will focus on probability, combinatorics, and counting with an eye towards practical applications of these concepts in Computer Science. Recommended Background - Students should be comfortable writing small (100+ line) programs in Python using constructs such as lists, dictionaries and classes and also have a high-school math background that includes algebra and pre-calculus....

Top reviews


May 07, 2019

This course is very good for beginners and intermediate coders. Gives important basics about computer science from 3 very good professors.


May 16, 2018

very wellmade assignments! that goes a long way!\n\nplotting seemed a bit superflous and not much learned.\n\nThank you professors!

Filter by:

1 - 25 of 86 Reviews for Principles of Computing (Part 1)

By Peyman P

Dec 18, 2017

You may have felt pretty good about your coding skills after finishing IIPP, the pre-requisite to this course. Get ready for a big dose of humility in this course. You will do a whole lot more thinking to produce fewer lines of code. You will come out of this course a more thoughtful programmer and will be writing code that is better-structured and more efficient than what you were used to. The path to this end is not an easy one. Bring along plenty of patience and be ready to let your mind explore.

The instructors make a distinction between computer scientists and coders. If you are planning to pursue a formal education or career in computer science , you will find this course indispensable. If you are a hobbyist-coder, there will be times when you will question why you are continuing with this course. Hang in there. The intellectual reward alone will make it worthwhile.

By Jeremy L

Feb 07, 2018

I'll start by saying that PoC Part 1 is a good course. I took it after completing IIPP Parts 1 and 2. If you are coming from IIPP, you'll find the organization of PoC familiar: there are weekly lectures, a few practice problems, a quiz, and a mini-project. I found this course far more difficult than either of IIPP offerings. In part this is unavoidable since the concepts are more complex and the problems students are asked to solve are correspondingly more challenging. The course introduces various mathematical/statistical concepts that are useful in programming. I had to spend time elsewhere online reviewing these concepts. If you are not familiar with the concepts, I suspect you'll have to do the same as the professors spend little time explaining them. As for the coding: if you took IIPP, you'll know that the professors provided a step-by-step guide for the mini-projects. For the most part, these guides have been jettisoned in PoC. Unless you have programming experience beyond IIPP, you'll likely have a hard time writing the required programs. The only programming experience I had was IIPP, and I found the programming problems in PoC difficult. But at the same time I am a much better programmer now because I was forced to learn lots of stuff on my own in order to get my mini-projects right (I spent lots of time on coding forums and reading through the official Python documentation). If you take PoC after IIPP, you'll also find that the quizzes (now called homework) may well take a considerable amount of time to complete when compared to IIPP. One annoying thing on these quizzes is the "test case" question at the end: the professors ask students to find test cases to check for bugs in various programs. This is doubtless an important skill, but they spent almost no time discussing methods for developing test cases, and if you get the question wrong on the quiz, you'll never know what the correct answer is and hence you don't really learn much from your mistake. Overall, I learned a lot and enjoyed the projects. As I say, PoC is more challenging than IIPP. I enjoyed the class enough that I've just enrolled in PoC Part 2.

By Mark K

Aug 23, 2018

I feel as though the class lectures are very easy to follow however the homework/mini projects are very difficult to implement. After taking this course I feel discouraged and question my ability to learn and understand Python.

By Aynur Z

Dec 28, 2017

Excellent course. I tried several similar courses on Edx and Coursera platforms and found this as the most efficient. The lectures are clearly stated and always accompanied by reading material, which makes it easy to repeat the material.

Practical tasks are very interesting and help to develop practical skills.

It is a wonderful opportunity to learn Python and fundamentals of computing. I highly recommend this course to everyone interested in this subject.

By Saksham N

May 07, 2019

This course is very good for beginners and intermediate coders. Gives important basics about computer science from 3 very good professors.

By Jayadev

May 16, 2018

very wellmade assignments! that goes a long way!

plotting seemed a bit superflous and not much learned.

Thank you professors!

By Samer N E

Jun 03, 2018

What makes this course unique is that you write and execute Python code right in your browser - the greatest pedagogical value of this for me is that execution slowed down when my programs became too inefficient. It taught me the importance of efficiency on a small scale, and I became mindful of efficiency early on with further assignments. This is a great habit to pick up early on.

My only trouble with the course is that if one's code is too inefficient, Owltest will not grade the assignment. This becomes very frustrating when you cannot make your program more efficient, and I personally had to resort to intentionally writing malfunctioning code which Owltest would take, for the sole purpose of avoiding a 0.0 grade.

By Lianna

Apr 09, 2018

In general, I enjoyed this course. However, I found the homework and projects significantly more difficult versus the IIPP course, yet the lecture videos were of the same level. As a result, I spent a lot more time per week to complete this class. Maybe a few more lecture videos would or more guidance on creating test cases would help beginner programmers such as myself?

Either way, I look forward to the next course!

By Peter V

Jun 27, 2016

It's quite a step up from the level op IPP. Assignments are also a bit more difficult but still very enjoyable puzzles to solve.

By Brett A

Feb 09, 2017

Too much material to get done in time frame given for full-time working parent.

By Amit m

Jul 02, 2018

Very good course, I enjoyed it and love the chemistry/humor among all three professors. . I learned a lot and was exposed to many aspects of programming that as a self-taught programmer didn't know much about. The programming assignments were challenging. I only wish we had solutions to the assignments after the course was over (similar to the EDX platform, so we can see how to implement the solutions much more succinctly.

By Siwei L

Nov 29, 2017

Great course!!! This is the third course I took in this specialization. As always, the professors are nice and the course material is very useful! The mini projects may seem a little challenging in comparison to the previous courses, but with the help of the forum, the mentors and the professors, we'll finally be able to finish them. All in all, I highly recommend this course to people who want to learn python.

By Maksim U

Feb 22, 2019

I have never had any programing experience before taking this specialization from Rice. I love it! At times I have troubles doing things from the first time, but I never get stuck forever and still learn a lot. It is a bit on the difficult side for me(with zero knowledge before the previous courses), but I enjoy it.

By Santhosh C

Sep 07, 2020

This is a great opportunity for students to improve their coding skills. I am grateful to the professors. The only downside is that the instructions for the mini-projects were not very clear and it took some effort to figure out what was being asked. Otherwise this is a good and I would strongly recommend.

By Ryan D

Feb 07, 2018

Feels like my grasp of the subject matter is becoming a bit more complete. You may need to do quite a bit of further reading outside of the class material to complete the projects, but it is still very doable with effort for someone at the beginner level.

By Zsolt P

Feb 19, 2017

I highly recommended course if you already have a good basic Python knowledge! It teaches a lot about how to be more efficient in your thinking and gives your mind a really good workout. It thought me quite a lot of new techniques and way of thinking.

By Abirvab D

Dec 27, 2018

Definitely one of the best courses I have taken introducing Computer Science fundamentals while using Python as the language of choice. I highly recommend to anyone looking to learn CS concepts while picking up a very popular higher level language.

By Murali K H G

May 05, 2020

Absolutely enjoyed this course. Given that I am from a Mechanical engineering background, I found the problems given to be ideal in developing our ability to write programs and think optimally. I am looking forward on taking similar courses.

By Ivana L

Sep 29, 2017

Very well structured course. The concepts are explained in detail, the videos are of great quality. The assignmenets give good mix of challenge together with not being overly difficult and discouraging. One of the best courses I've ever had.

By Melih B A

Jan 30, 2020

It was a great course, I learned a lot about Computing throughout this course. It needs a little analytical mindset but if you work hard enough, I believe it wont be a problem.

By 周玮晨

Jul 08, 2018

Much harder than "Introduction to Interactive Programming in Python", more frustration and sense of accomplishment. I don't like TEST!

By Ian B

Jun 12, 2017

Yay, no more peer grading! This course felt easier than intro2. Less fiddling with your programs and more about concepts.


Apr 23, 2020

i enjoyed a lot, the syllabus in this course is really useful, and the application that we see in our day to day life

By Frank V

Feb 28, 2019

Very good course, with challenging projects. These projects help you also to improve your Python skills.

By 李彦霖

Jan 31, 2018

Very nice courses, I've learnt a lot. Thanks for all the teachers for their preparations and lectures.