[major=SE | course_id=MAD101 | syllabus_id=13144 | semester=2 | combo=core | title=Discrete mathematics]
Course ID: MAD101
Title EN: Discrete mathematics
Title VI: Toán rời rạc
Credits: 3.0
Prerequisites: 
Description: Upon finishing the course, students must acquire:
1. the following knowledge: (ABET a.1)
• Concepts of logical expressions & predicate logic.
• The method of induction and recursive definition.
• Concepts of algorithms, recursive algorithms, the complexity.
• Recurrence relations and divide-and-conquer algorithms.
• Application of integers and congruence in information technology.
• Set structure and map, counting principles and combinatorics concepts.
• The terminologies and properties of graphs & trees & weighted graphs.
• The applications of graphs, trees and weighted graphs in information technology.

2. the following skills: (ABET a.2)
• Manipulate logical expressions & produce equivalent logical expressions.
• Produce proof of simple mathematical propositions, including applying induction method.
• Evaluate complexity of algorithms.
• Solving simple congruence equations.
• Apply counting techniques in evaluating various set cardinalities.
• Solve counting problems, apply in analyze algorithms.
• Apply graph’s algorithms to solve problems related to graph theory.
Student tasks: Students must attend at least 80% of contact hours in order to be accepted to the final examination.
Tools: - Testbank for ST1.
- Powerpoint image in CD + Powerpoint prepared by previous lecturers (PP).
- Computerized tools (for example C programming tools, Maxima http://maxima.sourceforge.net/) (CT)
- Teaching Suggestion and Applications of Discrete Mathematics for ST1 (TS).
Course type: traditional
Decision: 932/QĐ-ĐHFPT dated 08/22/2025
Approved date: 2025-08-22
CLO1: Manipulate logical expressions and use logic for inference LO1.1 Determine the truth value of a proposition; check if two propositions are equivalent; translate between logical expressions and sentences for propositional logic. LO1.2 Determine the truth value of a proposition; check if two propositions are equivalent; translate between logical expressions and sentences for predicate logic. LO1.3 Manipulate logical expressions with nested quantifiers. LO1.4 Recognize the inference rules used in a valid statemment; use inference rules to draw conclusions; check if a statement is valid.
[1] category=Progress Test; type=quiz; weight=30.0; duration=30 minutes; question_type=PT 1: LO1, LO2, LO6
PT 2: LO3, LO4, LO5, LO6
PT 3: LO7, LO8; grading_guide=PT 1: Chapter 1, Chapter 2, Chapter 5
PT 2: Chapter 3, Chapter 4, Chapter 7
PT 3: Chapter 9, Chapter 10; completion_criteria=; clos=>0
[2] category=Assignments/Exercises; type=on-going; weight=20.0; duration=at home/in class; question_type=Assignment 1: LO1, LO2, LO6
Assignment 2: LO3, LO4, LO5, LO6; grading_guide=Assignment 1: Chapter 1, Chapter 2, Chapter 5
Assignment 2: Chapter 3, Chapter 4, Chapter 7; completion_criteria=; clos=>0
[3] category=Programming Assignment; type=on-going; weight=10.0; duration=at home/in class; question_type=LO3, LO4, LO7, LO8; grading_guide=Chapter 3, Chapter 4, Chapter 9, Chapter 10; completion_criteria=; clos=>0
[4] category=Final Exam; type=Final exam; weight=40.0; duration=60'; question_type=; grading_guide=All studied chapters. At least 6 questions/chapter; completion_criteria=; clos=4
[1] desc=Adam Drozdek. Data structure and Algorithms in Java. 3rd Edition.; author=; publisher=; edition=; isbn=; main=; online=; note=
[2] desc=Computerized tools (for example C programming tools, Maxima http://maxima.sourceforge.net/) (CT); author=; publisher=; edition=; isbn=; main=; online=; note=
[3] desc=Discrete Mathematics and its applications; author=Kenneth Rosen; publisher=Mc.Graw Hill, IE; edition=Ed.7 (or 6); isbn=978-0073383095; main=True; online=; note=
[4] desc=Powerpoint image in CD + Powerpoint prepared by previous lecturers (PP); author=; publisher=; edition=; isbn=; main=; online=; note=
[5] desc=Teaching Suggestion and Applications of Discrete Mathematics for ST1 (TS); author=; publisher=; edition=; isbn=; main=; online=; note=
[6] desc=Testbank for ST1; author=; publisher=; edition=; isbn=; main=; online=; note=
Session 1: 0 Introduction
1.1 Propositional Logic (1.1 and 1.2, skip the topic on Logic Circuits)
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Materials: MAD101_Part1
Download: Exercises Chapter 1

Session 2: 1.2 Propositional Equivalences (1.3, skip the topic on Satisfiability)
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Materials: MAD101_Part2
Download: Exercises Chapter 1

Session 3: 1.3 Predicates (1.4)
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Download: Exercises Chapter 1

Session 4: 1.3 Quantifiers
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Download: Exercises Chapter 1
CLO2: Perform basic operations on sets, functions and sequences LO2.1 Distinguish basic terminologies in set theory; find the power set and cartersian product; represent a subset using binary bits. LO2.2 Perform operations on sets; check if two sets are equal. LO2.3 Determine if a given rule represents a function; perform operations on functions and manipulate functions inlvolving the floor and the ceiling functions. LO2.4 Determine if a function is one-to-one, onto or a bijection, and describe how these properties can be used to compare two sets. LO2.5 Find a formula for a sequence; evaluate a finite sum with a possible use of special summations.
Session 1: 1.4 Nested Quantifiers (1.5)
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Download: Exercises Chapter 1

Session 2: 1.4 Nested Quantifiers (1.5) (cont.)
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Download: Exercises Chapter 1

Session 3: 1.5 Rules of Inference (1.6)
Topic: Offline; Teaching type: LO1; LO: TU
ITU: Textbook Chapter 1
Download: Exercises Chapter 1

Session 4: 1.5 Rules of Inference (1.6) (cont.)
Topic: Offline; Teaching type: LO1; LO: IT
ITU: Textbook Chapter 1
Download: Exercises Chapter 1
CLO3: Analyze basic algorithms written in pseudo codes and determine their complexities LO3.1 Determine if a procedure is an algorithm; work out basic algorithms written in pseudocodes including searching, sorting and greedy algorithms. LO3.2 Find big-O, big-Omega and big-Theta estimates of a function; describe complexity of an algorithm.
Session 1: 2.1 Introduction to sets
Topic: Offline; Teaching type: LO2; LO: TU
ITU: Textbook Chapter 2
Download: Exercises Chapter 2

Session 2: 2.2 Set operations
Topic: Offline; Teaching type: LO2; LO: TU
ITU: Textbook Chapter 2
Download: Exercises Chapter 2

Session 3: 2.3 Functions (2.3, skip the topic on Partial Functions)
Topic: Offline; Teaching type: LO2; LO: TU
ITU: Textbook Chapter 2
Download: Exercises Chapter 2

Session 4: 2.3 Functions (2.3, skip the topic on Partial Functions) (cont.)
Topic: Offline; Teaching type: LO2; LO: TU
ITU: Textbook Chapter 2
Download: Exercises Chapter 2
CLO4: Discuss applications of modular arithmetic and analyze algorithms on integers LO4.1 Perform integer division and modular arithmetic; apply congruence in generating pseudorandom numbers and in cryptology. LO4.2 Find the base b expansion of an integer; perform binary operations and modular exponentiation on integers. LO4.3 Check if a number is prime and find prime factorization of an integer; find greatest common divisor and least common multiple.
Session 1: 2.4 Sequences and Summations (2.4, skip the topic on Recurrence relations)
Topic: Offline; Teaching type: LO2; LO: TU
ITU: Textbook Chapter 2
Download: Exercises Chapter 2

Session 2: 2.4 Sequences and Summations (2.4, skip the topic on Recurrence relations) (cont.)
Topic: Offline; Teaching type: LO2; LO: TU
ITU: Textbook Chapter 2
Download: Exercises Chapter 2

Session 3: 5.1 Basic Counting Principles (6.1)
Topic: Offline; Teaching type: LO6; LO: TU
ITU: Textbook Chapter 5
Download: Exercises Chapter 5

Session 4: 5.1 Basic Counting Principles (6.1) (continued)
Topic: Offline; Teaching type: LO6; LO: TU
ITU: Textbook Chapter 5
Download: Exercises Chapter 5
CLO5: Use induction and recursive definition to prove a statement or to describe an object, and write recursive algorithms LO5.1 Prove mathematical statements by induction. LO5.2 Manipulate sequences and sets defined by recursion. LO5.3 Work out recursive algorithms, including the mergesort algorithm; distinguish between iterative and recursive algorithms.
Session 1: Review
Topic: Offline; Teaching type: LO1, LO2, LO6; LO: 
ITU: 

Session 2: Progress Test 1
Topic: Offline; Teaching type: LO1, LO2, LO6; LO: 
ITU: 

Session 3: 3.1 Algorithms
Topic: Offline; Teaching type: LO3; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 4: 3.2 The Growth of Functions
Topic: Offline; Teaching type: LO3; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3
CLO6: Solve counting problems LO6.1 Use basic rules for counting LO6.2 Use recurrence relations for counting, including divide-and-conquer recurrence relations.
Session 1: 3.3 Complexity of Algorithms (3.3, skip the topics on Matrix multiplication, Algorithmic Paradigms)
Topic: Offline; Teaching type: LO3; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 2: 3.4 The Integers and Division (4.1, 4.5, and the topic on Classical Cryptography 4.6)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 3: 3.4 The Integers and Division (4.1, 4.5, and the topic on Classical Cryptography 4.6) (cont.)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 4: 3.5 Primes and Greatest Common Divisors (4.3)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3
CLO7: Analyze the structure of a graph and find shortest paths in a weighted graph LO7.1 Classify and describe a graph; use hand-shaking theorem to analyze a graph; identify special graphs including bipartite graphs. LO7.2 Represent a graph using incidence and adjacency matrices; determine if two graphs are isomorphic. LO7.3 Check connectivity of a graph and identify its connected components; count paths in a graph. LO7.4 Determine if a graph has Euler/Hamilton paths/circuits; find Euler and Hamilton paths/circuits in a graph. LO7.5 Run Dijsktra's algorithm to determine the shortest paths and the shortest distance in a weighted graph.
Session 1: 3.5 Primes and Greatest Common Divisors (4.3) (cont.)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 2: 3.6 Intergers and Algorithms (4.2)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 3: 3.6 Intergers and Algorithms (4.2) (cont.)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3

Session 4: 3.6 Intergers and Algorithms (4.2) (cont.)
Topic: Offline; Teaching type: LO4; LO: TU
ITU: Textbook Chapter 3
Download: Exercises Chapter 3
CLO8: Analyze the structure of a tree and describe algorithms using trees LO8.1 Check if a graph is a tree, and identify basic terminologies of a tree; use properties of m-ary trees to solve problems. LO8.2 Build binary search trees and decision trees; analyze complexities of algorithms described using binary search trees and decision trees. LO8.3 Recognize and construct prefix codes; build optimal trees using Huffman coding. LO8.4 Traverse a tree and use tree traversal to generate notations; evaluate prefix and postfix expressions. LO8.5 Run Depth-first search and Breadth-first search algorithms to find spanning trees LO8.6 Find minimum spanning trees using Prim, Kruskal,... algorithms
Session 1: 4.1 Mathematical Induction (5.1)
Topic: Offline; Teaching type: LO5; LO: IT
ITU: Textbook Chapter 4
Download: Exercises Chapter 4

Session 2: 4.2 Strong Induction (5.2)
Topic: Offline; Teaching type: LO5; LO: IT
ITU: Textbook Chapter 4
Download: Exercises Chapter 4

Session 3: 4.3 Recursive Definitions and Structural Induction (5.3)
Topic: Offline; Teaching type: LO5; LO: IT
ITU: Textbook Chapter 4
Download: Exercises Chapter 4

Session 4: 4.3 Recursive Definitions and Structural Induction (5.3) (cont.)
Topic: Offline; Teaching type: LO5; LO: IT
ITU: Textbook Chapter 4
Download: Exercises Chapter 4
Session 1: 4.4 Recursive Algorithms (5.4)
Topic: Offline; Teaching type: LO5; LO: TU
ITU: Textbook Chapter 4
Download: Exercises Chapter 4

Session 2: 4.4 Recursive Algorithms (5.4) (cont.)
Topic: Offline; Teaching type: LO5; LO: TU
ITU: Textbook Chapter 4
Download: Exercises Chapter 4

Session 3: 7.1 Recurrence Relations (8.1, skip the topic on Dynamic programming)
Topic: Offline; Teaching type: LO6; LO: TU
ITU: Textbook Chapter 7
Download: Exercises Chapter 7

Session 4: 7.3 Divide-and-Conquer Algorithms and Recurrence Relations (8.3)
Topic: Offline; Teaching type: LO6; LO: IT
ITU: Textbook Chapter 7
Download: Exercises Chapter 7
Session 1: Review
Topic: Offline; Teaching type: ; LO: U
ITU: 

Session 2: Progress Test 2
Topic: Offline; Teaching type: LO3, LO4, LO5, LO6; LO: U
ITU: 

Session 3: 9.1 Graphs and Graph Models (10.1)
Topic: Offline; Teaching type: LO7; LO: I
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 4: 9.2 Graph Terminology and Special Types of Graphs
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9
Session 1: 9.3 Representing Graphs and Graph Isomorphism (10.3)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 2: 9.3 Representing Graphs and Graph Isomorphism (10.3) (cont.)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 3: 9.4 Connectivity (10.4)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 4: 9.4 Connectivity (10.4) (cont.)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9
Session 1: 9.5 Euler and Hamilton Paths (10.5)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 2: 9.5 Euler and Hamilton Paths (10.5) (cont.)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 3: 9.6 Shortest-Path Problems (10.6)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9

Session 4: 9.6 Shortest-Path Problems (10.6) (cont.)
Topic: Offline; Teaching type: LO7; LO: TU
ITU: Textbook Chapter 9
Download: Exercises Chapter 9
Session 1: 10.1 Introduction to Trees (11.1)
Topic: Offline; Teaching type: LO8; LO: IT
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 2: 10.1 Introduction to Trees (11.1) (cont.)
Topic: Offline; Teaching type: LO8; LO: IT
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 3: 10.2 Applications of Trees (11.2)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 4: 10.2 Applications of Trees (11.2) (cont.)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10
Session 1: 10.3 Tree Traversal (11.3)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 2: 10.3 Tree Traversal (11.3) (cont.)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 3: 10.4 Spanning Trees (11.4)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 4: 10.4 Spanning Trees (11.4) (cont.)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10
Session 1: 10.5 Minimum Spanning Trees (11.5)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 2: 10.5 Minimum Spanning Trees (11.5) (cont.)
Topic: Offline; Teaching type: LO8; LO: TU
ITU: Textbook Chapter 10
Download: Exercises Chapter 10

Session 3: Review
Topic: Offline; Teaching type: LO7, LO8; LO: U
ITU: 

Session 4: Progress Test 3
Topic: Offline; Teaching type: LO7, LO8; LO: U
ITU: