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