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

Γενικά

  • Κωδικός: ΠΛΥ02022
  • Εξάμηνο:
  • Επίπεδο Σπουδών: Προπτυχιακό
  • Τύπος μαθήματος:
  • Γλώσσα διδασκαλίας και εξετάσεων: Ελληνικά
  • Το μάθημα διατίθεται σε φοιτητές Erasmus
  • Μέθοδοι Διδασκαλίας (Ώρες/εβδ.): Διαλέξεις (1) / Ασκήσεις πράξεις (1) / Εργαστηριακές Ασκήσεις (2)
  • Μονάδες ECTS: 5
  • Σελίδα μαθήματος: http://teachers.teicm.gr/dvarsam/index.php/programmatismos-ii-theory/
  • Διδάσκοντες: Ζιώγας Ιορδάνης

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

  • Φιλοσοφία του δομημένου προγραμματισμού, έννοια της δομής, δήλωση, ορισμός και απόδοση αρχικών τιμών.
  • Αρθρωτός σχεδιασμός, δήλωση και ορισμός συνάρτησης, σώμα και παράμετροι συνάρτησης.
  • Κλήση συνάρτησης κατά τιμή, εμβέλεια μεταβλητών, τοπικές και καθολικές μεταβλητές.
  • Διάρκεια μεταβλητών, κλήση συναρτήσεων με πίνακες και δομές.
  • Η έννοια της αναδρομής, αναδρομικές συναρτήσεις.
  • Δείκτες, δήλωση και ιδιότητές τους, δυναμική εκχώρηση μνήμης.
  • Εφαρμογή δεικτών, δείκτες και συναρτήσεις, κλήση συνάρτησης κατ’ αναφορά.
  • Ορίσματα γραμμής διαταγής, χρήση δεικτών για την προσπέλαση πολυδιάστατων πινάκων.
  • Δείκτες και συμβολοσειρές.
  • Κανάλια εισόδου, εξόδου, ενδιάμεση μνήμη (buffer), δυαδικά και ASCII αρχεία, άνοιγμα, κλείσιμο αρχείου, παράμετροι προσδιορισμού πρόσβασης σε αρχείο.
  • Μορφοποιημένη ανάγνωση και εγγραφή σε αρχείο, ανάγνωση και εγγραφή χαρακτήρα, συμβολοσειρών και ανά γραμμή.
  • Διεπαφές (interfaces), συγγραφή διεπαφής, αρχεία κεφαλίδας και αρχεία βιβλιοθήκης.
  • Ανάπτυξη δομημένων προγραμμάτων, εφαρμογή σε πραγματικό πρόβλημα.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. H. Deitel, P. Deitel, C Προγραμματισμός, 7η έκδοση, Εκδόσεις Γκιούρδα, 2014.
  2. E. Roberts, H Τέχνη και Επιστήμη της C, Εκδόσεις Κλειδάριθμος, 2004.

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

  1. Π. Μαστοροκώστας, Διαδικαστικός Προγραμματισμός, 2006.
  2. Π. Μαστοροκώστας, Προγραμματισμός ΙΙ, Διαφάνειες θεωρίας, 2011.
  3. E. Ούτσιος, Δομημένος Προγραμματισμός: Σημειώσεις Εργαστηρίου, 2003.

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

  1. Γ. Τσελίκης, Ν. Τσελίκας, C από τη Θεωρία στην Εφαρμογή, 2η έκδοση, 2012.
  2. Ν. Χατζηγιαννάκης, Η Γλώσσα C σε Βάθος, 4η Έκδοση, Εκδόσεις Κλειδάριθμος, 2012.
  3. Αλ. Καράκος, Αλγοριθμική Επίλυση Ασκήσεων με τη Γλώσσα Προγραμματισμού C, 2010.
  4. Κ.Ν. King, C Programming: A Modern Approach, W.W. Norton & Company, 1996.
  5. Κλ. Θραμπουλίδης, Διαδικαστικός Προγραμματισμός – C (Τόμος Α), 2η έκδοση, Εκδόσεις Τζιόλα, 2002.
  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.