Περιγραφή Μαθήματος
Περιεχόμενο Μαθήματος
Κλάσεις στην 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
Διδάσκοντες: Ν. Στεργιούλας