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

Γενικά

Περιεχόμενα μαθήματος

  • Γενικά περί προγραμματισμού Η/Υ, εργαλεία ανάλυσης (φυσική γλώσσα, διάγραμμα ροής, ψευδοκώδικας), μεταγλωττιστής, συνδέτης, διαδικασία αποσφαλμάτωσης και εκτέλεσης προγραμμάτων.
  • Δομή προγράμματος, αρχεία κεφαλίδας, κύρια συνάρτηση, λέξεις κλειδιά, δεσμευμένες λέξεις, αναγνωριστές, κανόνες δημιουργίας ευανάγνωστου προγράμματος.
  • Μεταβλητές: δήλωση, ονοματοδοσία, τύποι και χρήση μεταβλητών.
  • Μορφοποιούμενες εντολές ανάγνωσης και εγγραφής.
  • Ι/Ο κονσόλας, συναρτήσεις getchar, getch, getche, putchar.
  • Πίνακες: δήλωση, απόδοση αρχικών τιμών, εγγραφή κι ανάγνωση πινάκων, αποθήκευση στη μνήμη, πολυδιάστατοι πίνακες.
  • Συμβολοσειρές: δήλωση, απόδοση αρχικών τιμών, εγγραφή κι ανάγνωση συμβολοσειρών, αποθήκευση στη μνήμη.
  • Συναρτήσεις συμβολοσειρών, αλφαριθμητικές σταθερές.
  • Τελεστές – εκφράσεις: ορισμός, σύμβολα, σημειολογίες τελεστών, ένθετες εκφράσεις, προτεραιότητα – προσεταιριστικότητα τελεστών.
  • Τελεστές αύξησης – μείωσης, τελεστές ανάθεσης, συσχετιστικοί – αριθμητικοί τελεστές, λογικοί τελεστές.τελεστής μετατροπής, τελεστής sizeof, υποθετικός τελεστής.
  • Προτάσεις ελέγχου ροής, υπό συνθήκη διακλάδωση με if-else και switch.
  • Προτάσεις επανάληψης, βρόχοι με συνθήκες εισόδου – εξόδου, οδηγούμενοι από γεγονός – μετρητή, βρόχοι for, βρόχοι while, do while.
  • Μετατροπή βρόχων, διακοπτόμενοι βρόχοι – break, ένθετοι βρόχοι, ρητή διακλάδωση – goto, ο τελεστής κόμμα, κανόνες χρήσης προτάσεων ροής ελέγχου.
  • Ένθετες δομές, πίνακες δομών, απαριθμητοί τύποι δεδομένων (enumerated).
  • Εφαρμογή σε πραγματικά προβλήματα.

Μαθησιακοί Στόχοι

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

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

  • Γνωρίζουν και να κατανοούν τα βασικά ζητήματα δημιουργίας προγράμματος στη γλώσσα προγραμματισμού C.
  • Αναλύουν προγραμματιστικά προβλήματα που απαιτούν τη χρήση μεταβλητών, σταθερών, τελεστών, προτάσεων επανάληψης και διακλάδωσης.
  • Επιτελούν λειτουργίες εισόδου-εξόδου δεδομένων.
  • Να δημιουργούν και να διαχειρίζονται πολυδιάστατους πίνακες, αλφαριθμητικά και πίνακες αλφαριθμητικών.
  • Δημιουργούν τους δικούς τους τύπους δεδομένων.
  • Αξιοποιούν τις δυνατότητες συγγραφής κώδικα, μεταγλώττισης, σύνδεσης και εκτέλεσης προγράμματος που παρέχει ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE, ελεύθερο λογισμικό).
  • Κατανοούν και υλοποιούν απλούς αλγορίθμους διαχείρισης δεδομένων.

Γενικές Ικανότητες

  • Aυτόνομη εργασία
  • Ανάλυση και σχεδίαση αλγοριθμικών διαδικασιών
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

Μέθοδοι Διδασκαλίας

  •  Θεωρητική από έδρας διδασκαλία με συζήτηση και ενεργή συμμετοχή των φοιτητών. Κατά την διάρκεια του μαθήματος γίνονται παρουσιάσεις σε powerpoint και εκτελούνται ενδεικτικά παραδείγματα-προγράμματα με χρήση ελεύθερου λογισμικού.
  • Εργαστηριακές ασκήσεις και ατομικές εργασίες δημιουργίας προγραμμάτων

Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών

  • Χρήση εξειδικευμένου λογισμικού.
  • Υποστήριξη της μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας ECLASS
  • Ηλεκτρονικές Ασκήσεις Αυτοαξιολόγησης.
  • Επικοινωνία με φοιτητές μέσω e-mail και της ιστοσελίδας του μαθήματος.

