2015-16 - Προγραμματισμός Ι

Χρήστος Αντωνόπουλος

Περιγραφή

Το μάθημα παρέχει στους φοιτητές την πρώτη επαφή με βασικές αρχές της επίλυσης προβλημάτων με τη βοήθεια υπολογιστή. Οι φοιτητές εισάγoνται στις βασικές αρχές διαδικαστικού προγραμματισμού με χρήση της γλώσσας C. Το μάθημα συνοδεύεται από εργαστήριο, στο οποίο οι συμμετέχοντες εφαρμόζουν πρακτικά – σε σειρά εργασιών – όσα διδάχθηκαν στο μάθημα με στόχο τη βαθύτερη εμπέδωση των εννοιών και τεχνικών.

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

  • Αναλύσει τις απαιτήσεις προβλημάτων τα οποία πρόκειται να επιλυθούν με υπολογιστή και να συνθέσει τη λύση τους.
  • Παράξει λύσεις που συμμορφώνονται αυστηρά σε προδιαγραφές.
  • Γνωρίζει τα βασικά χαρακτηριστικά και δομές της γλώσσας προγραμματισμού C και είναι σε θέση να εφαρμόσει τα καταλληλότερα κάθε φορά για την υλοποίηση των αλγοριθμικών λύσεων στις οποίες κατέληξε.
  • Εφαρμόσει βασικές αρχές της τεχνολογίας λογισμικού ώστε να οργανώσει τον κώδικά του / της με αποδοτικό τρόπο (οργάνωση, αναγνωσιμότητα, σχεδιασμός).
Περισσότερα  
Κωδικός: MHX113
Κατηγορία: Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών » Προπτυχιακό
CC - Αναφορά Δημιουργού
CC - Αναφορά Δημιουργού

Θεματικές Ενότητες

Εισαγωγή στο αντικείμενο και τις απαιτήσεις του μαθήματος. Εισαγωγή στη δομή και τη λειτουργία των υπολογιστών. Κωδικοποίηση οδηγιών προς τον υπολογιστή.

Το μοντέλο της μνήμης. Εισαγωγή στην κωδικοποίηση δεδομένων, τους βασικούς τύπους δεδομένων και την έννοια της μεταβλητής. 

Εισαγωγή στη γλώσσα προγραμματισμού C. Τα πρώτα προγράμματα σε C. Μεταγλώττιση κώδικα. 

Είδη σφαλμάτων (συντακτικά, σημασιολογικά, λογικά) και αποσφαλμάτωση. 

Βασικοί τύποι δεδομένων και τελεστές. Τελεστές ανάθεσης, αυξομείωσης, αριθμητικοί, bitwise, λογικοί. Τελεστής , και ?:

Παρενέργειες, και ακαθόριστη συμπεριφορά.

Προτεραιότητα τελεστών.

Κυριολεκτικά βασικών τύπων δεδομένων

Μετατροπές μεταξύ τύπων δεδομένων (αυτόματες και casting)

Αριθμητική χαρακτήρων

Δομές ελέγχου. Συνθήκες: if/else, switch/case.

Δημιουργία σώματος εντολών συνθήκης με χρήση {}. Στοίχιση

Ορισμός και κλήση συναρτήσεων

Παράμετροι συνάρτησης και επιστροφή αποτελεσμάτων

Τοπικές / καθολικές μεταβλητές. Εμβέλεια και ζωή μεταβλητών

Μηχανισμός εκτέλεσης συνάρτησης (stack, stack frames)

Η έννοια του δείκτη

Τελεστές * και &

Αριθμητική δεικτών

Δυναμική διαχείριση μνήμης

Βασικές συναρτήσεις δυναμικής δέσμευσης / αποδέσμευσης μνήμης 

Μονιμότητα δυναμικής μνήμης. Δυναμικοί Πίνακες

Παράδειγμα: Απλή βάση δεδομένων με χρήση δυναμικών πινάκων

Διασυνδεμένες δομές δεδομένων. Διαφοροποίηση από πίνακες. Αναδρομικές δομές

Η έννοια της λίστας

Αναζήτηση / εισαγωγή / απομάκρυνση κόμβου σε λίστες (γραμμική απλά διασυνδεμένη, κυκλική απλά διασυνδεμένη, κυκλική απλά διασυνδεμένη με τερματικό, κυκλική διπλά διασυνδεμένη με τερματικό)

Ταξινομημένες λίστες (εκ' κατασκευής) 

Η έννοια της αναδρομής και της αναδρομικής κλήσης συναρτήσεων. Απλά παραδείγματα

Αναδρομικός τρόπος σκέψης

Αναδρομικός υπολογισμός παραγοντικού

Σύνθετοι τύποι δεδομένων (structs, unions, enums). Ο τελεστής .

Εύρεση μεγέθους σύνθετου τύπου - η συνάρτηση sizeof().

Ορισμός νέων συμβολικών ονομάτων τύπων δεδομένων (typedef).

Δείκτες προς σύνθετους τύπους δεδομένων. Ο τελεστής ->. Πίνακες σύνθετων τύπων δεδομένων.

Παράδειγμα: Απλή βάση δεδομένων με χρήση πίνακα δομών.

Κλήση συναρτήσεων με εκτίμηση παραμέτρων κατά τιμή και κατ' αναφορά.

Δείκτες ως παράμετροι συναρτήσεων. Πίνακες ως παράμετροι συναρτήσεων.

Χρήση δεικτών για επιστροφή πολλαπλών αποτελεσμάτων από συνάρτηση.

Δείκτες ως αποτέλεσμα συναρτήσεων.

Σχέση - ισοδυναμία δεικτών και πινάκων. Παραδείγματα για 1-διάστατους και 2-διάστατους πίνακες. Πίνακες δεικτών

Παράμετροι της συνάρτησης main (argc, argv)

Παράδειγμα: Εύκολη ταξινόμηση πίνακα συμβολοσειρών με χρήση ενδιάμεσου πίνακα δεικτών.

Δομές Επανάληψης (while, do-while, for). Ισοδυναμία δομών επανάληψης.

Απλοί αλγόριθμοι (παραγοντικό, εύρεση μέγιστου κοινού διαιρέτη).

Η εντολές break, continue, goto.

Οδηγίες μορφοποίησης προγραμμάτων για βελτίωση της αναγνωσιμότητας.

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A+

Αρ. Επισκέψεων :  2453
Αρ. Προβολών :  12134

Ημερολόγιο

Ανακοινώσεις

  • - Δεν υπάρχουν ανακοινώσεις -