Data Structures and Algorithms

advertisement
Course
Specifications
Valid as from the academic year 2016-2017
Data Structures and Algorithms (E620050)
Course size
Credits 6.0
(nominal values; actual values may depend on programme)
Study time 180 h
Contact hrs
60.0 h
Course offerings and teaching methods in academic year 2016-2017
A (semester 1)
practicum
20.0 h
lecture
40.0 h
Lecturers in academic year 2016-2017
Verstockt, Steven
Duyck, Rein
TW06
TW05
lecturer-in-charge
co-lecturer
Offered in the following programmes in 2016-2017
crdts
Bachelor of Science in Electronics and ICT Engineering Technology
6
Linking Course Master of Science in Electronics and ICT
6
Engineering Technology (main subject MIT)
offering
A
A
Teaching languages
Dutch
Keywords
Data structures, algorithms, complexity, efficiency, analysis, cryptography, cryptology,
modular arithmetics
Position of the course
The “Data Structures and algorithms” partim builds further on the earlier acquired basic
programming skills and deepens the knowledge and understanding of algorithms and
data structures. The students will apply this knowledge to analyze engineering
applications and to develop efficient programs.
The partim 'Discrete Mathematics' focusses on number theory applied to cryptography.
The purpose of this course is to explain the basic techniques, solving methods and
calculations that are required specifically in the studies of electronics. The focus of this
course is not reproducing but rather on understanding the theory. Much attention goes
to exercises.
Contents
Partim Data structures and algorithms
The course deals with basic data structures such as stacks, queues, trees, heaps, hash
tables and investigates operations and algorithms on these data structures, such as
sorting lists, finding the shortest path in a graph, and searching a string pattern in a
text. Furthermore, we study design principles of greedy algorithms, divide-andconquer
algorithms, and dynamic programming.
In order to compare the algorithms, we study their complexity. In principle, all these
algorithms and data structures are independent of a specific programming language,
and the student should be able to translate them in an appropriate programming
language.
Partim Discrete Mathematics
1. Number theory: properties of numbers and divisors. Theorems about divisibility.
Modular arithmatics and the Chinese Remainder Theorem (CRT). Theorems about
prime numbers. RSA-algorithm. Practical considerations about encryption and
decryption. Algorithm of Miller-Rabin Discrete logarihtmes.
2. Algebraical structures: groups, rings, fields.
3. Calculations with polynomes and mathematical foundation of the AES-algoritm.
4. Cryptology:
1. Introduction (terminology)
2. Cryptoanalysis
(Approved)
1
3. Methods of substitution
4. Public-key cryptography
5. Elliptic curves cryptography.
6. Algorithmes and complexity.
7. Some notions about statistics and probability.
8. Pseudo random numbers and pseudo random number generators (e.g. stream
ciphers (RS4), block ciphers, Blum Blum Shub, non-uniform generators)
Initial competences
Basic programming skills and basic knowledge of algorithms and data structures as
acquired in the courses 'Discrete Mathematics' and 'Informatics', and 'Software
Development' (studied before or in parallel with this course). The student also needs to
be familiar with all material in the courses Wiskunde I and Wiskunde II.
Final competences
1 Knowledge of the most important data structures
2 Can list the most important data structures and basic algorithms for engineering
1 applications and understand the philosophy behind them
3 Can apply the main Java / C# libraries for algorithms and data structures
4 Are able to determine the complexity of algorithms
5 Can select the most appropriate data structures and algorithms for a given problem,
1 and can motivate their decision
6 The student has experience in algorithmic thinking and the student is capable of
1 logical reasoning.
7 Being able to collect relevant scientific and technical information adequately and
1 process it
8 The student will learn methods to solve and implement small problems with the
1 support of a programming language. In addition, the student knows how to
1 implement iterative and recursive algorithms.
9 The student is able to use the correct scientific and mathematical terminology both in
1 English and in Dutch.
Conditions for credit contract
Access to this course unit via a credit contract is determined after successful competences
assessment
Conditions for exam contract
This course unit cannot be taken via an exam contract
Teaching methods
Lecture, practicum
Extra information on the teaching methods
By means of lectures, the substantive topics are explained. During these lectures,
examples are cited and worked out to illustrate the principles and algorithms. The
lectures are supported by practicals. During the practical sessions, students make
coached classroom exercises in depth with the computer.
Learning materials and price
• Algoritmen en datastructuren, Veerle Fack, Acco Uitgeverij, (januari 2011), ISBN-nr:
9789033483677
• Dutch course text on Minerva
• Presentations on Minerva
References
\
Course content-related study coaching
Interactive support through Minerva, supervision of group work and lab sessions via
feedback moments.
Evaluation methods
end-of-term evaluation and continuous assessment
Examination methods in case of periodic evaluation during the first examination period
Written examination
Examination methods in case of periodic evaluation during the second examination period
Written examination
Examination methods in case of permanent evaluation
Participation, assignment, report
Possibilities of retake in case of permanent evaluation
(Approved)
2
examination during the second examination period is not possible
Extra information on the examination methods
During examination period: written closed book examination.
During semester: evaluation of labs and group work. (no second evaluation is
possible)
Calculation of the examination mark
Written closed book examination (PGE): 70%
Labs and group work (NPGE): 30%
In order to pass the course, the student must score at least 8/20 for both PGE and
NPGE. If this condition is not met, a score of 10 or more is reduced to 9.
(Approved)
3
Download