-----
Information about the course of study 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:

•Clearly explain how algorithms perform computations and manipulate data structures through assignments, method invocations, nested loops, and recursion, where the language of specification ranges from natural language to a concrete programming language (Java).
•Implement abstractly specified computations and data structures in an imperative programming language (Java), making use of the abstractions provided by the language.
•Analyze time and space usage of algorithms/programs, and use this to assess scalability.
•Argue for correctness of programs.
•Choose among and make use of the most important algorithms and data structures in libraries, based on knowledge of their functionality and complexity.
•Design algorithms for specialized problems by using and combining known algorithms and data structures.
•Account for and describe the most important hardware and programming language factors influencing the speed at which a program runs, for example cache performance, and use of CPU cores.

Fagligt indhold:

This course serves as an introduction to data structures, algorithms and complexity for freshly educated programmers.

Topics covered are, among others: complexity analysis (using tilde, order-of-growth, and big-O notation), standard library algorithms and data structures for: sorting, sets, maps, and graphs, correctness arguments, algorithmic problem solving by reduction to known problems, encapsulation of abstract data structures, and hardware factors affecting performance.

Læringsaktiviteter:

12 forelæsninger + lejlighedsvis øvelser i forbindelse med undervisningen

The lectures will cover theory and the exercise will train practical issues of applying the theory.

Emphasis is put theoretical reasoning as well as on concrete experience with applying theoretical ideas in programming. In particular, doing a number of programming exercises will be a mandatory part of the course.

-----
NB!! Course restriction I!! Please note that there is a course restriction between this course and the SDT course Performance and Test

Eksamensform og -beskrivelse:

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

During this course students will be required to hand in mandatory assignments (e.g. attendance, papers, exercises, presentations, productions), that need to be completed/approved before being eligible to register for the examination and e.g. being allowed to submit written work for examination. Failure to hand in these mandatory assignments on time will mean that the registration for examination is annulled.

The duration of the written examination is 4 hour(s).

Litteratur udover forskningsartikler:

Robert Sedgewick and Kevin Wayne: Algorithms, 4th edition, Addison-Wesley, 2011.