M135: Προηγμένες Μέθοδοι Προγραμματισμού
(M135.CS1E, M135.CS23B, M135.IC1E, παλαιό: M117)
Χειμερινό εξάμηνο 2019-20, Πέμπτη 3-6μμ, αίθουσα ΣΤ'
Σχεδιάγραμμα μαθήματος
Φόρουμ επικοινωνίας
Βοηθός: Αναστάσης Αντωνιάδης (anantoni@di)
Σημειώσεις μαθήματος (πολύ συνοπτικές)
Εισαγωγή Java-C++
Παραδείγματα overloading/overriding
Design Patterns
Aspect-Oriented Programming
Παραδείγματα κώδικα από ευέλικτους/δυναμικούς μηχανισμούς:
AspectJ
,
Java reflection
,
Java dynamic proxies
,
Python reflection
Πολυνηματικός προγραμματισμός
Αυτόματη ανακύκλωση μνήμης (Garbage Collection)
Παραδείγματα από τον πίνακα
Μορφή αντικειμένων στη μνήμη για απλή και πολλαπλή κληρονομικότητα
Μορφή αντικειμένων στη μνήμη σε Java, κλήση μεθόδων interface, βελτιστοποιήσεις δυναμικών κλήσεων
Τύποι και πολυμορφισμός
Μεταβλητότητα (variance) σε πολυμορφικά συστήματα τύπων
Ασκήσεις
Άσκηση 3
Σύνδεσμοι
Java Tutorial
Aspect-Oriented Programming papers
1
2
και
AspectJ
Εισαγωγή στον πολυνηματικό προγραμματισμό
Επισκόπηση τεχνικών ανακύκλωσης μνήμης (GC)
Διπλωματική Myers: το κεφάλαιο 2 περιγράφει τις βασικές ιδέες για τη μορφή αντικειμένων στη C++
Άρθρο για κλήση interface στη Java
Κύριο ερευνητικό άρθρο για Java generics
Άρθρο για variance