3 ECTS credits
90 h study time

Offer 1 with catalog number 1019188BNR for all students in the 1st semester at a (B) Bachelor - advanced level.

Semester
1st semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
Dutch
Faculty
Faculteit Ingenieurswetenschappen
Department
Electronics and Informatics
Educational team
Bart Jansen (course titular)
Lubos Omelina
Activities and contact hours
24 contact hours Lecture
18 contact hours Seminar, Exercises or Practicals
Course Content

This course introduces a series of algorithms and data structures that are fundamental to computer science. Both identifying suited methods for specific problems as an in depth discussion on the operation of the algorithms, by means of JAVA implementation, are covered.




  • Part 1: Basic algorithms


    • Sorting: merge sort, heap sort, quick sort, radix sort.


    • String matching: Rabin-Karp, Knuth-Morris-Pratt, subsequences and spelling correction.


    • Trees:  representation of binary search trees, red-black trees, AVL trees, heaps.




 




  • Part 2: Advanced concepts


    • Game trees, minimax methods and alpha-beta pruning


    • Graphs: representations and search, topological sorting, minimum spanning trees, shortest paths (e.g. Dijkstra).


    • State machines, Markov models, Hidden Markov Models (Baum-Welch, Viterbi, forward-backward algorithm).


    • Convexe optimalisatie


    • Queuing theory


    • Clustering



Additional info

Extensive experience with JAVA is recommended.

Study Material




  • Slides and notes will be provided electronically.


  • Data structures and problem solving using JAVA, Mark Allen Weiss


  • Optional: any JAVA course book

Learning Outcomes

General competencies

Objectives

This course provides an introduction to some of the most important non numerical algorithms and data structures supporting these algorithms. This course provides the students with the required knowledge and skills to understand more complex algorithms and data structures that are introduced in specific engineering domains later in the curriculum (e.g. image processing, artificial intelligence …). This course will also provide the students with the necessary knowledge and skills to evaluate and compare different solutions for a given problem with respect to time and memory complexity.


Competences
A series of non numerical algorithms and associated data structures are taught (see below, Content). The students need to grasp the theoretical background of the algorithms presented, such that they can apply the algorithms in concrete cases and such that they can adapt and extend the given techniques in order to meet specific application demands.  During the exercise sessions, exercises are made in JAVA to train the above mentioned aspects.  Additionally, the student must be capable of identifying the different algorithms suited for solving a specific problem, analyzing and comparing them and proposing the best solution for the given constraints. Also, the student must be capable of comparing the different solutions in terms of memory and time complexity. Students must acquire sufficient knowledge and skills for understanding alternative or more advances methods described in literature.

This course contributes to the following programme outcomes of the Bachelor in Engineering Sciences:

The Bachelor in Engineering Sciences has a broad fundamental knowledge and understanding of
1. scientific principles and methodology of exact sciences with the specificity of their application to engineering;
2. engineering principles and the ability to apply them to analyse key engineering processes and to investigate new and emerging technologies;
3. integrated design methods according to customer and user needs with the ability to apply and integrate knowledge and understanding of other engineering disciplines to support the own specialisation engineering one;
4. fundamental, basic methods and theories to schematize and model problems or processes.

The Bachelor in Engineering Sciences can
5. define, classify, formulate and solve engineering problems, identify the constraints and is able to delimit and formulate the tasks in order to submit these to a critical examination and to check the solutions for their sustainability and social relevance;
6. monitor, interpret and apply the results of analysis and modelling in order to bring about continuous improvement;
12. reason in a logical, abstract and critical way;

The Bachelor in Engineering Sciences has
16. a creative, problem-solving, result-driven and evidence-based attitude, aiming at innovation;
17. a critical attitude towards one’s own results and those of others;

 

Grading

The final grade is composed based on the following categories:
Oral Exam determines 50% of the final mark.
Written Exam determines 50% of the final mark.

Within the Oral Exam category, the following assignments need to be completed:

  • Oral exam with a relative weight of 1 which comprises 50% of the final mark.

    Note: oral exam (50%) that evaluates the JAVA apllication developed individually by each student.

Within the Written Exam category, the following assignments need to be completed:

  • Written exam with a relative weight of 1 which comprises 50% of the final mark.

Additional info regarding evaluation

The exam consists of a written exam (50%) that evaluates the knowledge of and the insight in the above mentioned data structures and algorithms and an oral exam (50%) that evaluates the JAVA apllication developed individually by each student.

Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This offer is part of the following study plans:
Bachelor of Engineering: Electronics and Information Technology Profile Profile Computer Science (only offered in Dutch)