返回课程
MATH002 本科

离散数学

这是一门面向数学和计算机科学专业学生的离散数学入门课程。课程涵盖逻辑、集合、证明技巧、算法、数论、组合数学、图论和自动机等基本主题。课程强调数学推理和解决计算机科学高级研究所需的问题解决能力。

5.0
36.0h
1043 名学生
12 lessons
0 点赞
数学
开始学习

课程概述

📚 内容概要

一门面向数学与计算机科学专业学生的离散数学入门课程。课程涵盖逻辑、集合、证明技巧、算法、数论、组合学、图论和自动机等基本主题。课程强调数学推理和解决问题的能力,为计算机科学的高级学习奠定基础。

掌握构成计算机科学基础的逻辑与结构。

作者: 理查德·约翰逊鲍格

致谢: 审稿人包括文卡塔·迪纳瓦希、马修·埃尔西、克里斯托夫·吉拉德-卡里埃、叶夫根尼·科维奇、菲利克斯·迈施、泰勒·麦克米伦、克里斯托弗·斯托姆、唐纳德·韦斯塔尔以及赵广华。感谢培生公司工作人员的支持:戴尔德丽·林奇、杰夫·威登纳、劳伦·莫尔斯等。

🎯 学习目标

  1. 执行集合运算(包括差集和补集),并使用文氏图和定理 1.1.22 验证集合恒等式。
  2. 构造并评估包含否定、析取和条件命题的命题真值表。
  3. 应用推理规则和演绎推理来判断逻辑论证的有效性。
  4. 定义并应用数学系统的组成部分,包括公理、定义和定理。
  5. 构造代数和集合论命题的直接证明、反证法和分类讨论证明。
  6. 利用数学归纳法原理和强归纳法证明恒等式、可除性性质及算法正确性。
  7. 定义并分类函数(单射、满射、双射),并执行复合与逆运算。
  8. 运用序列记号、字符串连接和递归规则来建模离散数据集。
  9. 使用有向图和矩阵表示法分析二元关系的自反性、对称性和传递性等性质。
  10. 定义一个算法,并验证其七个核心属性(输入、输出、精确性、确定性、有限性、正确性和普遍性)。

课程

Lesson

This lesson introduces the fundamental principles of set theory, emphasizing that sets are unordered collections defined by their members rather than their sequence. It explores how set operations like union, intersection, and power sets function as the structural foundations for logical operators and deductive reasoning.

This lesson explores the anatomy of a mathematical system, explaining how undefined terms, axioms, definitions, and proofs form a logical hierarchy to establish truth. Students will learn how these foundational components prevent circular reasoning and serve as the basis for constructing theorems, lemmas, and corollaries.

This lesson explores the fundamental principles of mathematical mappings, defining functions as precise, deterministic relationships between domains and codomains. Students will learn to evaluate algorithmic correctness using loop invariants and apply discrete structures like sequences and relations to model computational data.

This lesson introduces the fundamental definition of an algorithm as a finite, deterministic, and general sequence of steps used to solve a specific class of problems. Students will learn to verify algorithmic logic through pseudocode and manual tracing while exploring mathematical concepts like divisibility that underpin effective problem-solving.

This lesson explores the transition from continuous calculus to discrete mathematics, highlighting how number theory and prime factorization provide the foundation for modern cryptographic systems like RSA. Students will learn to apply mathematical induction for algorithmic verification and master the mechanics of divisibility to understand the security of one-way "trapdoor" functions.

This lesson introduces the fundamental principles of counting, teaching students how to use the Addition Principle for mutually exclusive choices and the Multiplication Principle for successive, independent steps. By mastering these rules and techniques like complementary counting, students learn to efficiently determine the size of finite sets and solve complex combinatorial problems.

This lesson explores recurrence relations as a framework for modeling combinatorial sequences, such as Stirling and Catalan numbers, and analyzing the efficiency of algorithms like binary search and selection sort. Students will learn to solve linear homogeneous relations using characteristic equations and apply recursive modeling to complex problems like the Tower of Hanoi and derangements.

This lesson introduces the fundamentals of graph theory, defining graphs as sets of vertices and edges used to model complex networks and connectivity. Students will learn to identify graph types, analyze paths and subgraphs, and apply the Handshaking Lemma to solve structural problems.

This lesson introduces the fundamental concepts of tree structures in graph theory, covering the distinction between free and rooted trees and the hierarchical terminology used to describe them. Students will learn how these mathematical models serve as essential frameworks for organizing data and solving complex optimization problems in real-world applications.

This lesson introduces transport networks as directed, weighted graphs defined by a source with no incoming edges, a sink with no outgoing edges, and non-negative capacities on all edges. Students learn to distinguish between these structural capacity limits and the actual flow of commodities through a system.

This lesson explores combinatorial logic, defining it as a system where circuit outputs are determined solely by current inputs without the use of memory or feedback. Students learn to map Boolean algebraic expressions directly onto physical circuit topologies using structural induction, operator precedence, and efficient n-input gate designs.

This lesson introduces sequential logic by distinguishing it from memoryless combinatorial circuits through the use of unit time delays and feedback loops. Students will learn how these components enable the creation of finite-state machines, which allow systems to store information and base future outputs on past states.