CS1201

Discrete Structures

Course ID
CS1201
Department
Software Engineering
Campus
Chella Campus
Level
Undergraduate
Semester
2nd
Credit
3 + 0
Method
Lecture

Course Outlines:

Introduction to Discrete Structures: Discrete v. Continuous in Mathematics.

Propositional Calculus, Biconditionals, Equivalence, Applications to Natural Language and System Specification.

Predicates and Quantifiers, Algorithms: Searching, Linear and Binary Search.

Sorting: Bubble Sort, Insertion Sort.

Algorithmic Efficiency: Big O Notation; Theorems and Examples

Big O for Combinations of Functions, Complexity of Algorithms: Linear and Binary Search, Miscellaneous Asymptotic Analysis Topics.

Counting: Product and Sum Rules, Counting Examples.

Pigeonhole Principle: Generalized Pigeonhole Principle.

Permutations and Combinations: Binomial Theorem and Identities, Pascal’s Identity, Pascal’s Triangle.

Number Theory: Divisibility, Division Algorithm, Modular Arithmetic, Modular Arithmetic and Congruences, Prime Numbers, Fundamental Theorem of Arithmetic, GCD, LCM.

Review of Number Theory, Algorithm for div and mod (Quotient and Remainder).

Euclid’s Algorithm for GCD, Review of Asymptotic Analysis.

Integer representations, Computing representations, Integer addition algorithm, Integer multiplication algorithm, Exponentiation, Exponentiation Algorithms.

Graph Theory Introduction, Types of Graphs.

Paths and Circuits: Euler Circuits and Paths, Graph Isomorphism.

Planar Graphs, K3, 3, Euler’s Formula.

Shortest Path Problems and Dijkstra’s Algorithm, Complexity, Hamiltonian Circuits, Traveling Salesman Problem

Trees: Definitions and basic properties, Applications of Trees: Searching, Binary Search Trees, Tree Traversal: Inorder, Preorder, Postorder, Applications to file systems, expressions.

Spanning Trees: Construction of spanning trees, Breadth First Search, Depth First Search, Minimum Spanning Trees

Course Learning Outcomes

Understand the key concepts of Discrete Structures such as Sets, Functions Relations, Graphs, and Trees etc.

Solve basic problems demonstrating the understanding of fundamental concepts of logic, reasoning, algorithms, graphs.

Apply discrete structures into computing problems such as Cryptography, Artificial Intelligence

Teaching Methodology (Proposed as applicable):

Lectures (audio/video aids), Written Assignments/ Quizzes, Tutorials, Case Studies relevant to engineering disciplines, Semester Project, Guest Speaker, Industrial/ Field Visits, Group discussion, Report Writing

Assessment:

Mid Term, Report writing/ Presentation, Assignments, Project Report, Quizzes, Final Term

Suggested Books:

K. Rosen, “Discrete Mathematics and Its Applications”, latest Edition.

S. Epp, “Discrete Mathematics with Applications”, latest edition.

There are 133 total credit hours to complete the Software Engineering degree.