Recommended prerequisite for participation in
The module builds on knowledge gained from the courses: The
Theoretical Basis of Computer Science, Algorithms and Data
Structures as well as Syntax and Semantics.
Content, progress and pedagogy of the
This is an English translation of the module. In case of
discrepancy between the translation and the Danish version, the
Danish version of the module is valid.
The student must gain knowledge of the following theories and
- algorithm design techniques such as share-and-rule, greedy
algorithms, dynamic programming, backtracking, branch-and-bound
algorithms, randomized algorithms, linear programming, and
approximate algorithms for solving NP-complete problems.
- techniques in advanced algorithm analysis such as amortized
analysis, analysis of expected complexity and experiments with
- examples of core algorithms and data structures for solving a
variety of problems from different areas of computer science such
as external memory algorithms, multi-threaded algorithms, text
search, advanced graph algorithms, and geometric calculations.
- satisfiability, Boolean modeling and computation, AI
applications, planning and scheduling.
- binary decision charts, algorithms for this data structure and
application to solve satisfiability problems
- be able to account accurately and using the subject's
terminology and notation for important results within course topics
and explain the principles behind the most important algorithms and
- be able to select and apply algorithm design and compliance
techniques for a given problem
- be able to recognize a range of problems from different areas
of computer science and select the most appropriate algorithms and
data structures to solve them
- be able to apply concepts and techniques within algorithms and
- facing a computer science problem, be able to develop and
analyze efficient algorithms and data structures for solving the
Type of instruction
The teaching is organized in accordance with the general
teaching methods for the education, cf. section 17.
Extent and expected workload
The student is expected to spend 30 hours per ECTS, which for
this activity means 150 hours.
|Name of exam||Algorithms and Satisfiability|
|Type of exam|
Written or oral exam
|Assessment||7-point grading scale|
|Type of grading||Internal examination|
|Criteria of assessment||The criteria of assessment are stated in the Examination
Policies and Procedures|
Contact: Study Board for Computer Science via firstname.lastname@example.org or