Περιγραφή θέματος

  • Γενικά

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

    Διδάσκων : Χ. Παπαδόπουλος

    Περιγραφή: Ανάλυση και επίλυση προβλημάτων με την βοήθεια Η/Υ χρησιμοποιώντας την γλώσσα προγραμματισμού C++.

    Στο μάθημα περιλαμβάνονται εργαστηριακές ασκήσεις στις οποίες η συμμετοχή είναι υποχρεωτική.

    Μαθησιακοί Στόχοι Μαθήματος: Το μάθημα στοχεύει να μεταφέρει και να μεταδόσει γνώση στους φοιτητές για τα Βασικά χαρακτηριστικά της γλώσσας προγραμματισμού C++., την χεδίαση και ανάλυση υπολογιστικών προγραμμάτων, διόρθωση σφαλμάτων, έλεγχος, τεκμηρίωση, εγχειρίδιο χρήσης και αμυντικός προγραμματισμός. Βασικοί τύποι δεδομένων. Εντολές ελέγχου ροής προγράμματος, την είσοδος δεδομένων και έξοδος αποτελεσμάτων. Ακόμα τύποι δεδομένων, συμβολοσειρές, και πίνακες. 

    Επιπλέον θα ασχοληθούμε με τις έννοιες όπως υοπρογράμματα, βασικές και αναδρομικές συναρτήσεις, διαβίβαση τιμών των παραμέτρων δια μέσω τιμής και δια μέσω διεύθυνσης. Διάρκεια (ζωής) προσδιοριστών και κανόνες εμβέλειας και ορατότητας. Χρήση αρχείων. Δομές, εγγραφές, λίστες και σύνθετοι τύποι δεδομένων. Προεπεξεργαστής και βιβλιοθήκες.  Τεχνικές αποτελεσματικού προγραμματισμού και εξοικείωση με αλγορίθμους και διαγράμματα ροής προγραμμάτων. Εφαρμογές σε προβλήματα αναζήτησης, ταξινόμησης και μαθηματικών προβλημάτων.

    Λέξεις κλειδιά: Βασικοί τύποι δεδομένων. Εντολές ελέγχου ροής προγράμματος. Είσοδος δεδομένων και έξοδος αποτελεσμάτων. Τύποι δεδομένων, συμβολοσειρές, και πίνακες. Συναρτήσεις, διαβίβαση τιμών των παραμέτρων δια μέσω τιμής και δια μέσω διεύθυνσης. Διάρκεια (ζωής) προσδιοριστών και κανόνες εμβέλειας και ορατότητας. Χρήση αρχείων.

  • 1. Εισαγωγικά μαθήματος και Δυαδική αναπαράσταση

    Περιγραφή θεματικής ενότηταςΕπίλυση προβλημάτων με Η/Υ και δυαδική αναπαράσταση

    Λέξεις κλειδιά: Κατηγορίες δομημένου προγραμματισμού, η γλώσσα C++, δυαδικοί αριθμοί, θεσιακά συστήματα αρίθμησης

    Ύλη Βιβλιογραφίας
    [1]: Ενότητα 1.1, Παράρτημα 3
    [2]: Κεφάλαιο 1, Παραρτήματα Β, Δ

  • 2. Είσοδος και Έξοδος δεδομένων

    Περιγραφή θεματικής ενότητας : Είσοδος/Έξοδος δεδομένων τύποι δεδομένων & μεταβλητών

    Λέξεις κλειδιά : απλοί τύποι μεταβλητών, είσοδος, έξοδος, προεπεξεργαστής, βιβλιοθήκη

    Ύλη Βιβλιογραφίας
    [1]: Ενότητες 1.2, 1.3, 1.4, 1.5, Παράρτημα 1
    [2]: Κεφάλαιο 2, Παραρτήματα Γ

  • 3. Αριθμητικοί και λογικοί τελεστές

    Περιγραφή θεματικής ενότητας: Αριθμητικές εκφράσεις, και λογικές εκφράσεις, ροή ελέγχου if, προτεραιότητες τελεστών

    Λέξεις κλειδιά: αριθμητικοί τελεστές, λογικοί τελεστές, ροή ελέγχου if-else

    Ύλη Βιβλιογραφίας
    [1]: Ενότητες 2.1, 2.2, Παράρτημα 2
    [2]: Κεφάλαιο 4, Παραρτήματα Α, ΣΤ

  • 4. Ροή ελέγχου: if/else, switch, for, while, do-while

    Περιγραφή θεματικής ενότητας: Ροή ελέγχου: if/else, do-while, while, for

    Λέξεις κλειδιά: if/else, do-while, while, for

    Ύλη Βιβλιογραφίας
    [1]: Ενότητες 2.2, 2.3
    [2]: Κεφάλαια 4, 5

  • 5. Συναρτήσεις, εμβέλεια μεταβλητών και αναδρομή

    Περιγραφή θεματικής ενότητας: Συναρτήσεις, εμβέλεια μεταβλητών και αναδρομή

    Λέξεις κλειδιά: ορισμός και δήλωση συναρτήσεων, παράμετροι με τιμή, παράμετροι με αναφορά, αναδρομικές συναρτήσεις, εμβέλεια μεταβλητών

    Ύλη Βιβλιογραφίας
    [1]: Κεφάλαια 3, 4, Ενότητες 13.1, 13.2
    [2]: Κεφάλαιο 6 

  • 6. Επανάληψη σε συναρτήσεις

    Περιγραφή θεματικής ενότητας: Επανάληψη με παραδείγματα

    Λέξεις κλειδιά: συναρτήσεις, ροή ελέγχου, τύποι μεταβλητών, είσοδος, έξοδος

    Ύλη Βιβλιογραφίας
    [1]: Κεφάλαια 1, 2, 3, 4, Ενότητες 13.1, 13.2
    [2]: Κεφάλαια 1, 2, 4, 6 

  • 7. Πίνακες (μονοδιάστατοι και πολυδιάστατοι)

    Περιγραφή θεματικής ενότητας: Πίνακες μονοδιάστατοι και πολυδιάστατοι, δήλωση πινάκων, πίνακες ως παράμετροι

    Λέξεις κλειδιά: δήλωση και χρήση πινάκων, παράμετροι πίνακα

    Ύλη Βιβλιογραφίας
    [1]: Κεφάλαιο 5
    [2]: Κεφάλαιο 7 

  • 8. Εφαρμογές σε ταξινομήσεις και αναζήτηση στοιχείων

    Περιγραφή θεματικής ενότητας: Ταξινόμηση με επιλογή, ταξινόμηση με φυσαλίδα, ταξινόμηση με εισαγωγή, δυαδική αναζήτηση, εύρεση ελαχίστου και μεγίστου ταυτόχρονα

    Λέξεις κλειδιά: αλγόριθμοι ταξινομήσεων, αναζήτηση στοιχείου, δυαδική διερεύνηση

    Ύλη Βιβλιογραφίας
    [1]: Ενότητες 5.3, 13.3
    [2]: Κεφάλαιο 19, Ενότητες 7.7, 7.8, 8.6. 

  • 9. Αλφαριθμητικά και Συμβολοσειρές

    Περιγραφή θεματικής ενότητας: Αλφαριθμητικά (char []), και συμβολοσειρές (strings)

    Λέξεις κλειδιά: πίνακας αλφαριθμητικών, χειρισμοί χαρακτήρων, τυποποιημένη κλάση string

    Ύλη Βιβλιογραφίας
    [1]: Κεφάλαιο 9
    [2]: Κεφάλαιο 18, Ενότητες 6.7, 6.8

  • 10. Εγγραφές, δομές και χρήση αρχείων

    Περιγραφή θεματικής ενότητας: Δομές (struct) και χρήση αρχείων

    Λέξεις κλειδιά: τύποι δομών, δομές ως παράμετροι σε συναρτήσεις δομές, ροές Ε/Ε, προσπέλαση αρχείων

    Ύλη Βιβλιογραφίας
    [1]: Ενότητες 6.1, 12.1, 12.2, 12.4
    [2]: Κεφάλαιο 21, Ενότητες 17.1-17.10

  • 11. Επανάληψη

    Περιγραφή θεματικής ενότητας: Επανάληψη της ύλης μέσα από παραδείγματα

    Λέξεις κλειδιά: παραδείγματα με συναρτήσεις και πίνακες

    Ύλη Βιβλιογραφίας
    [1]: Κεφάλαια: 1, 2, 3, 4, 5, 9, 13. Ενότητες: 6.1. Παραρτήματα: 1, 2, 3
    [2]: Κεφάλαια: 1, 2, 4, 5, 6, 7, 18, 19, 21. Ενότητες:  8.6, 17.1-17.10. Παραρτήματα: Α, Β, Γ, Δ, ΣΤ

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

    [1]  W. Savitch,  Πλήρης C++,  Εκδόσεις Τζιόλα, 2011.  Κωδικός Ευδ: 18548892

    [2] Η. Deitel and P. Deitel,  C++ Προγραμματισμός 6η Εκδοση,  Εκδόσεις Μ. Γκιούρδας, 2013.  Κωδικός Ευδ: 12536819

    [3]  L. Jesse,  Πλήρες εγχειρίδιο της C++,  Εκδόσεις Α. Γκιούρδα, 2006.  Κωδικός Ευδ: 12374

    [4] Ν. Χατζηγιαννάκης,  Η γλώσσα C++ σε βάθος,  Εκδόσεις Κλειδάριθμος, 2008.  Κωδικός Ευδ: 13761

    Ύλη βιβλιογραφίας:

    [1]: Κεφάλαια: 1, 2, 3, 4, 5, 9, 13. Ενότητες: 6.1. Παραρτήματα: 1, 2, 3

    [2]: Κεφάλαια: 1, 2, 4, 5, 6, 7, 18, 19, 21. Ενότητες:  8.6, 17.1-17.10. Παραρτήματα: Α, Β, Γ, Δ, ΣΤ

    • Επιπρόσθετο Υλικό

      Τα προγράμματα που θα αναπτύξουμε βασίζονται στο περιβάλλον DevC++. Σε αυτό θα πρέπει να αναπτυχθούν όλα τα προγράμματα του εργαστηρίου. Μπορείτε να το κατεβάσετε ελεύθερα από την σελίδα http://www.bloodshed.net/ επιλέγοντας το κατάλληλο περιβάλλον (windowsLinux, ...) που χρησιμοποιείτε στον υπολογιστή σας.

    • Εργαστήρια

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

       Πριν την διεξαγωγή του εργαστηρίου:

      • θα πρέπει να ασχοληθείτε με την εκφώνηση της άσκησης (δεν χρειάζεται να τη λύσετε) και να συγκεντρώσετε τυχόν απορίες.

      Κατά την διάρκεια του εργαστηρίου:

      • ασχολείστε με τα θέματα της εκφώνησης και λύνετε τυχόν απορίες με τους μεταπτυχιακούς φοιτητές (βοηθοί εργαστήριων).

       Στα εργαστήρια θα πρέπει να αναπτύξετε προγράμματα σε C/C++ με χρήση του εργαλείου DevC++. Θα πρέπει να εξοικειωθείτε με το περιβάλλον τουDevC++ μαζί με ορισμένα παραδείγματα. 

    • Quiz (κουιζ ερωτήσεων πολλαπλών επιλογών)

      Θα διεξαχθούν δύο τεστ (κουιζ) ερωτήσεων πολλαπλών επιλογών.

      Αφορούν περισσότερο θέματα κατανόησης και όχι ανάπτυξης προγραμμάτων όπως γίνεται στο εργαστήριο.