Principles of Computing (Part 2)
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Principles of Computing (Part 2)
This course is part of Fundamentals of Computing Specialization
19,812 already enrolled
Included with
Learn more
Ask Coursera
365 reviews
365 reviews
Skills you'll gain
Tools you'll learn
Details to know
4 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 4 modules in 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.
This week, we will explain the importance of searching. We will also explore various data structures and learn about inheritance.
What's included
11 videos6 readings1 assignment2 app items
11 videosβ’Total 104 minutes
- Introduction β’3 minutes
- The Importance of Searching β’2 minutes
- Generatorsβ’8 minutes
- Stacks and Queues β’9 minutes
- Inheritance β’14 minutes
- Grid Classβ’13 minutes
- Grid searchβ’10 minutes
- Mini-project Videoβ’10 minutes
- CodeSkulptor (optional video from our previous class)β’11 minutes
- Saving in CodeSkulptor (optional video from our previous class)β’10 minutes
- Beyond CodeSkulptor (optional video from our previous class)β’15 minutes
6 readingsβ’Total 60 minutes
- Mini-project Descriptionβ’10 minutes
- Math Notes on Growth Rates of Functionsβ’10 minutes
- Math Notes on Grid Representationsβ’10 minutes
- Math Notes on Breadth-First Searchβ’10 minutes
- Practice Activity - Sorting stringsβ’10 minutes
- Practice Activity - Working with Distance Fieldsβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 1β’30 minutes
2 app itemsβ’Total 120 minutes
- Assignment: Zombie Apocalypseβ’60 minutes
- Assignment Submission Historyβ’60 minutes
This week, we will explain the importance of recursion.
What's included
7 videos5 readings1 assignment1 app item
7 videosβ’Total 79 minutes
- The Importance of Recursion β’4 minutes
- Recursion β’15 minutes
- Binary Search β’14 minutes
- Visualizing Recursion β’11 minutes
- Recurrencesβ’12 minutes
- Reading Files β’9 minutes
- Mini-project Videoβ’13 minutes
5 readingsβ’Total 50 minutes
- Mini-project Descriptionβ’10 minutes
- Math Notes on Recurrence Relationsβ’10 minutes
- Practice Activity - Recursionβ’10 minutes
- Practice Activity - Binary representations for numbersβ’10 minutes
- Practice Activity - Visualizing recurrencesβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 2β’30 minutes
1 app itemβ’Total 60 minutes
- Assignment: Word Wranglerβ’60 minutes
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.
What's included
6 videos6 readings1 assignment1 app item
6 videosβ’Total 51 minutes
- The Importance of Trees β’2 minutes
- Lambda β’6 minutes
- Treesβ’13 minutes
- Illustration of Trees β’7 minutes
- Minimaxβ’10 minutes
- Mini-project Videoβ’12 minutes
6 readingsβ’Total 60 minutes
- Mini-project Descriptionβ’10 minutes
- TTTBoard Classβ’10 minutes
- Math Notes on Treesβ’10 minutes
- Math Notes on Minimaxβ’10 minutes
- Practice Activity - Nim (Tree search)β’10 minutes
- Practice Activity - Drawing treesβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 3β’30 minutes
1 app itemβ’Total 60 minutes
- Assignment: Tic-Tac-Toe (Minimax)β’60 minutes
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.
What's included
7 videos4 readings1 assignment1 app item
7 videosβ’Total 71 minutes
- The Importance of Modeling β’3 minutes
- Assertions β’7 minutes
- Invariantsβ’13 minutes
- Modeling β’12 minutes
- Software Development β’15 minutes
- Mini-project Videoβ’12 minutes
- What is Algorithmic Thinking? β’9 minutes
4 readingsβ’Total 40 minutes
- The Basics of the Fifteen Puzzleβ’10 minutes
- Mini-project Descriptionβ’10 minutes
- Math Notes on Invariantsβ’10 minutes
- Practice Activity - Solitaire Tantrixβ’10 minutes
1 assignmentβ’Total 30 minutes
- Homework 4β’30 minutes
1 app itemβ’Total 60 minutes
- Assignment: The Fifteen Puzzleβ’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: PreviewN
Northeastern University
Course
- Status: Free TrialD
Duke University
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
84.69%
- 4 stars
11.20%
- 3 stars
2.73%
- 2 stars
0.27%
- 1 star
1.09%
Showing 3 of 365
Reviewed on Dec 7, 2017
Another fantastic course from the team at Rice University. The coursework is interesting and challenging, and I really feel I have learned a lot.
Reviewed on May 12, 2019
Mini-projects hard and makes you wanna think all aspects which is a good programming practice. However, I believe theoretical depth is missing.
Reviewed on Feb 24, 2019
Great course, I hope for more of this kind of courses. Invaluable skills gained from this course. High praise to all the professors. Thank You Very Much.
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,
