コース一覧へ戻る
MATH002 学部

離散数学

数学およびコンピュータサイエンスの専攻生を対象とした離散数学の入門課程です。論理、集合、証明技法、アルゴリズム、数論、組合せ論、グラフ理論、オートマトンなどの基礎的なトピックを扱います。このコースでは、コンピュータサイエンスの高度な学習に必要な数学的思考力と問題解決能力の育成に重点を置いています。

5.0
36.0h
1043 受講者
12 lessons
0 いいね
数学
学習を開始

コース概要

📚 コンテンツ概要

数学およびコンピュータサイエンス専攻向けの離散数学入門課程。論理、集合、証明技法、アルゴリズム、数論、組合せ論、グラフ理論、オートマトンなどの基礎的なトピックを扱います。本コースは、コンピュータサイエンスにおける高度な学習に不可欠な数学的推論力と問題解決能力に重点を置いています。

コンピュータサイエンスの基盤となる論理と構造をマスターしよう。

著者: リチャード・ジョンソンバウグ

謝辞: ベンカタ・ディナヴァヒ、マシュー・エルシー、クリストーフ・ギロード=キャリアー、イヴゲニイ・コブチェゴフ、フィリックス・マイシュ、タイラー・マクミレン、クリスティファー・ストーム、ドナルド・ベスタル、チャン・ホア・チョウらのレビュアー。ペアソン社スタッフからの支援:デアドラ・リンチ、ジェフ・ワイデナール、ローレン・モースなど。

🎯 学習目標

  1. 集合の演算(差集合や補集合など)を実行し、ベン図および定理1.1.22を使って集合の恒等式を検証する。
  2. 否定、論理和、条件文を含む命題に関する真理値表を構成し評価する。
  3. 推論規則および帰納的推論を適用して、論理的議論の妥当性を判断する。
  4. 数学的体系の要素(公理、定義、定理)を定義し適用する。
  5. 代数的および集合論的な命題に対して、直接証明、対偶証明、ケース別証明を構築する。
  6. 数学的帰納法および強帰納法の原理を用いて、恒等式、割り切れる性質、アルゴリズムの正当性を証明する。
  7. 関数(単射、全射、全単射)を定義・分類し、合成や逆関数といった操作を行う。
  8. 数列記法、文字列連結、再帰的規則を用いて離散データセットをモデル化する。
  9. 有向グラフおよび行列表現を用いて、反射的、対称的、推移的などの二項関係の性質を分析する。
  10. アルゴリズムを定義し、その7つの基本的性質(入力、出力、正確性、決定性、有限性、正しさ、汎用性)を検証する。

レッスン

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.