Εισαγωγή στον προγραμματισμό και την αλγοριθμική επίλυση προβλημάτων με τη γλώσσα προγραμματισμού C++. Δομή του προγράμματος, σύνταξη και σημασιολογία. Αριθμητικές και λογικές παραστάσεις. Δομές ελέγχου: διακλαδώσεις, βρόχοι. Δομημένος προγραμματισμός: διαδικασίες, συναρτήσεις, πέρασμα παραμέτρων (με τιμή και με αναφορά). Πίνακες: μονοδιάστατοι πίνακες, γραμμική αναζήτηση, δυαδική αναζήτηση, πολυδιάστατοι πίνακες. Αναδρομή. Αριθμητικοί υπολογισμοί και αριθμητικά σφάλματα. Δείκτες, πίνακες και δείκτες, δυναμική διαχείριση της μνήμης. Ταξινόμηση: με επιλογή, με εισαγωγή, με τη μέθοδο της φυσαλίδας, με συγχώνευση, με διαμέριση. Σύνθετοι τύποι δεδομένων: συμβολοσειρές, απαριθμήσεις, δομές, ενώσεις, αρχεία κειμένου και δυαδικά αρχεία. Εφαρμογές επεξεργασίας κειμένου. Δομές δεδομένων: εισαγωγή στην πολυπλοκότητα, αφηρημένοι τύποι δεδομένων, συνδεδεμένες λίστες, στοίβες, ουρές, γράφοι, δυαδικά δέντρα, διάσχιση. Εισαγωγή στις κλάσεις και τα αντικείμενα. Ορθότητα του προγράμματος: εισαγωγή στις έννοιες των βεβαιώσεων, της αναλλοίωτης και της μαθηματικής επαλήθευσης προγραμμάτων.
Εργαστήριο: Μια σειρά προβλημάτων που θα λυθούν σε ένα εκπαιδευτικό υποσύνολο της C++.
- Διδάσκων: Ευστάθιος Ζάχος
- Διδάσκων: Πετρος Ποτικας
- Διδάσκων: Δημήτριος Τσουμάκος
- Διδάσκων: Δημήτριος Φωτάκης
Διδακτικές Μονάδες : 6
Φόρτος Εργασίας : theory 3, lab 2
Γλώσσα : el
Μαθησιακά Αποτελέσματα : Η ύλη του μαθήματος στοχεύει στην εκπαίδευση των σπουδαστών στα εξής θέματα:
Εισαγωγή στον προγραμματισμό με τη γλώσσα προγραμματισμού C++.
Εισαγωγή στην αλγοριθμική επίλυση προβλημάτων.
Μετά την επιτυχή ολοκλήρωση του μαθήματος οι σπουδαστές θα είναι σε θέση να:
Γνωρίζουν τις βασικές αρχές προγραμματισμού με τη γλώσσα προγραμματισμού C++. Συγκεκριμένα:
Δομή του προγράμματος, σύνταξη και σημασιολογία.
Αριθμητικές και λογικές παραστάσεις.
Δομές ελέγχου: διακλαδώσεις, βρόχοι.
Δομημένος προγραμματισμός, διαδικασίες, συναρτήσεις, πέρασμα παραμέτρων (με τιμή και με αναφορά).
Κατανοούν τη χρήση βασικών τύπων δεδομένων. Συγκεκριμένα:
Πίνακες: μονοδιάστατοι και πολυδιάστατοι.
Δείκτες, πίνακες και δείκτες, δυναμική διαχείριση της μνήμης.
Σύνθετοι τύποι δεδομένων: συμβολοσειρές, δομές, ενώσεις, αρχεία κειμένου και δυαδικά αρχεία.
Γνωρίζουν τον τρόπο υλοποίησης και κατανοούν τη χρήση απλών δομών δεδομένων όπως: συνδεδεμένες λίστες, στοίβες, ουρές, γράφοι, δυαδικά δέντρα. Είναι σε θέση να τις υλοποιήσουν και να τις χρησιμοποιήσουν στα προγράμματά τους.
Γνωρίζουν βασικές αλγοριθμικές έννοιες, κατανοούν τη διαδικασία επίλυσης απλών αλγοριθμικών προβλημάτων και είναι σε θέση να την εφαρμόσουν στην πράξη γράφοντας προγράμματα σε C++. Συγκεκριμένα:
Αναζήτηση: γραμμική και δυαδική.
Ταξινόμηση: με επιλογή, με εισαγωγή, με τη μέθοδο της φυσαλίδας, με συγχώνευση, με διαμέριση.
Αναδρομή.
Αριθμητικοί υπολογισμοί και αριθμητικά σφάλματα.
Εφαρμογές επεξεργασίας κειμένου.
Αξιολογούν την ορθότητα των αλγορίθμων και των προγραμμάτων τους, χρησιμοποιώντας τις έννοιες των βεβαιώσεων, της αναλλοίωτης και της μαθηματικής επαλήθευσης προγραμμάτων.
Αναλύουν και αξιολογούν την επίδοση (πολυπλοκότητα) των αλγορίθμων και των προγραμμάτων που αναπτύσσουν.