離散數學
一門針對數學與電腦科學專業學生的離散數學入門課程。內容涵蓋邏輯、集合、證明技巧、演算法、數論、組合數學、圖論及自動機等基礎主題。課程強調數學推理與解題能力,為電腦科學的高階學習奠定必要基礎。
課程總覽
📚 內容概要
一門針對數學與電腦科學專業學生的離散數學入門課程。內容涵蓋邏輯、集合、證明技巧、演算法、數論、組合數學、圖論及自動機等基礎主題。本課程強調數學推理與解決問題的能力,為電腦科學的進階學習奠定必要基礎。
掌握構成電腦科學基石的邏輯與結構。
作者: Richard Johnsonbaugh
致謝: 审稿人包括 Venkata Dinavahi、Matthew Elsey、Christophe Giraud-Carrier、Yevgeniy Kovchegov、Filix Maisch、Tyler McMillen、Christopher Storm、Donald Vestal 及 Guanghua Zhao。Pearson 團隊的支持人員:Deirdre Lynch、Jeff Weidenaar、Lauren Morse 等。
🎯 學習目標
- 進行集合運算,包括差集與補集,並利用文氏圖與定理 1.1.22 驗證集合恆等式。
- 建構並評估包含否定、析取與條件語句的命題之真值表。
- 應用推論規則與歸納推理,判斷邏輯論證的有效性。
- 定義並應用數學系統的各項元件,包括公設、定義與定理。
- 為代數與集合論命題建構直接證明、反證法與分類討論證明。
- 使用數學歸納法原理與強歸納法,證明恆等式、可整除性性質與演算法正確性。
- 定義並分類函數(單射、滿射、雙射),並執行合成與反函數等運算。
- 應用序列符號、字串接合與遞迴規則,以模擬離散資料集。
- 利用有向圖與矩陣表示法,分析二元關係的自反性、對稱性與傳遞性等性質。
- 定義一個演算法,並驗證其七項核心特性(輸入、輸出、明確性、決定性、有限性、正確性與普遍性)。
課程 共 12 课时 · 预计 36.0h
課程
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.