subject
Intro

Principles of Computing (Part 1)

 with  Scott Rixner, Joe Warren and Luay Nakhleh
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.

Syllabus

Required Python knowledge, coding standards, and machine grading
This week, we will introduce you to the structure and standards of the Principles of Computing courses.

Testing, plotting, and grids
This week, we will explain the importance of testing. We will also learn to solve problems with grids.

Probability, randomness, and objects/references
This we will learn how to use probability and randomness to solve problems.

Combinatorics, generators, and debugging
This week, we will learn how to use combinatorics to solve problems.

Counting, growth of functions, higher-order functions
This week, we will explain the importance of counting in solving complex problems.

27 Student
reviews
Cost Free Online Course (Audit)
Pace Upcoming
Institution Rice University
Provider Coursera
Language English
Certificates Paid Certificate Available
Hours 7-10 hours a week
Calendar 5 weeks long
+ Add to My Courses
Learn Data Analysis udacity.com

Learn to become a Data Analyst. Job offer guaranteed or get a full refund.

Advertisement
75+ Hour Free Coding Course flatironschool.com

Get started with Ruby & JS curriculum online with all-day instructor help.

Advertisement
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

27 reviews

Write a review
6 out of 6 people found the following review useful
2 years ago
David Wallace completed this course.
Disclaimer: The course has been split into a Part 1 and Part 2; I've completed Part 1 only at this point. Building on their first course, Introduction to Interactive Programming in Python (IIPP), this class aims to set a higher standard of programming and conceptual understanding (of the role of certain math topics in Read More
Disclaimer: The course has been split into a Part 1 and Part 2; I've completed Part 1 only at this point.

Building on their first course, Introduction to Interactive Programming in Python (IIPP), this class aims to set a higher standard of programming and conceptual understanding (of the role of certain math topics in programming, in particular) for students.

The class differs from IIPP in several respects. As mentioned above by Gregor, almost immediately students are introduced to math concepts like combinatorics, probability, and growth rates (although the topics are treated at a relatively elementary level; the professors assured us that a more detailed discussion of the role of math in algorithms would commence in "Algorithmic Thinking 1 & 2). As opposed to IIPP, programs are now machine graded and must meet exacting programming guidelines (designed to mimic real-world restrictions). In addition, the projects are more ambitious than in IIPP, and require a more robust programming repertoire.

The highlight of the course are, as seems to be with this specialization, the projects themselves. The themes are fun and engaging and don't at all dilute the rigor of the concepts themselves. The homework problems are were personally more of an annoyance for me, but the do serve to cement concepts, practice coding, and prepare one for the projects.

My one real frustration with the course is that the instructions for the projects were not nearly as clear as in IIPP (although, in their defense, the projects in PoC were more complex). However, the instructions were just clear enough to get me through completion.

So far I've learned a great deal regarding object oriented coding in python, list comprehensions, manipulation of data structures, and much, much more. The course is well worth taking and well worth the money.
Was this review helpful to you? YES | NO
8 out of 8 people found the following review useful
2 years ago
Kilderkin is taking this course right now, spending 10 hours a week on it and found the course difficulty to be medium.
A big step up from IIPP. Does a great job of starting to transition students from introductory, highly guided projects toward more independent research and experimental exploration of the scientific underpinnings of coding with Python. The homework (== quiz from IIPP) continues to build on the lectures in preparation Read More
A big step up from IIPP. Does a great job of starting to transition students from introductory, highly guided projects toward more independent research and experimental exploration of the scientific underpinnings of coding with Python. The homework (== quiz from IIPP) continues to build on the lectures in preparation for the weekly mini-project. There is no longer any UI component to the assignment, instead to focus is on problem solving methodologies using mathematics, statistics, and probability. I havent taken a math course in 20 years, so I had to spend a couple of extra hours per week reading and sometimes researching the material, but ultimately nothing required any truly advanced math beyond high school trig or first year college level math. Overal I thought the supporting materials to be way more applicable and helpful than they were in IIPP, but missed having Greiner's dedicated lectures on common gotchas and pitfalls. The mysterious, highly elusive Wong was thankfully replaced by Luay who has a great sarcastic, understated sense of humor that really shines in each week's introductory lecture (which streams at a much higher production value than the remaining videos). Testing plays a prominent role in this series, and to a lesser degree, graphing. Im hoping I can keep up with Part 2, as some of the materials really require some dedication to fully understand! There is enough material presented that you could probably take this course twice and still learn a ton of new things on the second pass.
Was this review helpful to you? YES | NO
4 out of 4 people found the following review useful
3 years ago
profile picture
Gregor Ulm completed this course.
On the mathematical side, Principles of Computing covered arithmetic sums, basic functions in order to describe growth rates, basic probability and a bit of combinatorics. Some assignments focused on algorithms, including standard topics like searching and sorting. Breadth-first search was covered in a rather amusing a Read More
On the mathematical side, Principles of Computing covered arithmetic sums, basic functions in order to describe growth rates, basic probability and a bit of combinatorics. Some assignments focused on algorithms, including standard topics like searching and sorting. Breadth-first search was covered in a rather amusing assignment where you had to write logic for ‘humans’ that would make them avoid slowly moving ‘zombies’. Further, minimax was covered in a disappointingly short assignment that was merely a variation of a previous one, an AI for Tic-Tac-Toe. The assignments themselves were the highlight of the course, though, covering the logic behind games such as 2048, Cookie Clicker, Yahtzee, the just mentioned Tic-Tac-Toe (Monte Carlo and tree search), and the 15-puzzle. Overall, they helped solidify the concepts.

In my opinion it is one of the best-designed MOOCs in computer science you can take.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
2 years ago
Danika Chrunik is taking this course right now.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
2 years ago
Nikita Indik completed this course.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
2 years ago
Pharmacist.noha is taking this course right now.
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
9 months ago
profile picture
Alex Ivanov audited this course.
Was this review helpful to you? YES | NO
5 months ago
profile picture
Raphael Favero completed this course.
Was this review helpful to you? YES | NO
3 years ago
Dhawal Shah completed this course, spending 5 hours a week on it and found the course difficulty to be medium.
Was this review helpful to you? YES | NO
2 years ago
Rafeh Qazi is taking this course right now.
Was this review helpful to you? YES | NO
2 years ago
Bhuvan N completed this course, spending 10 hours a week on it and found the course difficulty to be medium.
Was this review helpful to you? YES | NO
a year ago
Mark Henry Butler completed this course.
Was this review helpful to you? YES | NO
Was this review helpful to you? YES | NO
11 months ago
profile picture
M S completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Ines completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Rafael Prados completed this course.
Was this review helpful to you? YES | NO
2 years ago
Félix Pérez completed this course.
Was this review helpful to you? YES | NO
a year ago
profile picture
Cory Rewcastle completed this course.
Was this review helpful to you? YES | NO
2 years ago
Timothy O'leary dropped this course.
Was this review helpful to you? YES | NO
2 years ago
Anirudh Jayaraman completed this course.
Was this review helpful to you? YES | NO
a year ago
Colin Khein completed this course.
Was this review helpful to you? YES | NO
10 months ago
profile picture
Eric Colon completed this course.
Was this review helpful to you? YES | NO
3 months ago
Zhiyao completed this course.
Was this review helpful to you? YES | NO
10 months ago
profile picture
Stephanie Ochoa completed this course.
Was this review helpful to you? YES | NO
9 months ago
profile picture
Natalia completed this course.
Was this review helpful to you? YES | NO
a year ago
Zach completed this course.
Was this review helpful to you? YES | NO

Write a review

How would you rate this course? *
How much of the course did you finish? *
Review
Create Review