Παράκαμψη προς το κυρίως περιεχόμενο

Πληροφορίες μαθήματος

Στην ιστοσελίδα αυτή παρουσιάζουμε πληροφορίες για το μάθημα Εισαγωγή στη Γλώσσα Προγραμματισµού C++, του Τμήματος Φυσικής, με βάση τον οδηγό σπουδών του Τμήματος.

Ο κατάλογος με τα προσφερόμενα μαθήματα του τρέχοντος ακαδημαϊκού έτους βρίσκεται εδώ.

Ο κατάλογος με πληροφορίες για όλα τα μαθήματα του Τμήματος βρίσκεται εδώ.

Κωδικός Φ-251
Τίτλος Εισαγωγή στη Γλώσσα Προγραμματισµού C++
Κατηγορία Γ
ECTS 6
Ώρες 4
Επίπεδο Προπτυχιακό
Εξάμηνο Χειμερινό
Διδάσκων Σ. Σταματιάδης
Πρόγραμμα

Τρίτη, 9:00-11:00, Αίθουσα Υπολογιστών 2 (θεωρία) 
Τρίτη, 11:00-13:00, Αίθουσα Υπολογιστών 2 (ασκήσεις)

Ιστοσελίδα Μαθήματος https://www.materials.uoc.gr/courses/emy418/
Σκοπός Μαθήματος

Το μάθημα αποτελεί μια εισαγωγή στη γλώσσα προγραμματισμού C++.Παρουσιάζονται τα στοιχεία της γλώσσας σύμφωνα με το ISO Standardτου 2014 και οι σύγχρονες μέθοδοι προγραμματισμού με έμφασησε ό,τι χρειάζεται για την ανάπτυξη επιστημονικών κωδίκων.Η διάρκεια του μαθήματος δεν επιτρέπει μεν εμβάθυνση, είναι όμως επαρκήςγια την απόκτηση ενός καλού υποβάθρου για περαιτέρω ενασχόληση.Απευθύνεται σε προπτυχιακούς φοιτητές θετικών επιστημώνμε εισαγωγικές γνώσεις προγραμματισμού υπολογιστώνκαι με διάθεση να μάθουν περισσότερα. Είναι επιθυμητόνα έχουν επιτύχει σε εισαγωγικό μάθημα προγραμματισμού.

Διδακτέα Ύλη

1. Εισαγωγή, τύποι και τελεστές της C++.
Συντακτικό της γλώσσας, δεσμευμένες λέξεις, κανόνες σχηματισμού ονομάτων.
Θεμελειώδεις τύποι μεταβλητών: λογικός, χαρακτήρα, ακεραίων, πραγματικών,
μιγαδικών αριθμών. "Τύπος" void. Απαριθμήσεις. Τρόποι δήλωσης και εμβέλεια μεταβλητών και σταθερών ποσοτήτων.
Αριθμητικοί τελεστές, προτεραιότητες. Χώροι ονομάτων.
Αναφορές και Δείκτες.
2. Εντολές επιλογής, εντολές επανάληψης.
Τελεστές σύγκρισης, Εντολή if, τελεστής (?:), εντολή switch.
Βρόχοι while, do while, for, range for. Εντολές continue, break.
3. Βασικές δομές αποθήκευσης
Διανύσματα - Πίνακες, στατικοί και δυναμικοί. Δομές (struct).
4. Ροές (streams)
Ροές αρχείων, Ροές strings, είσοδος-έξοδος δεδομένων, διαμορφώσεις.
5. Συναρτήσεις.
Ορισμός και κλήση συνάρτησης, συνάρτηση main. Overloading, συναρτήσεις template. Μαθηματικές συναρτήσεις της C++.
6. Χειρισμός σφαλμάτων
Συναρτήσεις assert, static_assert. Σφάλματα μαθηματικών συναρτήσεων.
Εξαιρέσεις (exceptions).
Β) Standard Library
1. Iterators
Εισόδου, εξόδου, μονής κατεύθυνσης, διπλής κατεύθυνσης, τυχαίας προσπέλασης.
2. Containers
array, vector, deque, list, set, multiset, map, multimap, unordered_set, unordered_multiset, unordered_map, unordered_multimap.
3. Αλγόριθμοι
Κατηγορίες αλγορίθμων
4. Λοιπές έννοιες
Αντικείμενα-Συναρτήσεις, συναρτήσεις λάμδα, προσαρμογείς (adapters).
Γ) Αντικειμενοστρεφής Προγραμματισμός
1. Βασικές ένοιες
Οργάνωση κώδικα, ενθυλάκωση (encapsulation), ιεραρχία - κληρονομικότητα (inheritance), πολυμορφισμός.
2. Κλάσεις
Συναρτήσεις δημιουργίας, καταστροφής, αντιγραφής, μετακίνησης.
Τελεστές εκχώρησης, σύγκρισης, λοιποί τελεστές.
Υπόδειγμα κλάσης (class template).
Δ) Λοιπά Θέματα.
1. Μεθοδολογία οργάνωσης προγραμμάτων.
2. Διασύνδεση με βιβλιοθήκες συναρτήσεων σε FORTRAN και C.
 

Βιβλιογραφία

1. Σημειώσεις Διδάσκοντα: https://www.materials.uoc.gr/el/undergrad/courses/ETY213/notes.pdf
2) Bjarne Stroustrup. Programming - Principles and Practice Using C++ (Second Edition), Addison Wesley, Reading, MA, USA, 2014.
3) Stanley B. Lippman, Josée Lajoie and Barbara E. Moo. C++ Primer. Addison Wesley, Reading, MA, USA, fifth edition, August 2012.
4) Nicolai M. Josuttis. The C++ Standard Library: A Tutorial and Reference. Addison Wesley, Reading, MA, USA, March 2012.
5) Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, Reading, MA, USA, fourth edition, 2013.