This page presents the “modules”, or the topics that are covered in this course.
Click on the tile associated with a module to go to a page containing that module’s contents.
Boolean functions, logic gates and logic circuits, minimization of circuits, application to logic design.
Formal languages and grammars, finite state machines, automata, Turing machines, application to compilers.
Matrices, determinants, systems of linear equations, application to computer graphics
Binary relations, n-ary relations, closures of relations, equivalence relations, partial ordering, application to relational databases.
Directed and undirected graphs, representations, classification, isomorphism, connectivity, Euler and Hamilton paths, shortest paths, planarity, coloring, application to computer networks.
Trees, tree traversal, spanning trees, minimum spanning trees, Huffman encoding, Prim’s and Kruskal’s algorithms, applications to network routing.
Recurrence, generating functions, inclusion-exclusion principle, divide-and-conquer, application to algorithm design.
Program verification techniques, Hoare’s axiomatic approach.