Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Alexander S. Kulikov, Michael Levin, and Владимир Подольский

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?

Read more

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.

Enroll now

What's inside

Syllabus

Making Convincing Arguments
Why are some arguments convincing and some others are not? What makes an argument convincing? How can you establish your argument in such a way that there is no room for doubt left? How can mathematical thinking help with this? In this section, we start digging into these questions. Our goal is to learn by examples how to understand proofs, how to discover them on your own, how to explain them, and — last but not least — how to enjoy them: we will see how a small remark or a simple observation can turn a seemingly non-trivial question into an obvious one.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Builds a strong foundation for beginners in discrete mathematics and mathematical thinking
Taught by Alexander S. Kulikov, Michael Levin, and Vladimir Podolskiy, who are recognized for their work in discrete mathematics and computer science
Develops important tools and techniques used in computer science, including induction, recursion, logic, invariants, and optimality
Uses many interactive puzzles to allow learners to invent ideas and concepts themselves
Covers topics that are highly relevant to industry, academia, and personal growth and development
Requires basic math and curiosity as prerequisites, making it accessible to a wide range of learners

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Applying mathematical thinking to computer science

According to learners, Mathematical Thinking in Computer Science is a largely positive course focusing on applying core mathematical concepts like induction, recursion, and logic to computer science problems. Many found the interactive puzzles a highly effective and unique teaching method that aids understanding. While students appreciated the practical connection to programming, some noted the difficulty level is higher than expected, requiring significant effort and possibly more background than the stated prerequisites. The assignments are challenging but rewarding, solidifying theoretical concepts. Overall, it's considered a valuable course for building a strong foundation in discrete math for CS.
Quizzes and programming tasks solidify learning.
"The programming assignments were tough but gave me real confidence."
"Quizzes really tested if you understood the core ideas, not just memorized."
"Doing the homework was essential to master the concepts taught."
Concepts are well explained by instructors.
"Lectures were clear and concise, breaking down complex proofs."
"The instructor's explanations for recursion were particularly easy to follow."
"Found the video explanations very helpful for abstract ideas."
Effectively links math to programming problems.
"Really useful for understanding the math behind algorithms and programming."
"The course does a good job showing how logic and induction apply to CS."
"I see now how these mathematical ideas are used in real coding scenarios."
Unique and effective learning tool.
"The interactive puzzles were a highlight and really helped concepts click."
"I loved the 'try-this-before' approach, the puzzles made learning engaging."
"These little games are a great way to test understanding interactively."
Requires significant effort and background.
"This course was much harder than I anticipated, requires a strong foundation."
"Be prepared to put in serious effort, it's challenging but worth it."
"The difficulty sometimes felt overwhelming, especially later topics."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mathematical Thinking in Computer Science with these activities:
Review basic programming concepts
Refreshing basic programming concepts ensures a strong foundation for understanding algorithms and implementing mathematical solutions.
Browse courses on Programming
Show steps
  • Review basic programming syntax and data types.
  • Practice writing simple programs to implement mathematical concepts.
  • Complete online coding challenges or exercises.
  • Seek clarification if needed through discussion forums or Q&A platforms.
Review fundamental mathematical concepts
Refreshing fundamental mathematical concepts ensures a solid foundation for understanding the course material and applying it to real-world problems.
Browse courses on Logic
Show steps
  • Review basic concepts in logic, set theory, and number theory.
  • Complete practice problems and exercises to reinforce understanding.
  • Seek clarification if needed through discussion forums or Q&A platforms.
  • Identify areas where further clarification or practice is needed.
Organize and review course materials
Regularly reviewing and organizing your materials helps reinforce learning, identify gaps, and prepare for assessments.
Show steps
  • Gather all course materials, including notes, assignments, and readings.
  • Organize materials logically, e.g., by topic or week.
  • Review materials regularly, focusing on understanding rather than memorization.
  • Identify areas where further clarification or practice is needed.
  • Seek support from the instructor or peers if needed.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Participate in online discussion forums
Engaging in discussions fosters critical thinking, improves communication skills, and exposes you to diverse perspectives on mathematical concepts.
Browse courses on Logic
Show steps
  • Read and understand the course materials related to the topic.
  • Join the discussion forum and introduce yourself.
  • Participate in discussions by asking questions, sharing insights, and providing constructive feedback.
  • Synthesize your learnings from the discussions.
Follow online tutorials on mathematical logic
Following tutorials provides structured guidance and additional practice to strengthen your understanding of mathematical logic.
Browse courses on Logic
Show steps
  • Search for reputable online tutorials on mathematical logic.
  • Select a tutorial that aligns with your level and interests.
  • Follow the tutorial step-by-step and take notes.
  • Complete the exercises and quizzes provided in the tutorial.
  • Seek clarification if needed through discussion forums or Q&A platforms.
Solve recursion puzzles
Solving puzzles helps develop an intuitive understanding of when and how to apply recursion and induction.
Browse courses on Recursion
Show steps
  • Identify the recursive or inductive structure of the problem.
  • Break the problem down into smaller subproblems.
  • Define the base case(s).
  • Write the recursive or inductive solution.
  • Test your solution on various inputs.
