Προγραμματισμός Η/Υ

Περιγραφή:

Εμβάθυνση στο προγραμματισμό γενικού σκοπού με αντικειμενοστραφείς μεθόδους στη γλώσσα Python και στη χρήση σύνθετων τύπων αντικειμένων. Εισαγωγή στον παράλληλο προγραμματισμό MPI και διαδικτυακό προγραμματισμό εξυπηρετητή. Εφαρμογή στη δημιουργία ολοκληρωμένων προγραμμάτων με γραφικό περιβάλλον διεπαφής, σύνθετες αριθμητικές μεθόδους και γραφήματα. Διερμηνευτικές και γλώσσες που απαιτούν μεταγλώττιση. Παραγωγή γρήγορου εκτελέσιμου κώδικα με την αντικειμενοστραφή Fortran 2003 και την παράλληλη Fortran 2008.



Εισαγωγή στην Python
Εισαγωγή στα εργαλεία που θα χρησιμοποιηθούν, επίδειξη της εγκατάστασής τους, εισαγωγή στην Python, μεταβλητές, εκφράσεις, βαθμωτοί τύποι, εκτέλεση υπό συνθήκη.

Βρόγχοι, συναρτήσεις & Αριθμητική πινάκων και μητρώων
Βρόγχοι, επαναλήψεις (γεννήτορες), εντολές ελέγχου ροής. Αριθμητική πινάκων και μητρώων. Ορισμός και κλήση συναρτήσεων. Ορίσματα εισόδου και εξόδου. Ορίσματα εξορισμού (default). Μεταβλητός αριθμός ορισμάτων. Παραδείγματα.

Σύνθετοι τύποι αντικειμένων & Αντικειμενοστραφής προγραμματισμός
Το ολοκληρωμένο περιβάλλον Pyzo. Μεταβλητές, πλειάδες, λίστες, σύνολα, λεξικά. Παραδείγματα. Κλάσεις και αντικείμενα. Έτοιμα αντικείμενα της Python. Μέθοδοι και μέλη. Κληρονομικότητα. Πολυμορφισμός. Παραδείγματα.

Διαχείριση λαθών εκτέλεσης και εξαιρέσεις
Διάδοση λαθών σε εμφωλευμένες συναρτήσεις. Σύλληψη λαθών με εξαιρέσεις. Είδη εξαιρέσεων. Δημιουργία εξαιρέσεων. Αποσφαλμάτωση με το Pyzo. Παραδείγματα.

Δημιουργία και χειρισμός αριθμητικών δεδομένων
Μητρωικοί υπολογισμοί numpy. Επιστημονικοί υπολογισμοί scipy. Σύνθετα γραφήματα matplotlib. Συμβατότητα με Matlab. Παραδείγματα. 1

Γραφικό περιβάλλον διεπαφής (GUI)
Το γραφικό περιβάλλον tkinter. Κύριο παράθυρο. Widgets. Προβολή και εισαγωγή κειμένου. Γραμματοσειρές. Οδηγός γεωμετρίας – κάναβος. Μενού. Μηνύματα λάθους. GUI και αντικειμενοστραφής προγραμματισμός.Διαχωρισμός GUI και υπολογισμών. Γραφική ανάγνωση και αποθήκευση αρχείων. Σχεδίαση διανυσματικών γραφικών, γραμμές κύκλοι κλπ. Αυτόματη αναπροσαρμογή γεωμετρίας. Κείμενο με πολλαπλές γραμμές. Scrollbars. Δοχεία widgets. Νέες κλάσεις widgets. Πολλαπλά παράθυρα.

Εισαγωγή στους παράλληλους υπολογισμούς
Σειριακοί και παραλληλοποιήσιμοι υπολογισμοί. Αρχιτεκτονική παράλληλων συστημάτων. Παράλληλο σύστημα MPI. Εκτέλεση στιγμιότυπων ίδιου κώδικα σε πολλαπλούς πυρήνες. Διαφοροποίηση εκτέλεσης κατά Rank. Επικοινωνία στιγμιότυπων με send/recv. Broadcast και Reduce. Παραδείγματα.

Γεννήτριες και διαδρομές
Παραστάσεις γεννήτριας. Γεννήτριες. Εμφωλευμένες γεννήτριες. Έτοιμες γεννήτριες και πράξεις με γεννήτριες. Διαδρομές αρχείων. Διαδρομές φακέλλων. Ενιαία χρήση σε Windows, Linux, MacOS. Μέθοδοι διαδρομών. Εμφωλευμένες διαδρομές. Παραδείγματα.

Εισαγωγή στο διαδικτυακό προγραμματισμό
Διαδίκτυο, WWW, HTTP, URL. Πελάτες και εξυπηρετητές. Σύνδεσμοι. Συνοπτική περιγραφή HTML. Δημιουργία εξυπηρετητή με Python bottle. Αντιστοιχία ιστοσελίδων σε συναρτήσεις. Ομαδοποίηση ιστοσελίδων. Ορίσματα σε ιστοσελίδες. Εκτύπωση HTML από συναρτήσεις. Παραδείγματα.

Εισαγωγή στη Fortran
Διερμηνευτές και μεταγλωττιστές. Πλεονεκτήματα και μειονεκτήματα. Μεταβλητές Fortran. Ελεγχόμενη και ανεξάρτητη από πλατφόρμα ακρίβεια. Εντολές ελέγχου ροής. Πολυδιάστατα μητρώα. Πράξεις και συναρτήσεις μητρώων. Μητρώα μεταβλητών διαστάσεων. Αριθμητικές βιβλιοθήκες. Παραγωγή εκτελέσιμου κώδικα. Παραδείγματα.

Αντικειμενοστραφής προγραμματισμός στην Fortran
Ενότητες. Κοινές μεταβλητές. Συναρτήσεις δημόσιες και ιδιωτικές. Υπερφόρτιση συναρτήσεων. Νέοι τύποι δεδομένων. Ορισμός κλάσεων. Κληρονομικότητα και πολυμορφισμός. Παραδείγματα.


Παράλληλος προγραμματισμός στη Fortran & Συνεργασία με C
Ενιαίο πρόγραμμα σε πολλά στιγμιότυπα. Ενσωμάτωση παραλληλίας στις εντολές Fortran. Επικοινωνία με συμμητρώα. Συγχρονισμός στιγμιοτύπων με SYNC και NOTIFY/QUERY. Αποφυγή παρενεργειών με κρίσιμες περιοχές. Παραδείγματα. Συμβατότητα με C. Συμβατοί τύποι μεταβλητών. Κλήση συναρτήσεων C από Fortran. Κλήση συναρτήσεων Fortran από C. Interfaces. Κλήση συναρτήσεων C από Python, κλήση συναρτήσεων Fortran από Python.



Ώρες εβδομαδιαίως:3
Διδάσκοντες: Α.Στάμου