Discrete Mathematics
Logic, proofs and basic number theory:
Logic: negation, conjunction, disjunction, implication, bi-implication (equivalence), de Morgan's law, quantifiers, divisibility, modular arithmetic, fundamental theorem of arithmetic, proof by induction.
Combinatorics and recurrence relations:
Basic combinatorics: permutations, combinations, variations. Inclusion/exclusion principle. The aspects of recurrence relations: arithmetic and geometric sequences, linear nonhomogeneous recurrence relations with constant coefficients, simultaneous recurrence relations.
Graph theory and Graph algorithms:
Definitions and properties of different types of graphs: simple, undirected/directed, tree, planar, eulerian and hamiltonian graph, spanning tree, TSP (Travelling salesman problem) etc. DFS (Depth First Search) and BFS (Breadth First Search), Dijkstra’s, Prim’s and Kruskal’s algorithms.
Modeling:
Project where the student implements and tests simple graph algorithms in a programming language of their choice, e.g. Python.