This course is intended to help students to understand mathematical reasoning, teach them how to work with discrete structures and solve problems by use of algorithms.
At the end of the course the learner should be able to:
a) Read, comprehend and construct mathematical arguments;
b) Perform combinatorial analysis to solve counting problems;
c) Work with discrete structures;
d) Apply discrete mathematics to construct models; and
e) Construct algorithms to solve problems and to use the computers to implement the algorithms.