Algorithms and Data Structures: Study Manual v2021.2
Algorithms and Data Structures: Study Manual v2021.2
Study Manual
v2021.2
1 Introduction ........................................................................................................................... 3
2 Learning goals....................................................................................................................... 3
3 Program.................................................................................................................................. 3
3.1 Content ........................................................................................................................... 3
3.2 Working method ............................................................................................................. 4
3.2.1 Full-time ...................................................................................................................... 4
3.2.2 Part-time ..................................................................................................................... 4
3.2.3 On-line collaboration .................................................................................................. 4
3.3 Material ........................................................................................................................... 4
3.4 Professional evaluation .................................................................................................. 5
3.5 Planning .......................................................................................................................... 6
3.6 Lecturers and contact information .................................................................................. 7
4 Review and assessment....................................................................................................... 7
4.1 Tests and test dates ....................................................................................................... 7
4.2 Assessment .................................................................................................................... 7
4.3 Theoretical test results, inspection and objection .......................................................... 8
Data structures builds on the knowledge gained during the first year programming lessons
(Programming, OOP1 and OOP2). During this course you will learn how different data
structures work internally and learn how to apply them, and most importantly when to apply
which data structure. The course consists of:
2 Learning goals
After this course you will be:
• able to apply OOP principles
• able to choose the correct data structure given a number of requirements and use them
appropriately
• able to write recursive methods
• familiar with the classes and interfaces from the Java Collection Framework
• able to determine the efficiency of algorithms
• able to explain how some different sorting algorithms work
• able to use functional interfaces and lambda expressions
3 Program
3.1 Content
Below you will find the content per week for block 1.
Week Subject
1 Recap OOP (references, wrappers, generics, interfaces), Abstract Datatypes,
Iterator
2 Recursion
3 List, ArrayList, LinkedList, Linear Search, Binary Search
4 Big-O efficiency, simple sorts, Comparator
5 MergeSort, QuickSort
6 Stack, Queue, Priority Queue, Heap
7 Hashing, Sets, Maps
Below you will find the content per week for block 2.
Week Subject
1 Functional interfaces, Lambda expressions
2 Streams, Collectors, Method chaining
3 (Binary) Search Trees
4 Undirected Graph, Minimal Spanning Tree
5 Path Searching, Dijkstra Shortest Path
6 Graph Search Heuristics, A*-search
7 State Machine Algorithm
3.2.1 Full-time
Per week there will be 3 sessions. Two of those sessions are on-line sessions taking 2 hours,
the third is on-campus session.
During the second on-line session there will be a short recap of the theory, some demo’s and
you will work on small practical exercises which prepare you for the assignments and you will
present your solution to other students. For the assignments you will work in groups of 2.
These assignments will be graded.
During the on-campus session you can work on the assignments and get help from other
students or lecturers.
3.2.2 Part-time
There will be one session of 2 hours every week. Here new theory will be introduced and
practiced, and there will be opportunity to ask questions.
You will use self-study hours to work on the graded practical assignments in groups of 2.
3.3 Material
In this course the following book will be used:
Robert Sedgewick and Kevin Wayne, Algorithms (4th Edition), March 2011, ISBN: 978-
0321573513. (The material can contain pointers to where you find the same subject in the book
by Liang)
You can find free access to a digital version of this book by registering with your HvA-e-mail for
O’Reilly|Safari at https://databanken.bibliotheek.hva.nl/ (then select ‘e-book’ under ‘type’).
Thereafter you can read the book at https://learning.oreilly.com. You can also enjoy the video’s
24-part lecture series by the same authors.
During the practical assignment you will use Java. It is up to you which Java IDE you use. But
we recommend IntelliJ.
The final grade for the theoretical part will be <your score> / 5.
For more details regarding dates for the test and re-sit, see:
https://fdmci.mijnhva.nl/NL/Opleidingen/hbo-ict/Paginas/Roosters.aspx
4.2 Assessment
There are 5 assignments in total. Each assignment will be graded individually. In order to pass
the practical part the individual grade every assignments must be at least a 5.5. The final grade
is the average of the grades of all the assignments.
If you failed or want a better grade, during block 3 you can correct the failed assignments and
make some extra assignments.
The following rubric will be used when grading the practical assignments.
You can object to the grade by contacting your lecturer. This must be done within 25 working
days of publication of the grade. After this period, you will no longer be able to change the
grade and will be required to take the examination again (see OER, Article 5.13, section 3).