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