-

Data Structures and Analysis of Algorithms

  • Code: 5302
  • Semester: 3rd
  • Type: Scientific Field Course (SFC)
  • Category: Special Background Course (SBC)
  • Character: Compulsory (C)

Module Description

Content/Description:
Basic concepts: Data types, data structures and implementations, type checking.
Data abstraction and object oriented programming: Modules, information hiding, data encapsulation, abstract data types, classes, objects, methods, inheritance and polymorphism.
Analysis of algorithms, Complexity
Linear data structures: Arrays, strings, stacks, queues and their array implementation, applications.
Dynamic data structures: Dynamic storage allocation, linked lists, linked stacks and queues.
Recursion: recursive algorithms, recursive data structures, recursion as a programming methodology.
Trees: Definitions and terminology, binary trees, data structures for binary trees, heaps, priority queues.
Graphs: Definitions and terminology, data structures for graphs, graph traversal.
Files: File organisation, sequential files, direct access files, hashing.
Sorting and Searching

Evaluation (-> Assesment):
Written examination for the theoretical part,
Hands on/Oral examination for the Laboratory and/or final exam

Alternative Evaluation Methods

Project based and F2F teaching

Module Objectives

The course gives a general introduction to data structures and the algorithms that operate on those structures. Topics to be covered include both static and dynamically allocated data structures. The course focuses on data abstraction and object-oriented programming techniques and is currently taught in Java.
By the end of the course the students are expected to:
• have acquired a good knowledge of the fundamental data structures, and be able to use them for the implementation of well designed and efficient programs.
• have understood the notions of data abstraction and object orientation and their role in program development.

Bibliography

1] Michael Goodrich & Roberto Tamassia, Data Structures and Algorithms in Java, 4th Edition, Addison-Wesley (2006)

2] Robert Sedgewick, Algorithms in Java, Parts 1-4 : Fundamentals, Data Structures, Sorting, Searching, 3rd Edition, Addison-Wesley (2003)

3] Roobert Lafore, Data Structures and Algorithms in Java, 2nd Edition, SAMS (2002)

4] Niklaus Wirth, Algorithms + Data Structures = Programs, Prentice-Hall, 1976

Recent Announcements

4 Oct 2019
Διδασκαλία μαθημάτων από Μεταδιδάκτορες (ΕΣΠΑ)
4 Oct 2019
ΤΡΟΠΟΠΟΙΗΤΙΚΕΣ δηλώσεις μαθημάτων στο πληροφοριακό σύστημα ΠΥΘΙΑ 2019-20Χ
4 Oct 2019
Δηλώσεις τμημάτων εργαστηρίων 2019-20Χ
3 Oct 2019
ΠΡΟΘΕΣΜΙΕΣ ΚΑΙ ΔΙΚΑΙΟΛΟΓΗΤΙΚΑ ΣΙΤΙΣΗΣ ΑΚΑΔ.ΕΤΟΥΣ 2019-2020
3 Oct 2019
Οργάνωση Πινάκων Ανακοινώσεων
2 Oct 2019
ΔΗΛΩΣΕΙΣ ΜΑΘΗΜΑΤΩΝ ΚΑΤΕΥΘΥΝΣΕΩΝ – ΠΡΩΗΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ
2 Oct 2019
Θέση υποψήφιου διδάκτορα σε ερευνητικό έργο
1 Oct 2019
Μετακίνηση το Χειμερινό 2019-2020 – Δήλωση μαθημάτων στο Pithia (επείγον)
3 Oct 2019
Τελετή Υποδοχής Πρωτοετών φοιτητών/τριών 2019-20
30 Sep 2019
Track on 5G for the Industrial Internet of Things @IEEE 5G World Forum
29 Aug 2019
Ημερίδα Πρακτικής Άσκησης
10 Jun 2019
Ημερίδα “Εθνική Στρατηγική Κυβερνοασφάλειας” στο Υπουργείο Ψηφιακής Πολιτικής
14 Apr 2019
6ο Technology Forum – 15 Απριλίου 2019 (τελικό πρόγραμμα)
19 Mar 2019
6ο Technology Forum – 15 Απριλίου 2019 (εισιτήρια με μειωμένο κόστος)
19 Mar 2019
OWASP Student Chapter Συνάντηση “Introduction to Digital Forensics”
17 Dec 2018
Ομιλία του καθηγητή Man Wai Mak (Hong Kοng Polytechnic University)

Δείτε επίσης