ΠΛΗ 301: Λειτουργικά Συστήματα
Ιστορία και εξέλιξη των λειτουργικών συστημάτων. Ανασκόπηση της οργάνωσης υπολογιστών: CPU, καταχωτητές, MMU, διακοπές, εκτέλεση επί στοίβας. Διεργασίες: ορισμοί, κατάσταση διεργασίας, νήματα, πόροι. Έλεγχος διεργασιών στο Unix. Πίνακας διεργασιών, PCBs, νήματα POSIX. Πολυπρογραμματισμός: ορισμοί, επανεισχωρήσιμος κώδικας. Monitors, έννοιες και υλοποίηση. Semaphores, κλείδωμα αναγωστών-συγγραφέων, παραγωγοί/καταναλωτές και buffers. Αδιέξοδα. Δρομολόγηση διεργασιών. Διαχείριση μνήμης: ιεραρχία μνήμης, τοπικότητα, caching και προανάκτηση, κατακερματισμός. Δέσμευση μνήμης. Φόρτωση προγραμμάτων. Tμηματοποίηση, σελιδοποίηση. Διαχείριση μνήμης στην αρχιτεκτονική i386. Απεικόνιση μνήμης, copy-on-write. Ιδεατή μνήμη, πολιτικές αντικατάστασης. Είσοδος/έξοδος και επικοινωνία διεργασιών: ροές και Ε/Ε ροών. Pipes, sockets. Τερματικά. Συσκευές δικτύου και δίσκου. Οδηγοί συσκευών, αρχιτεκτονική.
ΠΛΗ 401: Αλγόριθμοι και Πολυπλοκότητα
Μοντέλα και έννοιες πολυπλοκότητας. Εισαγωγή στα διακριτά μαθηματικά για ανάλυση αλγορίθμων. Ασυμπτωτικό κόστος. Αναδρομή και αναδρομικές εξισώσεις, λύση με επαγωγή, master theorem. Θεμελιώδεις αναδρομικοί αλγόριθμοι: πολλαπλασιασμός, αλγόριθμος Karatsuba, FFT. Στατιστικές τάξης. Δυναμικός προγραμματισμός, απομνημόνευση. Το πρόβλημα Knapsack. Μη-ντετερμινισμός, θεώρημα του Cook, οι κλάσεις P και NP, NP-πληρότητα. Επιμερισμένη πολυπλοκότητα, επιμερισμένο κόστος σε βασικές δομές δεδομένων. Αναζήτηση εύρους σε διατεταγμένα σύνολα, δομές δεδομένων για πολυδιάστατη αναζήτηση εύρους. Εισαγωγή στη θεωρία γράφων. Δομές δεδομένων για αναπαράσταση γράφων. Διασχίσεις γράφων, κατά βάθος και κατά πλάτος διάσχιση, διάσχιση άκυκλων κατευθυνόμενων γράφων, τοπολογική ταξινόμηση. Συνδεδεμένα τμήματα. Βεβαρυμένοι γράφοι. Ελάχιστα επικαλύπτοντα δέντρα, αλγόριθμοι των Prim και Kruskal. Το πρόβλημα ένωσης-αναζήτησης. Η συνάρτηση του Ackerman. Συντομότερα μονοπάτια και μετρικές απόστασης. Τριγωνική ανισότητα.
ΠΛΗ 406: Προχωρημένα Θέματα Βάσεων Δεδομένων
Συντονισμός και επαναφορά σε λειτουργία συστημάτων διαχείρισης βάσεων δεδομένων. Κατανεμημένες βάσεις δεδομένων και προβλήματα λειτουργίας τους. Νέο standard SQL-3. Μηχανές βάσεων δεδομένων. Προχωρημένα συστήματα και εφαρμογές βάσεων δεδομένων (αντικειμενοστρεφείς, χρονικές, ενεργές, χωρικές βάσεις δεδομένων, αποθήκες βάσεων δεδομένων). Συσχέτιση μαθηματικής λογικής και βάσεων δεδομένων (επαγωγικές βάσεις δεδομένων).
ΠΛΗ 414: Αρχές Κατανεμημένων Συστημάτων Λογισμικού
Μοντέλα και μηχανισμοί επικοινωνίας διεργασιών: sockets, shared memory, ομαδική επικοινωνία, απομακρυσμένες κλήσεις, κατανεμημένα αντικείμενα. Βασικός προγραμματισμός δικτύων. Συνεδρίες. Πρωτόκολλα. Αρχιτεκτονικές κατανεμημένων συστημάτων: πελατών-υπηρετών, πολυεπίπεδη αρχιτεκτονική, διαμεσολαβητές, αποδημία κώδικα, συστήματα πρακτόρων, δίκτυα ομοβάθμων. Ανασκόπηση της αρχιτεκτονικής CORBA, χρήση της CORBA IDL. Ονοματισμός και διευθυνσιοδότηση: Ονόματα, φυσικές και λογικές διευθύνσεις, υπηρεσίες ονομάτων, DNS. Υπηρεσίες καταλόγου, LDAP. Υπηρεσιοστραφής αρχιτεκτονική. Κατανεμημένοι αλγόριθμοι: Μοντέλα. Αλγόριθμο με συντονιστή. Ο χρόνος σε κατανεμημένα συστήματα. Αιτιότητα. Το θεώρημα του Lamport. Ρολόγια Lamport. Ανυσματικά ρολόγια. Καθολική κατάσταση και στιγμιότυπα. Βασικοί αλγόριθμοι χωρίς συντονιστή: Εκλογή ηγέτη, Αμοιβαίος αποκλεισμός, Βυζαντινή συμφωνία. Αλγόριθμοι αναζήτησης: Κατανεμημένες δομές δεδομένων, αναζήτηση σε peer-to-peer networks, distributed hash tables. Αξιοπιστία, Κατανεμημένες συναλλαγές,
ΠΛΗ 416: Επεξεργασία Πολυδιάστατων Δεδομένων
Πολυδιάστατα δεδομένα: αναπαράσταση με πίνακες (raster) και διανύσματα (vectors), αφηρημένοι τύποι δεδομένων, κωδικοποίηση και πρότυπα. Θέματα απόδοσης για προσπέλαση και επεξεργασία μαζικών δεδομένων. Αποθήκευση και ανάκτηση δεδομένων σε κυρίως μνήμη και δίσκους. Βασικές εφαρμογές: γεωγραφικά πληροφοριακά συστήματα, συστήματα CAD, γραφική. Εισαγωγή στις γεωγραφικές και χρονικές βάσεις δεδομένων, μοντέλα δεδομένων, γλώσσες για χωρικές, τοπολογικές και χρονικές επερωτήσεις. Βασική γεωμετρία σε 2 και 3 διαστάσεις, συστήματα συντεταγμένων, βασικές έννοιες χαρτογραφίας. Υπολογιστική γεωμετρία, αλγόριθμοι κυρτού κελύφους, τριγωνοποίησης, εντοπισμού σημείου, διασταύρωσης τμημάτων. Γεωμετρικές δομές δεδομένων, ερωτήματα εύρους, εγγύτερου γείτονα, ειδικά προβλήματα, δομές εξωτερικής μήμης, κατανεμημένες δομές. Αλγόριθμοι υπολογισμού επερωτήσεων. Επεξεργασία δεδομένων υψηλής διάστασης, μετρικοί χώροι, μετρικές ομοιότητας, προβλήματα βελτιστοποίησης, γραμμικός προγραμματισμός.
ΠΛΗ 516: Επεξεργασία και Διαχείριση Δεδομένων σε Δίκτυα Αισθητήρων
Αισθητήρες κόμβοι: χαρακτηριστικά, περιορισμοί. Εφαρμογές δικτύων αισθητήρων. Κατανεμημένη επεξεργασία πληροφορίας σε δίκτυα αισθητήρων. Συνεχείς επερωτήσεις. Είδη συνεχών επερωτήσεων και χαρακτηριστικά. Γλώσσες επερωτήσεων. Τρόποι συλλογής πληροφοριών. Αποθήκευση, δεικτοδότηση και αναζήτηση πληροφορίας. Δέντρο συνάθροισης. Συγχρονισμός και μετάδοση δεδομένων. Μέθοδοι κατασκευής δέντρου συνάθροισης. Κατανεμημένη οργάνωση αισθητήρων, επισκόπηση πληροφορίας. Προσεγγιστικές επερωτήσεις σε δίκτυα αισθητήρων. Παρακολούθηση κινούμενων αντικειμένων. Προβλήματα απώλειας και πολλαπλού υπολογισμού της πληροφορίας, τρόποι αντιμετώπισης. Ποιότητα μετρήσεων αισθητήρων. Τρόποι αναγνώρισης και απομόνωσης λανθασμένων μετρήσεων.