Create a visual representation of an algorithm
Visualizing algorithms helps you understand their structure and flow, and can make complex concepts more accessible.
Browse courses on Algorithms
Show steps
  • Choose an algorithm to represent.
  • Design a visual representation, e.g., a flowchart, diagram, or animation.
  • Implement the algorithm in your chosen visual representation.
  • Test and refine your visual representation.
  • Share your visual representation with others.
Develop a proof by induction
Creating your own proof by induction demonstrates a deep understanding of the concept and strengthens your ability to construct rigorous arguments.
Browse courses on Induction
Show steps
  • State the proposition you want to prove.
  • Prove the base case.
  • Write the inductive step.
  • Prove the inductive step.
  • Conclude the proof.

Career center

Learners who complete Mathematical Thinking in Computer Science will develop knowledge and skills that may be useful to these careers:
Data Scientist
Data Scientists use mathematical and statistical methods to extract insights from data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying data science techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in data science.
Computer Scientist
Computer Scientists research and develop new computer technologies. Mathematical thinking is essential in computer science, as it allows scientists to design and implement new algorithms and data structures. This course provides a strong foundation in mathematical thinking, which can be applied to a wide range of computer science research topics, such as artificial intelligence, machine learning, and computer graphics.
Software Engineer
Software Engineers develop, maintain, and improve computer software. Mathematical thinking is critical in software engineering, as it allows engineers to design and implement efficient and effective solutions to complex problems. This course provides a solid foundation in mathematical thinking, which can be applied to a wide range of software engineering tasks, such as algorithm design, data analysis, and software testing.
Operations Research Analyst
Operations Research Analysts use mathematical and statistical methods to improve the efficiency of organizations. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying operations research techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in operations research.
Statistician
Statisticians use mathematical and statistical methods to analyze data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying statistical techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in statistics.
Actuary
Actuaries use mathematical and statistical methods to assess and manage risk. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying actuarial techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in actuarial science.
Quantitative Analyst
Quantitative Analysts use mathematical and statistical methods to analyze financial data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying quantitative analysis techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in quantitative analysis.
Biostatistician
Biostatisticians use mathematical and statistical methods to analyze biological data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying biostatistical techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in biostatistics.
Economist
Economists use mathematical and statistical methods to analyze economic data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying economic techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in economics.
Financial Analyst
Financial Analysts use mathematical and statistical methods to analyze financial data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying financial analysis techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in financial analysis.
Market Research Analyst
Market Research Analysts use mathematical and statistical methods to analyze market data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying market research techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in market research.
Operations Manager
Operations Managers use mathematical and statistical methods to improve the efficiency of organizations. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying operations management techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in operations management.
Product Manager
Product Managers use mathematical and statistical methods to analyze product data. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying product management techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in product management.
Consultant
Consultants use mathematical and statistical methods to solve problems for clients. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying consulting techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in consulting.
Teacher
Teachers use mathematical and statistical methods to teach students. This course provides a strong foundation in mathematical thinking, which is essential for understanding and applying teaching techniques. The course covers topics such as induction, recursion, logic, invariants, examples, and optimality, which are all essential for success in teaching.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mathematical Thinking in Computer Science.
Provides a comprehensive introduction to discrete mathematics, covering topics such as logic, set theory, combinatorics, and graph theory. It classic textbook that is widely used in undergraduate mathematics and computer science courses.
Provides a rigorous and accessible introduction to discrete mathematics, with a focus on applications in computer science. It covers topics such as logic, set theory, combinatorics, and graph theory.
Provides a Pulitzer Prize-winning exploration of the relationship between mathematics, logic, music, and art. It classic work that is widely read by students, scholars, and general readers.
Provides a personal and philosophical exploration of the nature of mathematics. It classic work that is widely read by students, scholars, and general readers.
Provides a collection of essays on the beauty and power of mathematics. It classic work that is widely read by students, scholars, and general readers.
Provides a clear and concise introduction to mathematical thinking, covering topics such as problem solving, logic, and proof. It popular textbook that is used in undergraduate courses in mathematics, computer science, and other disciplines.
Provides a step-by-step guide to proving mathematical theorems, covering topics such as logic, set theory, and proof techniques. It popular textbook that is used in undergraduate courses in mathematics, computer science, and other disciplines.
Provides a collection of entertaining and thought-provoking mathematical puzzles and curiosities. It popular resource that is used by students, teachers, and mathematicians.
Provides a lucid and engaging introduction to mathematics for non-mathematicians, covering topics such as number theory, algebra, and calculus. It popular resource that is used by students, teachers, and general readers.
Provides a clear and concise introduction to mathematical logic, covering topics such as propositional logic, predicate logic, and first-order logic. It popular textbook that is used in undergraduate and graduate courses in mathematics, computer science, and philosophy.
Provides a concise and engaging introduction to logic and discrete mathematics, covering topics such as propositional logic, predicate logic, set theory, and combinatorics. It popular textbook that is used in undergraduate courses in mathematics, computer science, and philosophy.
Provides a comprehensive introduction to discrete and combinatorial mathematics, covering topics such as logic, set theory, combinatorics, and graph theory. It popular textbook that is used in undergraduate courses in mathematics, computer science, and engineering.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser