Rice University - Principles of Computing (Part 1)
- Offered byCoursera
Principles of Computing (Part 1) at Coursera Overview
Duration | 19 hours |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Principles of Computing (Part 1) at Coursera Highlights
- This Course Plus the Full Specialization.
- Shareable Certificates.
- Graded Programming Assignments.
Principles of Computing (Part 1) at Coursera Course details
- 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.
Principles of Computing (Part 1) at Coursera Curriculum
Required Python knowledge, coding standards, and machine grading
Principles of Computing
Introduction
Required Python Knowledge
Coding Style and Standards
Python Modules
Machine Grading
Mini-project Video
CodeSkulptor
Saving in CodeSkulptor
Beyond CodeSkulptor (15:12) (optional video)
Required Python Knowledge
Guidelines for Coding Style
Importing Custom Modules in Python
Mini-project Description
2048
Math Expressions for Homework
Math Notes on Functions
Practice Mini-project - Solitaire Mancala
Python Development Environments
Homework 1
Testing, plotting, and grids
The Importance of Testing
Testing
Plotting
Grids
Mini-project Video
Building Tests for Python Programs
Mini-project Description
Math Notes on Grid Representations
Practice Activity - Testing Solitaire Mancala
Homework 2
Probability, randomness, and objects/references
The Importance of Probability
Basics of Probability
Expected Value
Monte Carlo Methods
Objects and References
Mini-project Video
Mini-project Description
TTTBoard Class
Math Notes on Basic Probability
Math Notes on Expected Value
Practice Mini-project - Nim (Monte Carlo)
Practice Activity - The Monty Hall Problem
Homework 3
Combinatorics, generators, and debugging
The Importance of Combinatorics
Enumeration
Permutations and Combinations
Combinatorics and Password Breaking
Debugging
Mini-project Video
Mini-project Description
Math Notes on Enumeration
Math Notes on Permutations and Combinations
Practice Activity - Analyzing a Simple Dice Game
Practice Activity - Counting Game States
Homework 4
Counting, growth of functions, higher-order functions
The Importance of Counting
Counting and Sums
Functions: Finding the Max
Higher-order Functions
Plotting Statement Counts
Mini-project Video
Mini-project Description
BuildInfo Class
Math Notes on Arithmetic Sums
Math Notes on Logarithms and Exponentials
Math Notes on Growth Rates of Functions
Practice Activity - Modeling the Growth of Functions
Practice Activity - The Case of the Greedy Boss
Homework 5