Cοmputer Programming II

General

Course Contents

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

Educational Goals

The course aims to introduce the student to the logic of structured programming. The main aims are language constructions (repetition and branching sentences), functions, complex data types, input-output for files, direct access to memory through pointers and the creation of interconnected programs using headers. The goal is to understand the design of integrated programs, using the high level programming C language.

After attending the course, students should:

  • Know and understand the use of programming functions in the programming C language.
  • Be familiar with the properties of pointers and their applications in calling function values, dynamic memory assignment and arrays and string management.
  • Know the properties and operation of binary files and text files, as well as the random access of binary files.
  • Implement complex algorithms using recursive programming functions.
  • Create interface and header files, as well as divide the code into individual files.
  • Utilize the ability to write code, compile and execute multiple programs provided by a comprehensive development environment (IDE, free software).

General Skills

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

Teaching Methods

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

Use of ICT means

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

Teaching Organization

ActivitySemester workload
Lectures13
Practice Exercises13
Laboratory Exercises26
Writing individual laboratory work20
Autonomous Study53
Total125

Students Evaluation

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

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

Recommended Bibliography

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

  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.