Overview
Unlock Unlimited Opportunities: Get 50% Off Your First Month of Coursera Plus
This twopart 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 miniprojects 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 strategybased 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 highschool math background that includes algebra and precalculus.
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, higherorder functions
 This week, we will explain the importance of counting in solving complex problems.
Taught by
Scott Rixner, Joe Warren and Luay Nakhleh
Tags
Reviews
4.6 rating, based on 30 Class Central reviews
4.7 rating at Coursera based on 582 ratings
Showing Class Central Sort

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 programm…

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 homewor…

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 search…

I had great anticipation for this course after completing their Introduction to Interactive Programming, and was rather disappointed. While I understand that there is a need to remove scaffolding so that participants become more independent, the i…

如果要评价这门课，最恰当的应该是这门课主讲Scott在课程结束时的一句话：“It is difficult but fun. In fact, things that are worthwhile often are difficult."
这门课还有一些细节让人觉得很心动，这像极了某些经典游戏里的体验。比如每次的homework之前都会有一些很touching的句子，而且跟当周的课程内容很贴切。像第一周是关于如何为Cookie Clicker这个游戏选择最佳策略的，那周homework前的句子就是："I arise in the morning torn between a desire to improve the world and a desire to enjoy the world. This makes it hard to plan the day." E. B. White  author of Charlotte's Web

This course continues the high standard set by the first two courses in the sequence. Once again, the lectures and exercises provide just the right amount of practice to make the project of the week attainable. I cannot recommend this course highly enough. I've learned a lot about Python specific topics but I've also learned a lot about math. I had heard about Monte Carlo method but didn't really know how it was implemented. I'm moving on to the fourth course in the sequence from Rice University today. Get started today  you'll be glad that you did.








