- All DegreesExplore Bachelorâ€™s & Masterâ€™s degrees
- Bachelorâ€™s DegreesExplore masterâ€™s degrees from leading universities
- Masterâ€™s DegreesExplore Computer Science & Engineering degrees
- Postgraduate StudiesDeepen your expertise with postgraduate learning
- MasterTrackâ„¢Earn credit towards a Masterâ€™s degree
- University CertificatesAdvance your career with graduate-level learning

Back to Mathematical Thinking in Computer Science

stars

2,119 ratings

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 online 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 Md. Z M

â€¢Apr 26, 2019

The course is taught by 3 instructors. This makes the experience strikingly unbalanced. The style of course delivery and explanation is very poor with one of the instructors, the one who took Week 1 and 6. The rest of the weeks were OK. The other two instructors were clear with their arguments. This course has a very different approach (do-it-yourself-before-expalnation-by-instructors), although it was mentioned clearly on the Course Info page. If you can make out yourself what strategy to apply for the interactive puzzles, then you are doing good. Otherwise, the puzzles will just be trial-and-error games for you. The instructors were kind enough to answer on the Discussion Forum, but do not expect much activity from your fellow learners as there might be very few people taking this course with you.

By PRABAL M

â€¢Jul 2, 2020

The last two week lectures were very confusing.

By Andrew T M

â€¢Dec 28, 2020

Do not be deceived by the "Beginner" status tag associated with this course. It very much expects you to be familiar with the subject matter, as certain logical steps are left out (whether purposefully or not), only to show up during the graded quiz at the end of the week. This leads to scouring the web for greater clarification and better examples of the subject being covered, completely defeating the purpose of paying money to have said information provided to the student.

The lectures are bad and boring, which is a shame considering how engaging and intriguing this subject can be. Omission of certain subject material that then shows up on the quiz results in randomly selecting an answer, checking if it is incorrect, then retaking the quiz in a cycle of "process of elimination", until a passing grade is achieved. I did this:

1.) To see if the explanations after getting the question correct (why a more robust explanation is provided after getting the question right as opposed to wrong, I'll never understand) provided any insights. They did not. They were as vague and confusing as the videos they were supposedly based off of.

2.) Just to move on with the curriculum. It gets tiring looking at the same explanations and videos over and over, only to have nothing "click" in your head.

I'm on the third week of this course (Recursion & Induction), and I'm surprised I've made it this far. I have since canceled my subscription, and have opted for a more exhaustive medium (https://smile.amazon.com/Introductory-Discrete-Mathematics-Computer-Science/dp/0486691152/ref=sr_1_1?crid=3O9JR43XF4VF0&dchild=1&keywords=introduction+to+discrete+mathematics&qid=1609175879&sprefix=introduction+to+discrete%2Caps%2C475&sr=8-1) to help me on my journey to understand this subject.

Save yourself the time, energy, and money. Look elsewhere for a more "Beginner-friendly" format.

By Carlos V

â€¢Feb 15, 2020

I believe that the content of this course is both important and interesting. However, the learning methods used are awful. To begin with, while going through the interactive puzzles I felt that I was not learning anything related to the core lesson at hand. Moreover, the exercises feel like disconnected trivia unrelated to the theoretical explanations. I think the course should be heavily revamped in order to present a proper and useful corpus of knowledge.

By å‚¨å¿»

â€¢Apr 9, 2021

Overall, I think the course has a good content and lots of inspiring material, from which I learned a lot. It lives up to its name and taught me a lot of mathematical thinking in CS. The discussion forum is also helpful. The staff is responsive.

But some courses, especially in week 4 and 5, could be explained better. For some programming quiz, the robot grader lacks the flexibility to recognize the correct solution that achieves the same purpose but presents in a slightly different format. Sometimes, the problem statement should be clarified better.

By Keagan R

â€¢Jun 17, 2020

Lot's of fun challenging puzzles and things to think about. Had a lot of fun. Learned interesting techniques like induction, double counting, and backtracking -- which controls the combinatorial explosion of non-polynomial problems. The final bonus problem is really challenging and a great joy to solve. Don't give up even if you're not really a natural math person like me. You will find value here. Generally, this course, like my other favourites, is about how to think about things when you don't know the formula.

By Vimal E

â€¢May 25, 2020

This course teaches about methods of proof used in mathematics. But it would be a disservice to say that is all that this course is about. It is much more than that. It lets you glimpse at the beauty hidden behind mathematics. For me the highlight of the course is the suite of interactive tools that motivate the techniques about to be taught. If you are taking the course please make sure you play with these tools and try to solve the problems before you watch the relevant lectures.

By Juliano P

â€¢Dec 1, 2020

Really nice material. There are lots os exercises and quizzes throughout the course, it was a very different experience compared to other courses I did in Coursera because the professors include questions as if you were in the classroom, like "Do you see what I mean with this?" or "Can you solve the problem now?", which makes you think again and pay more attention. Going to the 2nd module now!

By Khin M M M

â€¢Dec 10, 2020

