Περιγραφή Μαθήματος


Περιεχόμενο Μαθήματος
Κλάσεις στην Python και βασικές βιβλιοθήκες για υπολογισμούς και σχεδίαση. Εκτέλεση κώδικα C++ μέσω Python. Εμβάθυνση στον Αντικειμενοστραφή Προγραμματισμό σε C++: Κλάσεις και αντικείμενα, constructors και destructors, encapsulation, κληρονομικότητα (inheritance), πολυμορφισμός (polymorphism), virtual functions, abstract classes και interfaces. Υπερφόρτωση τελεστών (operator overloading). Προηγμένη διαχείριση μνήμης: δυναμική δέσμευση μνήμης. Πολυδιάστατοι πίνακες δεδομένων. Βασικές Βιβλιοθήκες της C++. Vector, list, deque, sets. Επιλογή κατάλληλων δομών δεδομένων ανάλογα με το πρόβλημα. Αρχεία και I/O streams: File handling με ifstream/ofstream, binary files, string streams. Προγραμματισμός με βιβλιοθήκες για επιστημονικούς υπολογισμούς se C++ και Python. Εφαρμογές σε αριθμητικά προβλήματα (επίλυση γραμμικών συστημάτων, παρεμβολή, ολοκλήρωση, βελτιστοποίηση). Multithreading και παράλληλος προγραμματισμός. Χρήση της βιβλιοθήκης της C++. OpenMP για παράλληλη επεξεργασία. Εφαρμογές σε προβλήματα Αστροφυσικής (ανάλυση αστρονομικών δεδομένων) και Αστροδυναμικής (σχεδίαση βέλτιστων τροχιών). Αλγόριθμοι βελτιστοποίησης (Parτicle swarm και γενετικοί αλγόριθμοι)

Στοιχεία Μαθήματος


Κωδικός μαθήματος:  ΥΦΕ217

Μάθημα:  Ειδίκευσης Επιλογής

Εξάμηνο:  Δεύτερο Εξάμηνο

Ώρες / εβδομάδα:   3

Πιστ. Μονάδες (ECTS):  7.5

Διδάσκοντες:  Ν. Στεργιούλας