Οργάνωση Διδασκαλίας

ΔραστηριότηταΦόρτος εργασίας εξαμήνου
Διαλέξεις13
Ασκήσεις Πράξης13
Εργαστηριακές Ασκήσεις26
Συγγραφή εργαστηριακών αναφορών20
Αυτοτελής Μελέτη53
Σύνολο125

Αξιολόγηση Φοιτητών

Ο τελικός βαθμός του μαθήματος διαμορφώνεται κατά 20% από τον βαθμό του θεωρητικού μέρους και κατά 80% από τον βαθμό του εργαστηριακού.
Ο βαθμός διαμορφώνεται κατά 70% από γραπτή – εργαστηριακή τελική εξέταση και κατά 30% από προαιρετική ενδιάμεση γραπτή – εργαστηριακή εξέταση. Σε περίπτωση μη συμμετοχής ενός φοιτητή στην ενδιάμεση εξέταση ή αποτυχίας του, ο βαθμός διαμορφώνεται αποκλειστικά από την τελική γραπτή εξέταση.

  1. 1. Η προαιρετική ενδιάμεση γραπτή – εργαστηριακή εξέταση του θεωρητικού μέρους περιλαμβάνει:
    • Ανάλυση κώδικα.
    • Ανάπτυξη κώδικα.
  2. Η τελική γραπτή – εργαστηριακή εξέταση του θεωρητικού μέρους περιλαμβάνει:
    • Ερωτήσεις πολλαπλής επιλογής.
    • Ανάλυση κώδικα.
    • Ανάπτυξη κώδικα.
  3. Η αξιολόγηση του εργαστηριακού μέρους του μαθήματος περιλαμβάνει:
    • Την αξιολόγηση των προγραμματιστικών δεξιοτήτων που αποκτήθηκαν μέσω εξέτασης εβδομαδιαίων εργασιών.

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος ΕΥΔΟΞΟΣ:

  1. Γ. Τσελίκης, Ν. Τσελίκας, C από τη Θεωρία στην Εφαρμογή, 2η έκδοση, 2012.
  2. Ν. Χατζηγιαννάκης, Η Γλώσσα C σε Βάθος, 4η Έκδοση, Εκδόσεις Κλειδάριθμος, 2012.

Συγγράμματα που διανέμονται μέσω του Ιδρύματος ή της ηλεκτρονικής σελίδας του μαθήματος:

  1. Π. Μαστοροκώστας, Διαδικαστικός Προγραμματισμός, 2006.
  2. Π. Μαστοροκώστας, Προγραμματισμός Ι, Διαφάνειες θεωρίας, 2012.
  3. Π. Μαστοροκώστας, Προγραμματισμός Ι: εργαστηριακά φυλλάδια, 2013.

Συμπληρωματική προτεινόμενη βιβλιογραφία:

  1. H. Deitel, P. Deitel, C Προγραμματισμός, 7η έκδοση, Εκδόσεις Γκιούρδα, 2014.
  2. Αλ. Καράκος, Αλγοριθμική Επίλυση Ασκήσεων με τη Γλώσσα Προγραμματισμού C, 2010.
  3. Κ.Ν. King, C Programming: A Modern Approach, W.W. Norton & Company, 1996.
  4. Κλ. Θραμπουλίδης, Διαδικαστικός Προγραμματισμός – C (Τόμος Α), 2η έκδοση, Εκδόσεις Τζιόλα, 2002.
  5. E. Roberts, H Τέχνη και Επιστήμη της C, Εκδόσεις Κλειδάριθμος, 2004.
  6. H. Deitel, P. Deitel, Ασκήσεις – Προγράμματα σε C, Εκδόσεις Γκιούρδα, 2005.
  7. B.W. Kernighan, D.M. Ritchie, Η γλώσσα προγραμματισμού C, Εκδόσεις Κλειδάριθμος, 1990.
  8. M. Waite, S. Prata, D. Martin, Πλήρης Οδηγός Χρήσης της C, 6η έκδοση, Εκδόσεις Γκιούρδα, 2000.