General

Professor: Panagiota Fatourou
Office: 215 (white buildings 1st floor)
Office Hours: To be determined
e-mail Address: rg.cou.dsc@urutaf
Telephone: +30 2810 393549
TAs' Office: Graduate Students' Lab (@ white buildings' basement)
TAs' Office Hours: Every Friday at 10:00 (only after email appointment)
Class' e-mail address: rg.cou.dsc@a042yh


Teaching Schedule

Day Time Classroom
Monday 11:00 - 13:00 Amphitheater C
Wednesday 11:00 - 13:00 Amphitheater C


Assistive Classes' Schedule

Day Time Classroom
Friday 11:00 - 13:00 Amphitheater C


Course Summary

The course focuses on the study of basic data structures, i.e. arrays, stacks, queues, lists, trees, etc., as well as on more complex data structures such as balanced trees, graphs and others. In addition, the technique of hashing will be taught, as well as data structures for the implementation of dynamic dictionaries, simple sets and sets with special operations. Selected topics on sorting and basic techniques of algorithm design will be also taught.

Learning Outcomes

  • How to model a problem through proper abstraction.
  • How to design or choose the appropriate data structures for specific programming problems.
  • How to program in a modular way using data abstractions.
  • How to implement and evaluate different data structures.
  • Basic algorithmic techniques.
  • Formal proofs of correctness.
  • Power of randomness in algorithmic thinking.


Prerequisities

CS100 (Introduction in Computer Science) and CS150 (Programming) are prerequisite courses for this course. Successful completion of CS118 (Discreet Mathematics) will be also helpful. Students that have not succeeded on the courses mentioned above, do not have the required background to attend the course.