ALGORITMEN I
 
Lectured in 3rd year Bachelor in Industrial Sciences in Computer Science
Theory [A] 24.0
Exercises [B] 36.0
Training and projects [C] 0.0
Studytime [D] 170
Studypoints [E] 6
Level in-depth
Language of instruction Dutch
Lecturer Nog niet bepaald
Reference IBIWIT03A00008
 
Key words
Algorithms, Data structures, P170, P175, T120

Objectives
The performance of many programs doesn't depend only on the speed of the computer, but often even more on the use of efficient algorithms and data structures. This course intends to give a survey of fundamental algorithms, data structures and algorithmic methods, and to provide insight in their mechanisms.

Topics
An extensive survey of fundamental algorithms and data structures, together with an analysis of their performance:
  • Performance of programs. Asymptotic approximations.
  • Various techniques to sort data: insertion sort, Shell sort, heapsort, mergesort, quicksort, counting sort, radix sort, bucket sort.
  • Fundamental data structures: arrays, lists, stacks, queues, priority queues, trees.
  • Important data structures: hashtables, binary search trees, efficient binary search trees, B-trees.
  • Representation of graphs. Fundamental graph algorithms.


Prerequisites
Final objectives of Informatica I, Informatica II, Discrete mathematics.

Final Objectives
For a variety of fundamental programming problems, different algorithms and data structures are studied, their performance analysed, and compared. The programming exercices (using the object oriented language C++) apply those methods to various problems, often comparing the predicted performance with that of the implementations. This course therefore leads to the following objectives:
  • General scientific abilities [AWC1]: Ability to think in a critical, creative and scientific fashion.
  • General technical abilities [ATC2]: Ability to analyse engineering problems in a scientific way, and to solve them. [ATC3]: Ability to perform scientific and technical tasks in an autonomous way. [ATC4]: Ability to use research methods and techniques to solve engineering problems.
  • Specific abilities [SC1]: Ability to apply principles of software design in an environment of production, maintenance and quality management at an adequate price. [SC2]: Ability to execute independently advanced tasks in the field of general applied computer science. [SC3]: Ability to master all forms of present-day programming techniques, environments and languages, in order to apply these in practice. [SC8]: Ability to implement and apply basic algorithms and data structures. [SC10]: Ability to obtain knowledge and insight in present-day scientific research in computer science.


Materials used
Handouts.

Study costs
Copy costs.

Study guidance
Lecturers are available during programming sessions and by appointment.

Teaching Methods
Theory: lectures.
Programming exercices in computer room (programming in C++).

Assessment
Theory: oral examination (47%).
Programming exercices: permanent evaluation (53%).

The final mark of the training item is the weighted average according the coefficients mentioned above. However, if a student gains a score of 7 or less on 20 on one of the different courses (theory and programming exercices) one can turn from the arithmetical calculation of the final mark of the training item and the new marks can be awarded on consensus.



Lecturer(s)
Rudy STOOP, Jan CNOPS.