When you enroll in this course, you'll also be enrolled in this Specialization.
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
Show info about module content
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
Recursion
Module 2•4 hours to complete
Module details
This week, we will explain the importance of recursion.
What's included
7 videos5 readings1 assignment1 app item
Show info about module content
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
Trees
Module 3•3 hours to complete
Module details
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
Show info about module content
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
Modeling, Assertions, and Invariants
Module 4•3 hours to complete
Module details
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
Show info about module content
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
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
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.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.8
365 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
O
OK
4·
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.
R
RH
5·
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.
I
IB
5·
Reviewed on Jun 11, 2017
Phew, this course was much harder than the preceding courses. Some assignments took many hours of work over several days. But it's doable, and well worth it.
When will I have access to the lectures and assignments?
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.
What will I get if I subscribe to this Specialization?
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.
Is financial aid available?
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.