Back to department main page
COURSE PRESENTATION FORM - DATA STRUCTURES AND ALGORITHMS - 2009/2010


COURSE NAME: Data Structures and Algorithms (BSc Old: Algorithms and Complexity)

COURSE CODE: 70147 (BSc) / 70010 (BSc Old)

LECTURER: Kurt Ranalter

TEACHING ASSISTANT: Charles Callaway (EN), Gennaro Iaccarino (IT), Kurt Ranalter (DE)

TEACHING LANGUAGE: English

CREDIT POINTS: 8

LECTURE HOURS: 48

EXERCISE HOURS: 24

TIMESPAN: 22.02.2010 - 12.06.2010

TIMETABLE: see Timetable Page

OFFICE HOURS LECTURER: During the lecture time span, Thursday, 9:30-10:30, POS, room no 2.10 (prior notification by email required).

OFFICE HOURS TEACHING ASSISTANT: Charles Callaway and Gennaro Iaccarino: to be determined. Kurt Ranalter: see above.


PREREQUISITES

Basic programming skills and mathematical knowledge.

OBJECTIVES
Acquire an in-depth understanding of a broad set of computer science techniques to solve algorithmic problems. These techniques are fundamental building blocks that re-occur in many areas of computer science.
Become familiar with the design and analysis of divide and conquer algorithms.
Learn how to be precise and mathematically rigorous when designing and verifying algorithms.

SYLLABUS
  • Algorithmic problems, recursion, sorting
  • Algorithmic complexity, correctness of algorithms
  • Divide-and-conquer, recurrences
  • Heaps, heapsort, quicksort
  • Dynamic data structures, abstract data types
  • Binary search trees, red-black trees
  • Hashing
  • Dynamic programming
  • BFS, DFS, topological sort
  • Minimum spanning tree, shortest path
  • Tractable and intractable problems, NP completeness

TEACHING FORMAT
Frontal lectures and exercise classes.

ASSESSMENT
Midterm and final written exam
The midterm is optional and counts 50% of the final mark. If its outcome is positive, the midterm counts for all 3 regular session.

READING LIST
Textbook:
  • Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, 2nd edition
Additionally, there is a set of lecture notes for each week.

SOFTWARE USED
Java

LEARNING OUTCOME
A toolbox with the most important techniques for solving algorithmic problems. Ability to use a systematic, precise, and mathematically rigorous approach to design and reason about algorithms. Basic understanding of algorithmic complexity.

COURSE PAGE
http://www.dcs.qmul.ac.uk/~kurt/uniBZ/dsa/dsa.html





© UniBz