Rice University - Principles of Computing (Part 2)
- Offered byCoursera
Principles of Computing (Part 2) at Coursera Overview
Duration | 16 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Official Website | Explore Free Course |
Credential | Certificate |
Principles of Computing (Part 2) at Coursera Highlights
- 80% started a new career after completing these courses.
- 60% got a tangible career benefit from this course.
- 50% got a pay increase or promotion.
- Earn a shareable certificate upon completion.
Principles of Computing (Part 2) at Coursera Course details
- This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects 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 2 of this course, the programming portion of the class will focus on concepts such as recursion, assertions, and invariants. The mathematical portion of the class will focus on searching, sorting, and recursive data structures. Upon completing this course, you will have a solid foundation in the principles of computation and programming. This will prepare you for the next course in the specialization, which will begin to introduce a structured approach to developing and analyzing algorithms. Developing such algorithmic thinking skills will be critical to writing large scale software and solving real world computational problems.
Principles of Computing (Part 2) at Coursera Curriculum
Searching and Data Structures
Introduction
The Importance of Searching
Generators
Stacks and Queues
Inheritance
Grid Class
Grid search
Mini-project Video
CodeSkulptor (optional video from our previous class)
Saving in CodeSkulptor (optional video from our previous class)
Beyond CodeSkulptor (optional video from our previous class)
Mini-project Description
Math Notes on Growth Rates of Functions
Math Notes on Grid Representations
Math Notes on Breadth-First Search
Practice Activity - Sorting strings
Practice Activity - Working with Distance Fields
Homework 1
Recursion
The Importance of Recursion
Recursion
Binary Search
Visualizing Recursion
Recurrences
Reading Files
Mini-project Video
Mini-project Description
Math Notes on Recurrence Relations
Practice Activity - Recursion
Practice Activity - Binary representations for numbers
Practice Activity - Visualizing recurrences
Homework 2
Trees
The Importance of Trees
Lambda
Trees
Illustration of Trees
Minimax
Mini-project Video
Mini-project Description
TTTBoard Class
Math Notes on Trees
Math Notes on Minimax
Practice Activity - Nim (Tree search)
Practice Activity - Drawing trees
Homework 3
Modeling, Assertions, and Invariants
The Importance of Modeling
Assertions
Invariants
Modeling
Software Development
Mini-project Video
What is Algorithmic Thinking?
The Basics of the Fifteen Puzzle
Mini-project Description
Math Notes on Invariants
Practice Activity - Solitaire Tantrix
Homework 4