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?
提供方
Mathematical Thinking in Computer Science
加州大学圣地亚哥分校課程信息
您將獲得的技能
- Mathematical Induction
- Proof Theory
- Discrete Mathematics
- Mathematical Logic
提供方

加州大学圣地亚哥分校
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
授課大綱 - 您將從這門課程中學到什麼
Making Convincing Arguments
Why some arguments are 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.
How to Find an Example?
How can we be certain that an object with certain requirements exist? One way to show this, is to go through all objects and check whether at least one of them meets the requirements. However, in many cases, the search space is enormous. A computer may help, but some reasoning that narrows the search space is important both for computer search and for "bare hands" work. In this module, we will learn various techniques for showing that an object exists and that an object is optimal among all other objects. As usual, we'll practice solving many interactive puzzles. We'll show also some computer programs that help us to construct an example.
Recursion and Induction
We'll discover two powerful methods of defining objects, proving concepts, and implementing programs — recursion and induction. These two methods are heavily used in discrete mathematics and computer science. In particular, you will see them frequently in algorithms — for analysing correctness and running time of algorithms as well as for implementing efficient solutions. For some computational problems (e.g., exploring networks), recursive solutions are the most natural ones. The main idea of recursion and induction is to decompose a given problem into smaller problems of the same type. Being able to see such decompositions is an important skill both in mathematics and in programming. We'll hone this skill by solving various problems together.
Logic
Mathematical logic plays a crucial and indispensable role in creating convincing arguments. We use the rules and language of mathematical logic while writing code, while reasoning and making decisions, and while using computer programs. This week we’ll learn the basics of mathematical logic, and we'll practice tricky and seemingly counterintuitive, but yet logical aspects of mathematical logic. This will help us to write readable and precise code, and to formulate our thoughts rigorously and concisely.
審閱
- 5 stars64.04%
- 4 stars24.05%
- 3 stars7%
- 2 stars1.96%
- 1 star2.92%
來自MATHEMATICAL THINKING IN COMPUTER SCIENCE的熱門評論
a lot of it was hard to understand but it was nice to learn through the puzzles. i was completely lost during the honors content, and i thought we weren't well-prepared for the programming assignments
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)
The course is good made me think logically, good as a starting course start fast-finish fast and there you have the warm-up, though you need some knowledge of python for completing this course
though i stuck somewhere but mentors was always there to assist you. really found this course interesting and very helpful. solved so much of tricky puzzles, Good course
常見問題
我什么时候能够访问课程视频和作业?
我购买证书后会得到什么?
有助学金吗?
還有其他問題嗎?請訪問 學生幫助中心。