Περιγραφή θέματος
Γενικά
1. Εισαγωγή στον προγραμματισμό
•Τι είναι αυτό το μάθημα ;
•Τι θα πρέπει να ξέρω ;
•Τι θα πρέπει να κάνω ;
•Τι θα ξέρω όταν τελειώσει;
•Τι είναι ο προγραμματισμός;
•Εφαρμογές του προγραμματισμού
•Ένα απλό πρόγραμμμα
2. Αντικείμενα, Τύποι και Τιμές
Strings και Είσοδος/Έξοδος (Ι/Ο) string
Ακέραιοι και Ι/Ο ακεραίων
Τύποι και Αντικείμενα
Ασφάλεια τύπων
3. Υπολογισμός
Υπολογισμός
- Τι είναι υπολογίσιμο; Ποιός είναι ο καλύτερος τρόπος?
- Αφαίρεση, Αλγόριθμοι, Τεχνάσματα, Δομές δεδομένων
Δομή της Γλώσσας και ιδέες
- Σειριακή εκτέλεση
- Εκφράσεις και Εντολές
- Επιλογή
- Επανάληψη
- Συναρτήσεις
- Vectors
4. Σφάλματα
Κατηγορίες σφαλμάτων
Ελεγχος ορισμάτων
- Αναφορά σφαλμάτων
- Εντοπισμός σφαλμάτων
- Εξαιρέσεις
Debugging
Έλεγχος (testing)
5. Σύνταξη Προγράμματος
Μερικές σκέψεις για την ανάπτυξη λογισμικού
Η ιδέα της αριθμομηχανής
Χρησιμοποιώντας τη γραμματική
Εκτίμηση έκφρασης
Οργάνωση προγράμματος
6. Ολοκλήρωση Προγράμματος
Tokens και token streams
- Κλάσεις και structs
Τακτοποίηση του κώδικα
- Prompts
- Οργάνωση προγράμματος
-- σταθερές
- Αποκατάσταση από σφάλματα
- Σχόλια
- Αναθεώρηση κώδικα
- Έλεγχος (Testing)
Δυο λέξεις για την πολυπλοκότητα και τη δυσκολία7. Συναρτήσεις
Τεχνικές λεπτομέρειες
- Ορισμοί
- Headers και preprocessor
- Εμβέλεια (scope)
Συναρτήσεις
- Δηλώσεις και Ορισμοί
- Ορίσματα
Call by value, reference, και const reference
Χώροι ονομάτων (Namespaces)
- Δηλώσεις “Using”
Αναδρομικές συναρτήσεις8. Κλάσεις
Κλάσεις
- Υλοποίηση και Διεπαφή
- Κατασκευαστές
- Συναρτήσεις-μέλη
Απαριθμήσεις
Υπερφόρτωση τελεστών
Χρήσιμα headers στη C++9. Ροή Εισόδου/Εξόδου
Θεμελιώδεις έννοιες Ι/Ο
Αρχεία
- Άνοιγμα
- Ανάγνωση και εγγραφή
Σφάλματα I/O
Ανάγνωση ακεραίου10. Μορφοποίηση Εισόδου/Εξόδου
Είσοδος και Έξοδος
Έξοδος αριθμητικών
- Ακέραιοι
- Αριθμοί κινητής υποδιαστολής
Καταστάσεις αρχείων
- Δυαδική I/O
- Τοποθέτηση
Ροή συμβολοσειράς (string streams)
Είσοδος βάσει γραμμής
- Είσοδος χαρακτήρων
- Ταξινόμηση χαρακτήρων
11. Ένα μοντέλο Προβολής
Γιατί γραφικά;
Ένα μοντέλο γραφικών
Παραδείγματα12. Κλάσεις Γραφικών
Δουλεύοντας με γραφικά
- Μοντέλο προβολής
- Οργάνωση κώδικα
Κλάσεις διεπαφής
- Point
- Line
- Lines
- Grid
- Open Polylines
- Closed Polylines
- Color
- Text
- Unnamed objects
Βιβλιοθήκες S/W
13. Σχεδίαση κλάσεων γραφικών
14. Γραφικές Διεπαφές Χρήστη
Προοπτική
-Εναλλακτικές λύσεις Ι/Οs
-GUI
-Επίπεδα λογισμικού
Παράδειγμα GUI
Κώδικας GUI
-επανάκληση
15. Διάνυσμα και ελεύθερη αποθήκευση
Πίσω στα διανύσματα (vector)
- Πώς υλοποιούνται;
Δείκτες και ελεύθερη αποθήκευση
- Εκχώρηση(αρχική)
- Πρόσβαση
--- Συστοιχίες (arrays) και δείκτες: []
--- Απο-αναφορά (dereferencing): *
- Αποδέσμευση (σβήσιμο)
16. Συστοιχίες
Αποδομητές
Κατασκευαστής αντιγράφου και εκχώρηση αντιγράφου
Συστοιχίες (Arrays)
17. Πρότυπα, Εξαιρέσεις
Αλλαγή μεγέθους
- resize() και push_back()
Πρότυπα
Έλεγχος εύρους και εξαιρέσεις
18. STL: Περιέκτες
Κοινοί στόχοι και ιδανικά
Γενικός προγραμματισμός
Περιέκτες, αλγόριθμοι και επαναλήπτες
Ο πιο απλός αλγόριθμος: find ()
παραμετροποίηση αλγορίθμων
- find_if() και αντικείμενα συναρτήσεων
Ακολουθίες
- διάνυσμα και λίστα
19. STL: Αλγόριθμοι
Συσχετιζόμενοι περιέκτες
- map, set
Σημαντικοί αλγόριθμοι
- copy, sort, ...
- Επαναλήπτες εισόδου - εξόδου
Χρήσιμα εργαλεία
- Επικεφαλίδες, αλγόριθμοι, περιέκτες, αντικείμενα συναρτήσεων
20. Ιδανικά και Γλώσσες
Ιδανικά
- Στόχοι, ήρωες, τεχνικές
Γλώσσες και σχεδιαστές γλωσσών
- Γλώσσες προγενέστερες της C++
21. Κείμενα και Αριθμοί
Συμβολοσειρές
Είσοδος / Έξοδος
Ακρίβεια, υπερχείλιση, μεγέθη, σφάλματα
Πίνακες
Τυχαίοι αριθμοί
Μιγαδικοί αριθμοί
Παραδείγματα
22. Δοκιμές
Ορθότητα, αποδείξεις και δοκιμές
Συσχετίσεις
Έλεγχος συστημάτων
Έλεγχος GUI
Διαχείριση πόρων
Δοκιμές μονάδας και συστήματος
Αποκάλυψη λανθασμένων υποθέσεων
Σχεδιασμός δοκιμών
Απόδοση
23. Η C υπό το πρίσμα της C++
C και C++
Συναρτήσεις πρότυπα
printf()/scanf()
Συστοιχίες και συμβολοσειρές
Διαχείριση μνήμης
Μακροεντολές
const
Διαλειτουργικότητα C/C++
24. Τελική επισκόπηση