Chevron Left
Back to Principles of Computing (Part 1)

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

581 ratings

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


Invalid date

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


Invalid date

Really great course, understanding deeper some principles of computing. Great staff too.

Filter by:

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

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 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 7, 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 Thomas S

Sep 7, 2020

The guys at Rice University have put together one of the best python specializations I've tried on Coursera. Keep it up guys! POC1 is challenging and takes significant time to complete. You will struggle at times. One recommendation I have if they ever re-work the course, make the project descriptions more clear. I wasted most of the time trying to interpret the instructions or re-doing my work after realizing I interpreted it wrong. I honestly believe I would have complete the projects in less time if they simply showed me a working copy of the final program and instructed to re-create it. Trying to work from code snippets that someone else wrote is a hinderance if instructions are unclear. It's difficult to jump into the middle of someone else's thought process. For those of you thinking of taking this course, I say go for it as long as you have time and are mentally prepared to struggle through portions. With a little tenacity you will make it through and will be happy you did.

By Lianna

Apr 9, 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 Brett A

Feb 9, 2017

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

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 Chaitanya V

Jun 13, 2021

The best thing I like about this course is that it builds concepts one on top of other as if laying bricks for a construction. Each week's project is designed in such a way that one must to use earlier weeks' concepts to be able to solve. That, I believe, is the right way to learn anything.

By Ryan D

Feb 6, 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 Saksham N

May 7, 2019

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

By Jayadev H

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 3, 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 Richie S

Jun 3, 2017

The difficulty of this course is much higher than Intro to Interactive Programming in Python. If you have been out of school for a while, I strongly recommend doing a quick refresher on key math concepts (probability, permutations/combinations, sums) as well as general math notation first. It will save you a ton of headache down the line.

By Ikseon K

Jun 6, 2018

Excellent courses, but a little difficult to solve the problems completely. Lectures don't cover the problems and homeworks fully. This requires self-driven efforts and research regardless of the lectures. Anyway, it is very useful and meaningful. Thanks!

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 Gman

May 30, 2022

While the projects are very interesting and highly relevant, the descriptions, at least for me, can be confusing and difficult to understand from time to time. Some very simple, straight forward concepts are muddled with unnecessary explanations. They should be updated along with the testing sites – Python2 is so outdated and depreciated and python3 is the future.

By Jingtian Z

Mar 29, 2020

I think the lectures are good enough, but sometimes I do not find the connection between lectures and homework. Even so, I am still grateful to the teachers and other students because of their good ideas which make me learn a lot.

By Paras S

Dec 31, 2019

This course was a lot tougher than the first part of this specialization.

By Yee Y X R

Jul 30, 2022

The assignment for Week 5 was devilish, and the testing was brutal. In fact, all the assignments were tough, at least, for me - which was why I took roughly a year to finish this. I lost morale and stopped for a long time.

But it is educational. The coding assignments are tough, but they do provide guidance along the way. And although their testing unit is brutal, it drives home how important testing is, to write good code. It also shows that the teaching team took the time to write up testing units for each assignments, to make sure that the assignments are well graded, and appropriate feedback was able to be provided, as best as they could.

I liked it a lot.

By Amit m

Jul 2, 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 6, 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 Jake K

Oct 24, 2022

I tried to learn how to code many times, but I found it difficult to learn and remember all the rules of Java or C. This course gave me an easy entry into the world of coding that I couldnt get elsewhere. I recommend it to anyone who wants to learn how to code.

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.