Principles of Computing (Part 1)
Description
When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan .
- Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
- Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.
About 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…
Frequently asked questions
There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.
When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan .
- Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
- Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.
About 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.
Created by: Rice University-
Taught by: Scott Rixner, Professor
Computer Science -
Taught by: Joe Warren, Professor
Computer Science -
Taught by: Luay Nakhleh, Associate Professor
Computer Science; Biochemistry and Cell Biology
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from your peersConnect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
CertificatesEarn official recognition for your work, and share your success with friends, colleagues, and employers.
Rice University Rice University is consistently ranked among the top 20 universities in the U.S. and the top 100 in the world. Rice has highly respected schools of Architecture, Business, Continuing Studies, Engineering, Humanities, Music, Natural Sciences and Social Sciences and is home to the Baker Institute for Public Policy.Syllabus
WEEK 1
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.
10 videos, 9 readings expand
- Video: Principles of Computing
- Video: Introduction
- Video: Required Python Knowledge
- Reading: Required Python Knowledge
- Video: Coding Style and Standards
- Reading: Guidelines for Coding Style
- Video: Python Modules
- Reading: Importing Custom Modules in Python
- Video: Machine Grading
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: 2048
- LTI Item: Assignment Submission History
- Reading: Math Expressions for Homework
- Reading: Math Notes on Functions
- Reading: Practice Mini-project - Solitaire Mancala
- Video: CodeSkulptor
- Video: Saving in CodeSkulptor
- Video: Beyond CodeSkulptor (15:12) (optional video)
- Reading: Python Development Environments
Graded: Homework 1
Graded: Assignment: 2048 (Merge)
WEEK 2
Testing, plotting, and grids
This week, we will explain the importance of testing. We will also learn to solve problems with grids.
5 videos, 4 readings expand
- Video: The Importance of Testing
- Video: Testing
- Reading: Building Tests for Python Programs
- Video: Plotting
- Video: Grids
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: Math Notes on Grid Representations
- Reading: Practice Activity - Testing Solitaire Mancala
Graded: Homework 2
Graded: Assignment: 2048 (Full)
WEEK 3
Probability, randomness, and objects/references
This we will learn how to use probability and randomness to solve problems.
6 videos, 6 readings expand
- Video: The Importance of Probability
- Video: Basics of Probability
- Video: Expected Value
- Video: Monte Carlo Methods
- Video: Objects and References
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: TTTBoard Class
- Reading: Math Notes on Basic Probability
- Reading: Math Notes on Expected Value
- Reading: Practice Mini-project - Nim (Monte Carlo)
- Reading: Practice Activity - The Monty Hall Problem
Graded: Homework 3
Graded: Assignment: Tic-Tac-Toe (Monte Carlo)
WEEK 4
Combinatorics, generators, and debugging
This week, we will learn how to use combinatorics to solve problems.
6 videos, 5 readings expand
- Video: The Importance of Combinatorics
- Video: Enumeration
- Video: Permutations and Combinations
- Video: Combinatorics and Password Breaking
- Video: Debugging
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: Math Notes on Enumeration
- Reading: Math Notes on Permutations and Combinations
- Reading: Practice Activity - Analyzing a Simple Dice Game
- Reading: Practice Activity - Counting Game States
Graded: Homework 4
Graded: Assignment: Yahtzee
WEEK 5
Counting, growth of functions, higher-order functions
This week, we will explain the importance of counting in solving complex problems.
6 videos, 7 readings expand
- Video: The Importance of Counting
- Video: Counting and Sums
- Video: Functions: Finding the Max
- Video: Higher-order Functions
- Video: Plotting Statement Counts
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: BuildInfo Class
- Reading: Math Notes on Arithmetic Sums
- Reading: Math Notes on Logarithms and Exponentials
- Reading: Math Notes on Growth Rates of Functions
- Reading: Practice Activity - Modeling the Growth of Functions
- Reading: Practice Activity - The Case of the Greedy Boss
Graded: Homework 5
Graded: Assignment: Cookie Clicker
Share your review
Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.