Back to Mathematical Thinking in Computer Science

4.4

stars

1,340 ratings

•

318 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....

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.

Feb 02, 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!

Filter by:

By Ernest D

•Jan 05, 2019

this is a very nice course ,its has broaden my whole knowledge about maths

thanks to the creator of this course

By HAILEMICHAEL Y M

•Oct 12, 2019

The course is very good at equipping the basic math concepts for computer science. I highly recommend it!

By Swarnava S

•Jun 13, 2019

Awesome course for beginners. It helped me alot to understand the logic and how to solve problems.

By Rafael D d L P

•Aug 02, 2018

Great introduction to mathematical thinking and how to apply it to computational problems.

By KUMAR A

•Jan 24, 2020

This was the one-stop that I'll never regret learning things again in a different manner.

By Mahavishnu R

•Sep 07, 2019

Puzzles are great. Seems Instructors put lots of efforts into it. Different approach !

By Jesse W

•May 02, 2019

This course mostly consists of a set of loosely related under the umbrella of discrete mathematics. A lot of the exercises take the form of puzzles where you either have to solve the puzzle or determine whether a solution is impossible. The puzzles are fun and make for good brain exercise; however, I'm not sure if all of this has made me a better programmer. It's worth noting that most Computer Science degrees will require some form of discrete math coursework, so if you're considering CS and are worried about the math requirements, this Specialization would be good to try out.

By Anton M

•Apr 04, 2019

Great course with variety of different mathematical puzzles.

Two things can be improved:

1) It's not always obvious which global subject is discussed during the week and what is a connection with puzzles, some kind of review video at start of each week will be helpful.

2) Sometimes explanations not clear at all. I did watched some videos 2-3 times before completely understand what is going on. It will be great to have a rigours proof of theorems as supplementary reading material.

By Mike P

•Jan 31, 2019

I liked the course, and I enjoyed the math for sure. BUT, I think there were some sections that could have been explained more thoroughly and perhaps some videos that could have been shot again to be more clear. But whatever, I am very grateful to be able to learn this here :)

By Vladimir K

•Feb 05, 2018

While the material itself is important and very useful in general, the course, unfortunately, doesn't have enough practical material to help students to internalise it.

By Frederick H K K

•Jan 21, 2019

Some explanation are unclear or confusing.

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 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 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 Himanshu P M

•May 08, 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 Jonibek 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 Sanjay A

•Sep 18, 2017

I was waiting for such a great course on discrete Mathematics in coursera.

Thank you UC San Diego

By Dmytro N

•Oct 05, 2017

I like the course. Still some mistakes and bugs, but course is really interesting to pass. Thanks

By Putcha L N R

•Jul 09, 2019

An amazing course really!! The interactive fun assignments make it all the more interesting!! :D

By Eddy P

•Sep 23, 2018

There are many very interesting cases in this course! I will definitely recommend it to others!

By Andrew M

•Oct 26, 2017

A great introductory course and well organized. You can feel that professor loves mathematics.

By Anup K K

•Apr 27, 2020

Just the last Bonus Track problem please give some hints how to approach and solve the problem

By Radmilo M

•Apr 06, 2020

The course is perfect for those which want to learn math on deeper level in computer science.

By Dr R L

•Apr 22, 2020

Good content but little problem phase in python programming

By Feyaz B

•May 08, 2020

Covered all the basics, I learnt a lot from this!

- AI for Everyone
- Introduction to TensorFlow
- Neural Networks and Deep Learning
- Algorithms, Part 1
- Algorithms, Part 2
- Machine Learning
- Machine Learning with Python
- Machine Learning Using Sas Viya
- R Programming
- Intro to Programming with Matlab
- Data Analysis with Python
- AWS Fundamentals: Going Cloud Native
- Google Cloud Platform Fundamentals
- Site Reliability Engineering
- Speak English Professionally
- The Science of Well Being
- Learning How to Learn
- Financial Markets
- Hypothesis Testing in Public Health
- Foundations of Everyday Leadership

- Deep Learning
- Python for Everybody
- Data Science
- Applied Data Science with Python
- Business Foundations
- Architecting with Google Cloud Platform
- Data Engineering on Google Cloud Platform
- Excel to MySQL
- Advanced Machine Learning
- Mathematics for Machine Learning
- Self-Driving Cars
- Blockchain Revolution for the Enterprise
- Business Analytics
- Excel Skills for Business
- Digital Marketing
- Statistical Analysis with R for Public Health
- Fundamentals of Immunology
- Anatomy
- Managing Innovation and Design Thinking
- Foundations of Positive Psychology