Discrete mathematics (MAD101)
Vietnamese title: Toán rời rạc
Credits: 3

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.

Learning outcomes:
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.
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.
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.
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.
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.
Solve counting problems LO6.1 Use basic rules for counting LO6.2 Use recurrence relations for counting, including divide-and-conquer recurrence relations.
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.
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

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).

Materials:
description: Adam Drozdek. Data structure and Algorithms in Java. 3rd Edition.
description: Computerized tools (for example C programming tools, Maxima http://maxima.sourceforge.net/) (CT)
description: Discrete Mathematics and its applications
author: Kenneth Rosen
publisher: Mc.Graw Hill, IE
published_date: 2007
edition: Ed.7 (or 6)
isbn: 978-0073383095
description: Powerpoint image in CD + Powerpoint prepared by previous lecturers (PP)
description: Teaching Suggestion and Applications of Discrete Mathematics for ST1 (TS)
description: Testbank for ST1

Assessments:
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
no_question: OP1: MC or a suitable format // OP2: (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: 15 questions within 30 minutes
grading_guide: PT 1: Chapter 1, Chapter 2, Chapter 5
PT 2: Chapter 3, Chapter 4, Chapter 7
PT 3: Chapter 9, Chapter 10
note: OP1: by instructor, and by suitable means (computer, paper, oral...)
OP2: (For Constructivism Approach only): Follow lecturer's proposal
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
no_question: OP1: Open // OP2: (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: At least 5/ chapter
grading_guide: Assignment 1: Chapter 1, Chapter 2, Chapter 5
Assignment 2: Chapter 3, Chapter 4, Chapter 7
note: OP1: Each assignment is divided into two parts: the take-home component counts for no more than 50% of the total grade, and the in-class component counts for at least 50% (this may take the form of a presentation, essay, problem-solving, etc.).
OP2: (For Constructivism Approach only): Follow lecturer's proposal
category: Programming Assignment
type: on-going
weight: 10.0
duration: at home/in class
question_type: LO3, LO4, LO7, LO8
no_question: OP1: Open // OP2: (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: At least 1/ chapter
grading_guide: Chapter 3, Chapter 4, Chapter 9, Chapter 10
note: Students are expected to write codes to implement algorithms including, but not restricted to, those covered in the scope.
Instructor may combine with other in-class assessment methods to grade the computer assignment, in which the work (source files,...) should accounts for up to 50% of the total grade.
category: Final Exam
type: Final exam
weight: 40.0
duration: 60'
no_question: Computer gradable
knowledge_and_skill: 50
grading_guide: All studied chapters. At least 6 questions/chapter
note: by Exam Board

Schedule:
session: 0 Introduction
1.1 Propositional Logic (1.1 and 1.2, skip the topic on Logic Circuits)
learning_outcomes: TU
materials: MAD101_Part1
session: 1.2 Propositional Equivalences (1.3, skip the topic on Satisfiability)
learning_outcomes: TU
materials: MAD101_Part2
session: 1.3 Predicates (1.4)
learning_outcomes: TU
session: 1.3 Quantifiers
learning_outcomes: TU
session: 1.4 Nested Quantifiers (1.5)
learning_outcomes: TU
session: 1.4 Nested Quantifiers (1.5) (cont.)
learning_outcomes: TU
session: 1.5 Rules of Inference (1.6)
learning_outcomes: TU
session: 1.5 Rules of Inference (1.6) (cont.)
learning_outcomes: IT
session: 2.1 Introduction to sets
learning_outcomes: TU
session: 2.2 Set operations
learning_outcomes: TU
session: 2.3 Functions (2.3, skip the topic on Partial Functions)
learning_outcomes: TU
session: 2.3 Functions (2.3, skip the topic on Partial Functions) (cont.)
learning_outcomes: TU
session: 2.4 Sequences and Summations (2.4, skip the topic on Recurrence relations)
learning_outcomes: TU
session: 2.4 Sequences and Summations (2.4, skip the topic on Recurrence relations) (cont.)
learning_outcomes: TU
session: 5.1 Basic Counting Principles (6.1)
learning_outcomes: TU
session: 5.1 Basic Counting Principles (6.1) (continued)
learning_outcomes: TU
session: Review
session: Progress Test 1
session: 3.1 Algorithms
learning_outcomes: TU
session: 3.2 The Growth of Functions
learning_outcomes: TU
session: 3.3 Complexity of Algorithms (3.3, skip the topics on Matrix multiplication, Algorithmic Paradigms)
learning_outcomes: TU
session: 3.4 The Integers and Division (4.1, 4.5, and the topic on Classical Cryptography 4.6)
learning_outcomes: TU
session: 3.4 The Integers and Division (4.1, 4.5, and the topic on Classical Cryptography 4.6) (cont.)
learning_outcomes: TU
session: 3.5 Primes and Greatest Common Divisors (4.3)
learning_outcomes: TU
session: 3.5 Primes and Greatest Common Divisors (4.3) (cont.)
learning_outcomes: TU
session: 3.6 Intergers and Algorithms (4.2)
learning_outcomes: TU
session: 3.6 Intergers and Algorithms (4.2) (cont.)
learning_outcomes: TU
session: 3.6 Intergers and Algorithms (4.2) (cont.)
learning_outcomes: TU
session: 4.1 Mathematical Induction (5.1)
learning_outcomes: IT
session: 4.2 Strong Induction (5.2)
learning_outcomes: IT
session: 4.3 Recursive Definitions and Structural Induction (5.3)
learning_outcomes: IT
session: 4.3 Recursive Definitions and Structural Induction (5.3) (cont.)
learning_outcomes: IT
session: 4.4 Recursive Algorithms (5.4)
learning_outcomes: TU
session: 4.4 Recursive Algorithms (5.4) (cont.)
learning_outcomes: TU
session: 7.1 Recurrence Relations (8.1, skip the topic on Dynamic programming)
learning_outcomes: TU
session: 7.3 Divide-and-Conquer Algorithms and Recurrence Relations (8.3)
learning_outcomes: IT
session: Review
learning_outcomes: U
session: Progress Test 2
learning_outcomes: U
session: 9.1 Graphs and Graph Models (10.1)
learning_outcomes: I
session: 9.2 Graph Terminology and Special Types of Graphs
learning_outcomes: TU
session: 9.3 Representing Graphs and Graph Isomorphism (10.3)
learning_outcomes: TU
session: 9.3 Representing Graphs and Graph Isomorphism (10.3) (cont.)
learning_outcomes: TU
session: 9.4 Connectivity (10.4)
learning_outcomes: TU
session: 9.4 Connectivity (10.4) (cont.)
learning_outcomes: TU
session: 9.5 Euler and Hamilton Paths (10.5)
learning_outcomes: TU
session: 9.5 Euler and Hamilton Paths (10.5) (cont.)
learning_outcomes: TU
session: 9.6 Shortest-Path Problems (10.6)
learning_outcomes: TU
session: 9.6 Shortest-Path Problems (10.6) (cont.)
learning_outcomes: TU
session: 10.1 Introduction to Trees (11.1)
learning_outcomes: IT
session: 10.1 Introduction to Trees (11.1) (cont.)
learning_outcomes: IT
session: 10.2 Applications of Trees (11.2)
learning_outcomes: TU
session: 10.2 Applications of Trees (11.2) (cont.)
learning_outcomes: TU
session: 10.3 Tree Traversal (11.3)
learning_outcomes: TU
session: 10.3 Tree Traversal (11.3) (cont.)
learning_outcomes: TU
session: 10.4 Spanning Trees (11.4)
learning_outcomes: TU
session: 10.4 Spanning Trees (11.4) (cont.)
learning_outcomes: TU
session: 10.5 Minimum Spanning Trees (11.5)
learning_outcomes: TU
session: 10.5 Minimum Spanning Trees (11.5) (cont.)
learning_outcomes: TU
session: Review
learning_outcomes: U
session: Progress Test 3
learning_outcomes: U