Χειμερινό εξάμηνο 2016-17, Τετάρτη 2-6μμ, αίθουσα ΣΤ

Διδάσκων: Γιώργος Φουρτούνης (gfour@di)
Βοηθοί: Μάνος Αγγελογιαννόπουλος (eangelog@di), Θεόφιλος Μουρατίδης (mtheofilos@di)

Φόρουμ επικοινωνίας

Περιγραφή: Το μάθημα συνδέει βασικες αρχές της σχεδίασης και της υλοποίησης γλωσσών προγραμματισμού με προχωρημένες τακτικές προγραμματισμού. Καλύπτονται:

  1. Σχεδιαστικά χαρακτηριστικά των σύγχρονων γλωσσών προγραμματισμού, που απαντώνται στην πράξη κατά την ανάπτυξη προγραμμάτων σε γλώσσες όπως η Java ή η C++. Ενδεικτικά αναφέρονται τα εξής:

    • Σχεδιαστικές επιλογές, εφαρμογές και επεκτάσεις του αντικειμενοστραφούς μοντέλου (πολλαπλή κληρονομικότητα, reflection, meta-object protocols, aspect-oriented programming).

    • Design patterns.

    • Πολυνηματικός προγραμματισμός.

    • Στοιχεία συστημάτων τύπων (universal/existential types, type inference) και οι μηχανισμοί γενικών τύπων που χρησιμοποιούνται στη Java και τη C++ (generics, templates, variance).

  2. Βασικές λεπτομέρειες της υλοποίησης γλωσσών προγραμματισμού που χρειάζονται για την ανάπτυξη αποδοτικών προγραμμάτων. Καλύπτονται τεχνικές που χρησιμοποιούνται στη μεταγλώττιση γλωσσών ή στην εκτέλεση με εικονικές μηχανές (fast dynamic dispatch, garbage collection, object layout, virtual machine optimizations).

Βαθμολόγηση:

  • 60% εξετάσεις (20% πρόοδος + 30% τελικό + 10% το μέγιστο των δύο)
  • 35% ασκήσεις (τουλάχιστον 4 μικρές + 1 μεσαία, με διπλό βάρος, ιδεωδώς και μία τελική παρουσίαση)
  • 5% συμμετοχή στην τάξη

Σημειώσεις μαθήματος (πολύ συνοπτικές):

Ασκήσεις:

  • Άσκηση 0
  • Άσκηση 1
  • Άσκηση 2
  • Άσκηση 3
  • Άσκηση 4

Η προθεσμία των προγραμματιστικών ασκήσεων είναι τα μεσάνυχτα (11:59μμ) της μέρας που ορίζεται στην άσκηση.

Σύνδεσμοι: