Principles of Computing (Part 1)
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Principles of Computing (Part 1)
This course is part of Fundamentals of Computing Specialization
35,081 already enrolled
Included with
Learn more
Ask Coursera
584 reviews
584 reviews
Skills you'll gain
Tools you'll learn
Details to know
5 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 5 modules in this 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.
This week, we will introduce you to the structure and standards of the Principles of Computing courses.
What's included
10 videos9 readings1 assignment2 app items
10 videosβ’Total 104 minutes
- Principles of Computing β’13 minutes
- Introductionβ’7 minutes
- Required Python Knowledgeβ’13 minutes
- Coding Style and Standardsβ’12 minutes
- Python Modulesβ’7 minutes
- Machine Gradingβ’11 minutes
- Mini-project Videoβ’5 minutes
- CodeSkulptorβ’11 minutes
- Saving in CodeSkulptorβ’10 minutes
- Beyond CodeSkulptor (15:12) (optional video)β’15 minutes
9 readingsβ’Total 90 minutes
- Required Python Knowledgeβ’10 minutes
- Guidelines for Coding Styleβ’10 minutes
- Importing Custom Modules in Pythonβ’10 minutes
- Mini-project Descriptionβ’10 minutes
- 2048β’10 minutes
- Math Expressions for Homeworkβ’10 minutes
- Math Notes on Functionsβ’10 minutes
- Practice Mini-project - Solitaire Mancalaβ’10 minutes
- Python Development Environmentsβ’10 minutes
1 assignmentβ’Total 20 minutes
- Homework 1β’20 minutes
2 app itemsβ’Total 120 minutes
- Assignment Submission Historyβ’60 minutes
- Assignment: 2048 (Merge)β’60 minutes
This week, we will explain the importance of testing. We will also learn to solve problems with grids.
What's included
5 videos4 readings1 assignment1 app item
5 videosβ’Total 34 minutes
- The Importance of Testing β’4 minutes
- Testingβ’5 minutes
- Plottingβ’7 minutes
- Gridsβ’8 minutes
- Mini-project Videoβ’11 minutes
4 readingsβ’Total 40 minutes
- Building Tests for Python Programsβ’10 minutes
- Mini-project Descriptionβ’10 minutes
- Math Notes on Grid Representationsβ’10 minutes
- Practice Activity - Testing Solitaire Mancalaβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 2β’30 minutes
1 app itemβ’Total 60 minutes
- Assignment: 2048 (Full)β’60 minutes
This we will learn how to use probability and randomness to solve problems.
What's included
6 videos6 readings1 assignment1 app item
6 videosβ’Total 56 minutes
- The Importance of Probability β’5 minutes
- Basics of Probabilityβ’10 minutes
- Expected Value β’13 minutes
- Monte Carlo Methodsβ’7 minutes
- Objects and References β’12 minutes
- Mini-project Videoβ’10 minutes
6 readingsβ’Total 60 minutes
- Mini-project Descriptionβ’10 minutes
- TTTBoard Classβ’10 minutes
- Math Notes on Basic Probabilityβ’10 minutes
- Math Notes on Expected Valueβ’10 minutes
- Practice Mini-project - Nim (Monte Carlo)β’10 minutes
- Practice Activity - The Monty Hall Problemβ’10 minutes
1 assignmentβ’Total 20 minutes
- Homework 3β’20 minutes
1 app itemβ’Total 60 minutes
- Assignment: Tic-Tac-Toe (Monte Carlo)β’60 minutes
This week, we will learn how to use combinatorics to solve problems.
What's included
6 videos5 readings1 assignment1 app item
6 videosβ’Total 68 minutes
- The Importance of Combinatorics β’5 minutes
- Enumerationβ’10 minutes
- Permutations and Combinationsβ’14 minutes
- Combinatorics and Password Breaking β’16 minutes
- Debuggingβ’19 minutes
- Mini-project Videoβ’5 minutes
5 readingsβ’Total 50 minutes
- Mini-project Descriptionβ’10 minutes
- Math Notes on Enumerationβ’10 minutes
- Math Notes on Permutations and Combinationsβ’10 minutes
- Practice Activity - Analyzing a Simple Dice Gameβ’10 minutes
- Practice Activity - Counting Game Statesβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 4β’30 minutes
1 app itemβ’Total 60 minutes
- Assignment: Yahtzeeβ’60 minutes
This week, we will explain the importance of counting in solving complex problems.
What's included
6 videos7 readings1 assignment1 app item
6 videosβ’Total 62 minutes
- The Importance of Counting β’4 minutes
- Counting and Sumsβ’14 minutes
- Functions: Finding the Max β’10 minutes
- Higher-order Functions β’11 minutes
- Plotting Statement Countsβ’14 minutes
- Mini-project Videoβ’8 minutes
7 readingsβ’Total 70 minutes
- Mini-project Descriptionβ’10 minutes
- BuildInfo Classβ’10 minutes
- Math Notes on Arithmetic Sumsβ’10 minutes
- Math Notes on Logarithms and Exponentialsβ’10 minutes
- Math Notes on Growth Rates of Functionsβ’10 minutes
- Practice Activity - Modeling the Growth of Functionsβ’10 minutes
- Practice Activity - The Case of the Greedy Bossβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 5 β’30 minutes
1 app itemβ’Total 60 minutes
- Assignment: Cookie Clickerβ’60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Offered by
Explore more from Software Development
- Status: Free TrialR
Rice University
Course
- Status: Free TrialR
Rice University
Course
- Status: Free TrialR
Rice University
Course
- Status: Free TrialD
Duke University
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
81.19%
- 4 stars
14.01%
- 3 stars
2.90%
- 2 stars
0.51%
- 1 star
1.36%
Showing 3 of 584
Reviewed on Jun 11, 2017
Yay, no more peer grading! This course felt easier than intro2. Less fiddling with your programs and more about concepts.
Reviewed on Apr 5, 2016
Amazing. Way better than my community college CS courses.
Reviewed on May 15, 2018
very wellmade assignments! that goes a long way!plotting seemed a bit superflous and not much learned.Thank you professors!
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you canβt afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, youβll find a link to apply on the description page.
More questions
Financial aid available,