Dear Teachers,

Firstly, I would like to tell you about that I greatly respect and admire to our teachers.

Although I'm not a programmer, I'm very interested in programming languages and computer science. Thus, I took this course.

I like the whole course.

Thanks, a lot to our Teachers, teaching staffs, and all other.

I do thank.

By Abhay B

â€¢Aug 23, 2020

It was really very important of a computer Science student to learn Discrete Mathematics. This course is really meant for such thing that why mathematics(Discrete mathematics) is important. Teachers are best, they help if anyone asks them their doubts. Its a great platform where you learn new things things which are very helpful. I thank all the teachers here who taught us.

By Pronay K P

â€¢Dec 18, 2020

Great experience!

My special thanks to professor Alexander S. Kulikov, Michael Levin and, Vladimir Podolskii for their great works. Besides, I am really grateful to the University of California San Diego & National Research University Higher School of Economics and Yandex.

Confidently, I would like to say "COURSERA" is the best!

By Rodrigo G L

â€¢Jan 2, 2021

Excellent course, presented in a very didactic way by combining theory and practice. It is not a collection of exposed knowledge to memorize, but rather a series of challenges of varying difficulty: some easy and others that almost make your head explode. I loved.

By Samyak J

â€¢Sep 22, 2020

It was just awesome. Honestly, I've not taken this good course till now. It was easy, entertaining, surprising, shocking, advanced, cool all at the same time. Thank you UC San Diego, NR HSE and Coursera for providing such an amazing Stuff.

By Muhammad Y A

â€¢Oct 26, 2020

So much fun using mathematics and it's basic to learn a bit of computer science!. The quiz is really challenging but, you can still solve it with a bit of practice. The lecture is enough but the concept and the assignments were very neat.

By Kushwanth R

â€¢Jul 28, 2020

Puzzles are great and its is fun learning the course but the problem is with the programming assignments. they are bit annoying. Even using programming in the video lecture its hard to find the relation b/w programming and mathematics.

By MD. M I

â€¢May 22, 2021

It was great in terms of everything. But, I didn't like the thing that some assignments support the only python. They should include C++ and java also... Struggled in coding python just that's it. But it was great overall.

By Dang T M N

â€¢Jul 27, 2020

The course provides useful knowledge to improve mathematical thinking. I have learnt a lot from the course. The programming exercises are interesting and motivate me to apply what I have learnt into solving problems.

By Yves R W

â€¢Jan 30, 2021

Great intuitive problems and introduction to mathematics, the course bridges these then well to small programming challenges. I would highly recommend this to annyone interested in becoming a better programmer!

By MANIKANTA P

â€¢Sep 9, 2021

This is one of the best courses I've been into! Anyone looking forward for a breakthrough in their career of computer science or maths should really check this course out! The teaching staff were great too!

By Deleted A

â€¢Jun 20, 2020

Great course that asks questions as you go along, my only issue is that for some parts of the course, a lot of content is covered and not all aspects have a question to ensure you actually understand it.

By Amanat U M

â€¢Feb 28, 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.

By Himanshu P M

â€¢May 7, 2020

This course is good for beginner.

rather than being complicated it will change the way you think.

one advice---- you should have knowledge of python basic to complete the assignment of this course

By KANG J H

â€¢May 8, 2021

Mathematical thinking seemed very difficult to approach but from this course I was able to advance myself more progressively through puzzles and examples which was very easy to understand.

By Jony N

â€¢Apr 29, 2020

Course was good, but sometimes i needed additional sources to understand topic better. Maybe, it was because of my english. Anyway it gave me a path what i should look for! Thank you!

By Mohamed H I

â€¢Sep 16, 2020

Positive: Great material, full of concepts, the teaching is simple and interactive, quizzes are amazing.

Negative: Too much python programming (need to be aware of python basics)

- AWS Cloud A Practitioner's Guide
- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Developing Professional High Fidelity Designs and Prototypes
- Get Google CBRS-CPI Certified
- Introduction to MATLAB Programming
- Learn HTML and CSS for Building Modern Web Pages
- Learn the Basics of Agile with Atlassian JIRA
- Managing IT Infrastructure Services
- Mastering the Fundamentals of IT Support

- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Building a Modern Computer System from the Ground Up
- Getting Started with Google Cloud Fundamentals
- Introduction to Cryptography
- Introduction to Programming and Web Development
- Introduction to UX Design
- Learn HTML and CSS for Building Modern Web Pages
- Mastering the Fundamentals of IT Support
- Utilizing SLOs & SLIs to Measure Site Reliability

- Building an Agile and Value-Driven Product Backlog
- Foundations of Financial Markets & Behavioral Finance
- Getting Started with Construction Project Management
- Getting Started With Google Sheets
- Introduction to AI for Non-Technical People
- Learn the Basics of SEO and Improve Your Website's Rankings
- Mastering Business Writing
- Mastering the Art of Effective Public Speaking
- Social Media Content Creation & Management
- Understanding Financial Statements & Disclosures