Basic ability to program in some imperative programming language (Java, Python, C/C++/C#, etc.), using conditions, loops, arrays, methods/procedures/functions, and simple recursion. This may be obtained by following Object Oriented Programming - Introduction, or Introductory Programming or similar courses.
-----

Information about the course of study This course is mandatory for students who are enrolled on This course is mandatory for students who are enrolled on on the Master of Science in IT, study programme Software Development and Technology, Development Technology track.

Læringsmål:

After the course the student should be able to:

* List, describe and apply formal definitions

* Conduct formal proofs

* Work with regular languages and finite and infinite state machines

* Account for and use models of computation and specification

* Carry out counting and the asymptotic analysis of programs

* Use combinatorial structures

* Use graphs

* Assess probabilities of events

* Compute with expectations

Fagligt indhold:

The course is a introduction to discrete mathematics with focus on applications in the information technologies and software development. In particular, the course develops the necessary terminology and conceptual tools needed for later courses such as Advanced Models and Programs, Algorithm Design, Database Tuning, Mobile and Distributed Systems and Efficient AI Programming). This includes:

* the analysis of algorithms, including basic randomised algorithms,

* models of computation, such as logic and automata

* databases, such as relations and functions

* models of networks (technological as well as social), such as graphs

The course puts a emphasis on practical experimentation. Applications are expected to vary, but can include Google's PageRank algorithm, natural language processing, Bayesian spam filters, models for social networks, or data mining.

Central terms and concepts: Logic, specifications, sets and sequences, functions, sums, induction and recursion, permutations and combinations, discrete probability, recurrence relations, relations, graphs, trees, finite state machines, grammars.

Læringsaktiviteter:

14 ugers undervisning bestående af forelæsninger og øvelser

14 weeks of teaching consisting of lectures and exercises

NB!! Course restriction I!! Please note that there is a course restriction between this course and the SDT course Modelling and Design.
If you have already taken Modeling and Design you need to register for the course Foundations of Computing - Algorithms and Data Structures.

Eksamensform og -beskrivelse:

X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

External examiner, 7-point marking scale, A1: Written examination with *no* written and printed aids
The duration of the written examination is 4 hour(s).

Litteratur udover forskningsartikler:

Course notes.
Kenneth Rosen, Discrete Mathematics and Its Applications, 6/e, McGraw Hill, ISBN: 007288008