Back to Mathematical Thinking in Computer Science

stars

1,843 ratings

•

431 reviews

Mathematical thinking is crucial in all areas of computer science: algorithms, bioinformatics, computer graphics, data science, machine learning, etc. In this course, we will learn the most important tools used in discrete mathematics: induction, recursion, logic, invariants, examples, optimality. We will use these tools to answer typical programming questions like: How can we be certain a solution exists? Am I sure my program computes the optimal answer? Do each of these objects meet the given requirements?
In the course, we use a try-this-before-we-explain-everything approach: you will be solving many interactive (and mobile friendly) puzzles that were carefully designed to allow you to invent many of the important ideas and concepts yourself.
Prerequisites:
1. We assume only basic math (e.g., we expect you to know what is a square or how to add fractions), common sense and curiosity.
2. Basic programming knowledge is necessary as some quizzes require programming in Python....

AD

Mar 25, 2019

The teachers are informative and good. They explain the topic in a way that we can easily understand. The slides provide all the information that is needed. The external tools are fun and informative.

AM

Feb 27, 2021

It is a great course! teachers explain everything with care. While providing lectures there are some popup ques that verify whether you understood that lecture or not. Overall, a great experience.

Filter by:

By ASHTON N

•Jun 8, 2020

Amazing course

By SYED S

•Dec 29, 2020

cool and best

By Zhe Y

•Jul 21, 2018

learned a lot

By Yuhua Y

•Oct 9, 2017

nice course

By Afnan A

•Aug 15, 2020

Thank you!

By venus v p

•May 31, 2018

wonderfull

By Madhan C

•Jan 26, 2021

excellent

By Raymond B S

•Dec 22, 2020

Thank you

By GADAMSETTI V M G

•Nov 22, 2020

Excellent

By M L J

•Oct 22, 2020

GOOD GOOD

By pavankumar p

•Sep 9, 2020

excellent

By Kallinatha H

•May 24, 2020

very good

By N R S

•May 20, 2020

Excellent

By evans

•Sep 9, 2019

very good

By Miguel A D A

•Oct 3, 2018

Perfect!

By Gaurav R P

•Oct 1, 2017

love it.

By 121910316063 g

•Jan 19, 2021

good

By 221910311052 S N

•Dec 19, 2020

good

By 2K18/EC/038 A R

•Nov 30, 2020

Good

By maripalli s

•Aug 1, 2020

good

By Ricky I S

•Aug 17, 2020

Overall this was a good course. I was also studying the topics from other sources and reading Discrete Mathematics and Its Applications by Rosen and doing all the exercises at the end of each section of Rosen. I felt like the lectures in this course give a very basic overview but do not really get you to the point that you will be ready to apply what you learn to different problem situations. For example, logic was covered in about 20 minutes worth of video but is a 100-page chapter in Rosen, and for one to feel comfortable doing exercises as presented in Rosen or as seen on the homework assignments of many universities, you will need more exposure to the material. This may have been the case because this course is titled Mathematical Thinking in Computer Science and was previously called What Is A Proof? and their intention was not to really teach anything other than that and the other courses in the Specialization will get more into the specifics topics covered in Discrete Mathematics. I still plan on taking the other courses in this specialization as I feel that after reading Rosen and working out the problems in Rosen, its nice hearing some of the material covered again and only serves to reinforce principles. This course has a nice amount of interactive exercises that allow one to practice solving puzzles of sorts. I enjoyed those, although do not think they are sufficient to overcome the lack of practice doing different problems. Note to instructors: More exercises in logic to assess and develop ability in logic would be nice as its a very important part of Discrete Mathematics. If logic is only covered in this class in the specialization and isn't retaught in more depth in the other courses in this specialization, then it is not really being covered properly in this Specialization in Discrete Mathematics.

By Ethan H

•Jul 15, 2020

Good overall, but week 6 in particular was below my expectations. The students should not be answering questions in order to correct errors in the lecturer's phrasing; you should simply do the sensible thing and re-record the lecture, ensuring accuracy before posting. The final (albeit optional) project of the course is to write a solver for the 15-puzzle. This involved some graph theory self study, since graph theory is out of the scope of this course. A hastily explained intro to graph theory during the final lecture without slides is not sufficient to prepare the students for this task. I would strongly suggest a revision of the entire 6th week.

By Saptarshi M

•Sep 6, 2018

This course helps you to put your arguments forward to convince self and other people. There are several techniques to do that. Sometimes providing a single example does the trick while providing counter examples become necessary in other situations. Learners of this course will get new insight about known puzzles. How to find examples is an important part of this course. Alex and Michale are pretty good to put the thoughts that they have. Other lecturers sometimes may confuse pupil. Overall a great start to learn discrete mathematics.

By Christopher P

•Feb 21, 2018

Pretty good course, although the topics were sometimes confusing. I think this is to be expected given the nature of the topic, as it's a whole new way of thinking about mathematical problems. I wish the course put some of the techniques used when solving the puzzles into a more explicit or formal context. After some of the puzzles, I was left wondering how to generalize the specific problem-solving technique or insight.

By John A B

•Oct 4, 2019

I followed along pretty well but there where a few parts that the instructors just sort of hand waved the developing the formula's needed to solve the theorems. Also the programming questions where always clear about how they wanted the return object represented. This led to some try and error, falling the question to see what little feed back it would give, making a change to the subroutine and then trying again.

- Google Data Analyst
- Google Project Management
- Google UX Design
- Google IT Support
- IBM Data Science
- IBM Data Analyst
- IBM Data Analytics with Excel and R
- IBM Cybersecurity Analyst
- Facebook Social Media Marketing
- IBM Full Stack Cloud Developer
- Salesforce Sales Development Representative
- Salesforce Sales Operations
- Soporte de Tecnologías de la Información de Google
- Certificado profesional de Suporte em TI do Google
- Google IT Automation with Python
- DeepLearning.AI Tensorflow
- Popular Cybersecurity Certifications
- Popular SQL Certifications
- Popular IT Certifications
- See all certificates

- Skills for Data Science Teams
- Data Driven Decision Making
- Software Engineering Skills
- Soft Skills for Engineering Teams
- Management Skills
- Marketing Skills
- Skills for Sales Teams
- Product Manager Skills
- Skills for Finance
- Android Development Projects
- TensorFlow and Keras Projects
- Python for Everybody
- Deep Learning
- Excel Skills for Business
- Business Foundations
- Machine Learning
- AWS Fundamentals
- Data Engineering Foundations
- Data Analyst Skills
- Skills for UX Designers

- MasterTrack® Certificates
- Professional Certificates
- University Certificates
- MBA & Business Degrees
- Data Science Degrees
- Computer Science Degrees
- Data Analytics Degrees
- Public Health Degrees
- Social Sciences Degrees
- Management Degrees
- Degrees from Top European Universities
- Master's Degrees
- Bachelor's Degrees
- Degrees with a Performance Pathway
- Bsc Courses
- What is a Bachelor's Degree?
- How Long Does a Master's Degree Take?
- Is an Online MBA Worth It?
- 7 Ways to Pay for Graduate School
- See all degrees