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.