Τμήμα Επιστήμης & Μηχανικής Υλικών

Τελευταία τροποποίηση: 06 Σεπτεμβρίου 2024 στις 22:27:28

Διδάσκων

Σταματιάδης Σταμάτης

Email: stamatis@materials.uoc.gr

Τηλ.: +302810394284

Γραφείο: Room B-201, CSD' Building

Ώρες γραφείου:

Προαπαιτούμενα μαθήματα

Εισαγωγή στον Προγραμματισμό

Διδασκόμενη ύλη

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

Ιστοσελίδα μαθήματος

Το eclass του μαθήματος.

Μαθησιακά αποτελέσματα

Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές αναμένεται:

  • να έχουν εμβαθύνει και κατανοήσει πλήρως τις βασικές έννοιες δομημένου προγραμματισμού.
  • να έχουν μια πρώτη επαφή και εξοικείωση με ορισμένες προχωρημένες έννοιες προγραμματισμού όπως αυτές υλοποιούνται στη γλώσσα C++ (π.χ. τα συστατικά της standard library και τον αντικειμενοστρεφή προγραμματισμό).
  • να έχουν την ικανότητα να αναπτύσσουν σύνθετους, ασφαλείς και γρήγορους κώδικες καθώς και να κατανοούν ή και να σχεδιάζουν κώδικες σε γλώσσες προγραμματισμού με παρόμοιες δυνατότητες με τη C++.

Το μάθημα σύμφωνα με το Ευρωπαϊκό Πλαίσιο Προσόντων Δια Βίου Μάθησης είναι επιπέδου 6 ως μάθημα πρώτου κύκλου σπουδών.

Μέθοδοι Aξιολόγησης

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

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

  • Σημειώσεις
  • Bjarne Stroustrup. Programming — Principles and Practice Using C++ (Second Edition) Addison Wesley, Reading, MA, USA, 2014.
  • ?

  • Bjarne Stroustrup. A tour of C++. Addison Wesley, Reading, MA, USA, 2013.
  • <.li>Stanley B. Lippman, Josée Lajoie and Barbara E. Moo. C++ Primer. Addison Wesley, Reading, MA, USA, fifth edition, August 2012.

  • Nicolai M. Josuttis. The C++ Standard Library: A Tutorial and Reference. Addison Wesley, Reading, MA, USA, March 2012.
  • Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, Reading, MA, USA, fourth edition,2013.
Τύπος Επιλογής
Εξάμηνο Γ
ECTS 5
Εβδομαδιαίες Ώρες Διδασκαλίας 3
Γλώσσα Ελληνικά

Περιεχόμενα