Προγραμματισμός Ι
Γενικά
- Κωδικός: ΠΛΥ01032
- Εξάμηνο: 1o
- Επίπεδο Σπουδών: Προπτυχιακό
- Τύπος μαθήματος: Γενικού υποβάθρου
- Γλώσσα διδασκαλίας και εξετάσεων: Ελληνικά
- Το μάθημα διατίθεται σε φοιτητές Erasmus
- Μέθοδοι Διδασκαλίας (Ώρες/εβδ.): Διαλέξεις (1) / Ασκήσεις Πράξης (1) / Εργαστηριακές Ασκήσεις (2)
- Μονάδες ECTS: 5
- Σελίδα μαθήματος: http://teachers.teicm.gr/dvarsam/index.php/programmatismos-i-theory/
- Διδάσκοντες: Μπασαγιάννης Στυλιανός, Ζιώγας Ιορδάνης
- Πρόγραμμα Μαθημάτων:
Περιεχόμενα μαθήματος
- Γενικά περί προγραμματισμού Η/Υ, εργαλεία ανάλυσης (φυσική γλώσσα, διάγραμμα ροής, ψευδοκώδικας), μεταγλωττιστής, συνδέτης, διαδικασία αποσφαλμάτωσης και εκτέλεσης προγραμμάτων.
- Δομή προγράμματος, αρχεία κεφαλίδας, κύρια συνάρτηση, λέξεις κλειδιά, δεσμευμένες λέξεις, αναγνωριστές, κανόνες δημιουργίας ευανάγνωστου προγράμματος.
- Μεταβλητές: δήλωση, ονοματοδοσία, τύποι και χρήση μεταβλητών.
- Μορφοποιούμενες εντολές ανάγνωσης και εγγραφής.
- Ι/Ο κονσόλας, συναρτήσεις 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. Η προαιρετική ενδιάμεση γραπτή – εργαστηριακή εξέταση του θεωρητικού μέρους περιλαμβάνει:
- Ανάλυση κώδικα.
- Ανάπτυξη κώδικα.
- Η τελική γραπτή – εργαστηριακή εξέταση του θεωρητικού μέρους περιλαμβάνει:
- Ερωτήσεις πολλαπλής επιλογής.
- Ανάλυση κώδικα.
- Ανάπτυξη κώδικα.
- Η αξιολόγηση του εργαστηριακού μέρους του μαθήματος περιλαμβάνει:
- Την αξιολόγηση των προγραμματιστικών δεξιοτήτων που αποκτήθηκαν μέσω εξέτασης εβδομαδιαίων εργασιών.
Συνιστώμενη Βιβλιογραφία
Συγγράμματα μέσω του συστήματος ΕΥΔΟΞΟΣ:
- Γ. Τσελίκης, Ν. Τσελίκας, C από τη Θεωρία στην Εφαρμογή, 2η έκδοση, 2012.
- Ν. Χατζηγιαννάκης, Η Γλώσσα C σε Βάθος, 4η Έκδοση, Εκδόσεις Κλειδάριθμος, 2012.
Συγγράμματα που διανέμονται μέσω του Ιδρύματος ή της ηλεκτρονικής σελίδας του μαθήματος:
- Π. Μαστοροκώστας, Διαδικαστικός Προγραμματισμός, 2006.
- Π. Μαστοροκώστας, Προγραμματισμός Ι, Διαφάνειες θεωρίας, 2012.
- Π. Μαστοροκώστας, Προγραμματισμός Ι: εργαστηριακά φυλλάδια, 2013.
Συμπληρωματική προτεινόμενη βιβλιογραφία:
- H. Deitel, P. Deitel, C Προγραμματισμός, 7η έκδοση, Εκδόσεις Γκιούρδα, 2014.
- Αλ. Καράκος, Αλγοριθμική Επίλυση Ασκήσεων με τη Γλώσσα Προγραμματισμού C, 2010.
- Κ.Ν. King, C Programming: A Modern Approach, W.W. Norton & Company, 1996.
- Κλ. Θραμπουλίδης, Διαδικαστικός Προγραμματισμός – C (Τόμος Α), 2η έκδοση, Εκδόσεις Τζιόλα, 2002.
- E. Roberts, H Τέχνη και Επιστήμη της C, Εκδόσεις Κλειδάριθμος, 2004.
- H. Deitel, P. Deitel, Ασκήσεις – Προγράμματα σε C, Εκδόσεις Γκιούρδα, 2005.
- B.W. Kernighan, D.M. Ritchie, Η γλώσσα προγραμματισμού C, Εκδόσεις Κλειδάριθμος, 1990.
- M. Waite, S. Prata, D. Martin, Πλήρης Οδηγός Χρήσης της C, 6η έκδοση, Εκδόσεις Γκιούρδα, 2000.