Discrete Mathematics SWEN 2308

Course description:

This course will give the students a foundation for the development of more advanced mathematical concepts which are essential to Software Engineering students. Topics covered in this course include: Set theory, methods of mathematical proofs, relations, functions, graphs, probability and recurrences.

Course Aims:

In this course, you will :
  •  learn to write a mathematical proof.
  •  strengthen your problem solving skills.
  •  learn the basic language and problem solving tools of discrete mathematics so you can use these in further study (either of computer science or of more advanced topics in discrete mathematics).

Course outcomes:

Educational Outcomes
Students will be able to:
  • use logical notation to define and reason about fundamental mathematical concepts such as sets, relations, functions, and integers.
  • evaluate elementary mathematical arguments and identify fallacious reasoning (not just fallacious conclusions).
  • synthesize induction hypotheses and simple induction proofs.
  • prove elementary properties of modular arithmetic and explain their applications in Computer Science, for example, in cryptography and hashing algorithms.
  • apply graph theory models of data structures and state machines to solve problems of connectivity and constraint satisfaction, for example, scheduling.
  • apply the method of invariants and well-founded ordering to prove correctness and termination of processes and state machines.
  • derive closed-form and asymptotic expressions from series and recurrences for growth rates of processes.
  • calculate numbers of possible outcomes of elementary combinatorial processes such as permutations and combinations.
  • calculate probabilities and discrete distributions for simple combinatorial processes; calculate expectations.
  • problem solve and study in a small team with fellow students.