Principles of Computing (Part 2)
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 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 w…
![](https://static-2.springest.com/uploads/product_image/image/8634/nano-principles_of_computing_final.jpg)
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 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.
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
Searching and Data Structures
This week, we will explain the importance of searching. We will also explore various data structures and learn about inheritance.
11 videos, 6 readings expand
- Video: Introduction
- Video: The Importance of Searching
- Video: Generators
- Video: Stacks and Queues
- Video: Inheritance
- Video: Grid Class
- Video: Grid search
- Video: Mini-project Video
- Reading: Mini-project Description
- LTI Item: Assignment Submission History
- Reading: Math Notes on Growth Rates of Functions
- Reading: Math Notes on Grid Representations
- Reading: Math Notes on Breadth-First Search
- Reading: Practice Activity - Sorting strings
- Reading: Practice Activity - Working with Distance Fields
- Video: CodeSkulptor (optional video from our previous class)
- Video: Saving in CodeSkulptor (optional video from our previous class)
- Video: Beyond CodeSkulptor (optional video from our previous class)
Graded: Homework 1
Graded: Assignment: Zombie Apocalypse
WEEK 2
Recursion
This week, we will explain the importance of recursion.
7 videos, 5 readings expand
- Video: The Importance of Recursion
- Video: Recursion
- Video: Binary Search
- Video: Visualizing Recursion
- Video: Recurrences
- Video: Reading Files
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: Math Notes on Recurrence Relations
- Reading: Practice Activity - Recursion
- Reading: Practice Activity - Binary representations for numbers
- Reading: Practice Activity - Visualizing recurrences
Graded: Homework 2
Graded: Assignment: Word Wrangler
WEEK 3
Trees
This week, we will explain the importance of trees. We will also explore how to set up game trees so that we can efficiently search them.
6 videos, 6 readings expand
- Video: The Importance of Trees
- Video: Lambda
- Video: Trees
- Video: Illustration of Trees
- Video: Minimax
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: TTTBoard Class
- Reading: Math Notes on Trees
- Reading: Math Notes on Minimax
- Reading: Practice Activity - Nim (Tree search)
- Reading: Practice Activity - Drawing trees
Graded: Homework 3
Graded: Assignment: Tic-Tac-Toe (Minimax)
WEEK 4
Modeling, Assertions, and Invariants
This week, we will explain the importance of modeling. We will also explore how to use assertions and invariants to ensure that our models are always consistent and correct.
7 videos, 4 readings expand
- Video: The Importance of Modeling
- Video: Assertions
- Video: Invariants
- Video: Modeling
- Video: Software Development
- Reading: The Basics of the Fifteen Puzzle
- Video: Mini-project Video
- Reading: Mini-project Description
- Reading: Math Notes on Invariants
- Reading: Practice Activity - Solitaire Tantrix
- Video: What is Algorithmic Thinking?
Graded: Homework 4
Graded: Assignment: The Fifteen Puzzle
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.