Syllabus academic year 2011/2012
(Created 2011-09-01.)
ALGORITHM IMPLEMENTATIONEDAF15
Credits: 5. Grading scale: TH. Cycle: G2 (First Cycle). Main field: Technology. Language of instruction: The course will be given in Swedish. EDAF15 overlaps following cours/es: EDA115. Compulsory for: Pi3. Optional for: D4, D4is, D4pv, F4, F4bs. Course coordinator: Jonas Skeppstedt, Jonas.Skeppstedt@cs.lth.se, Computer Science. Prerequisites: EDAA01 Programming - Second Course or EDA027 Algorithms and Data Structures. Assessment: Written exam. To pass the course, the exam, laboratory exercises, and a programming assignment must be passed. Home page: http://cs.lth.se/edaf15.

Aim
The main purpose of the course is that the students should learn a methodology to find a suitable version of an algorithm and to maximise its performance when implementing it. To reach this main purpose, there are two other purposes of the course, that students shall have knowledge about (1) the C99 programming language with focus on which language features that often become efficient and/or affect portability, and (2) modern computer architecture from the view of the programmer, with focus on microprocessors and cache memories.

Knowledge and understanding
For a passing grade the student must

Skills and abilities
For a passing grade the student must

Contents
ISO C99, the GNU GDB debugger, Valgrind, the profiling tools GPROF, OPROFILE and GCOV, pipelined microprocessors, the Cell processor, cache memories, using simulation tools for performance analysis, implementation of mathematical functions on processors with and without hardware support for floating-point arithmetic.

Literature
Jonas Skeppstedt and Christian Söderberg: Writing Efficient Safety-Critical C Code a Thorough Introduction for Java Programmers. ISBN: 978 91 977 940 08