Back to Mathematical Thinking in Computer Science

stars

2,114 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 Ricardo G

â€¢Mar 8, 2018

The teacher Alexander Chen doesn't explain anything well. It's horrible to understand him and what he wants.

By Victor L

â€¢Dec 14, 2018

no clarity and continuity in expressing the ideas too difficult to follow

By Luc N

â€¢Dec 14, 2018

I am just into week 1 but the explanations given are unclear and confusing. The didactic is poor. I am right now wondering whether I should continue learning this or not

By Ryan B

â€¢Jan 16, 2020

I'm trying to be as fair as I possibly can here. This is, I think, the 8th or 9th MOOC I've completed, and I've self-studied math and CS in a huge variety of contexts, so I have some points of comparison. This is, to my knowledge, the only Discrete Math course on Coursera or EdX, so it's important that it gets an honest review.

The Good:

The puzzles and exercises were kind of fun and well-implemented, even if it wasn't always clear why we were doing them.

Playing around with the problems a little before listening to a lecture was a great idea, and it helped prime me for the solutions and methodologies.

The coding exercises were very simple, which is appropriate for a beginner's course like this one.

The Bad:

These professors are lazy, sloppy, and visibly uninterested. They don't care about what they're talking about, they seem disengaged, simply reading from slides. You may not think this will get in the way too much of your learning, but it does. They don't communicate clearly, in a way that a good teacher communicates--emphasizing certain points, anticipating misunderstandings, clarifying, tying things together. They just read off a script, and they lose you along the way. Even if you manage to stay focused on their words, they usually do a poor job of helping you understand why you're learning what you're learning, or of reminding you of the overall goal when you're down in the weeds. So this is a course where you will need to rely on outside materials if you want to grasp the concepts--thankfully there are people on youtube who care and understand how to teach other people (those people are often not professors).

The scripts these professors read off of are riddled with errors. Rather than re-record, they just paste dozens of error screens apologizing. But the error screens sometimes don't come until after you've spent five minutes trying to figure out what in the world just happened. Sloppy, and to me inexcusable. Re-shoot the video, polish it and take some pride in your work.

One of the quizzes (the one on Induction) was difficult to understand, contained material that was not explained at all in the preceding videos, and the explanations in the feedback did nothing to illuminate what was going on. Again, the frustration has to do with the fact that the professor in charge of that section could not be troubled to think for a minute about how this would look to the student. And this was the professor that also happened to be the most uninterested in his lectures as well, so no surprise.

In short, I hope someone out there makes a Discrete Math MOOC. If that person takes any pride in their work, if they know anything about communication, it won't be difficult to quickly surpass this one as the better option.

By Lukas A

â€¢Jan 5, 2018

The course is full of interesting puzzles, making it a fun course to complete. However, there is very little explanation as to why you are solving these puzzles and what you are supposed to learn from them. The course might be meant as a complement to following a university course, and might help better understand concepts learned in class. But as a standalone course it feels lacking.

By kirill l

â€¢Nov 28, 2018

The course is excellent and most stuff is being taught in a nicely presented way. The main disappointment is 15-puzzle, because it's too difficult to understand without proper material.

By Chian Y L

â€¢Mar 6, 2019

course is poorly explained. such a bad course.

By Aneesh D

â€¢Mar 26, 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.

By Erdem O

â€¢Jan 4, 2018

The content is great but the presentation/clarification is awful!!!

By Parthasaradhi T

â€¢Jan 29, 2019

Good course to gain knowledge of mathematics, Worth for everyone not only computer science

By Prakhar D

â€¢Jul 15, 2019

I took this course as I am from a non-computer science background. This course helped me develop an intuition for discrete mathematics. I am, right now, in the fifth week of this course and so far I have understood everything. Lecturers are excellent, and interactive grading exercises are fun to do. One point that I liked about this course is the way it has been structured. All ideas are presented so that they are connected in a sequential manner rather than in a random. I would recommend everyone who is interested in Computer Science and is from a non-computer science background take this course. :)

By Cy L

â€¢Apr 13, 2019

This took a lot of thinking! Some parts are easier than others. I'm a mathematician and am use to being stuck on problems and having to think them through. I also believe that if you're going to be a computer scientist, you need to learn to deal with not getting an answer correct the first time or even the 10th time.

By Dave G

â€¢Jun 29, 2018

Love the quality of thought that goes into each lesson. The professors speak with acute clarity and really demonstrate and empathy for the student to truly understand the topics!

By Kayla M

â€¢Apr 14, 2020

This is an outstanding and engaging course. I don't get the bad reviews. If you're an average-to-high-level English speaker, you will not have any issues understanding the instructors. Topics are well-explained, and instructions are clear. There are plenty of posts on the discussion boards for topics that may seem confusing. This course is not suitable for people who don't understand basic Python, but if you can manage to write a simple program, there is absolutely no reason you shouldn't benefit from this course. EXCELLENT.

By Christopher W

â€¢Feb 2, 2020

I loved this course! So many interesting things to think about, thoughtfully explained by brilliant instructors. The puzzles really get you thinking. Such genius to put them before the lectures!

By jonathan c

â€¢Apr 19, 2019

I stuck with this course for 4 weeks however i share the opinion of a few people on here...the course is very poorly explained.

The course requires basic maths and basic python however i feel it is asking a little more than that especially when it comes to programming the mathematical concepts the presenter discusses. Very little programming guidance is provided and no explanation is provided on the solution.

I feel there is better courses out there...and the course requirements are a little misleading

By Sam

â€¢Dec 14, 2018

I was very disappointed in the first week in this course. It expects you to know the material and think like a mathematician to take the very first lessons.

By Rob S

â€¢Jun 14, 2018

Mostly felt like a series of parlour tricks with little insight into underlying mathematical principles

By Ayush T

â€¢Oct 22, 2017

This course is really good for anyone who loves mathematics and programming. After this course I feel the way in which i used to analyse problems has changed. This thing really important for me as i'm a programmer. One more reason to recommend this course is that apart from learning material it has many puzzles which are really interesting.

By Mayala W

â€¢Jun 17, 2019

Had a lot of fun going through the materials on this course. Mathematics can be really simple when they are directly related to real world concepts and problems. Can not waIt to take the next course. Thanks to the team for their dedication. I have learnt a lot during the 6 past weeks. Thank You.

By Anna L

â€¢Aug 22, 2018

I loved practically every minute of the course - I learned a lot, and I enjoyed it! The puzzles were fun to solve and greatly helped my understanding of the topics discussed. I highly recommend this course to anyone and am looking forward to the next courses in the specialisation!

By Sandeep S

â€¢Aug 15, 2019

The course was a wonderful learning experience to me. I got an opportunity to look at puzzles which I tried to solve in my childhood and understand the mathematical aspect to many of those. To implement some of these puzzles through programs was another wonderful exercise.

By Thomas J H

â€¢Nov 29, 2018

More like logical puzzles that get solved with basic math than your typical high school classes in algebra or calculus. Definitely wakes up your brain. If like myself you've not been doing serious math for a while, a good way to reactive the required neural circuits.

By Harish K T

â€¢Jul 25, 2019

This is one of the best lectures I have ever learned, It taught me so much which I have ever missed during my basic studies. Anyone who wants to grasp good basic over discrete mathematics for computer science to get stronger in Data Structures & Algorithms.

By LordTejas

â€¢Feb 1, 2020

This was the course 1 of the Specialization and i learned so much from it. I got a new perspective of seeing problems and approaching them in a new way. I am looking forward for the rest courses in this specialization.

- 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