Cοmputer Programming I

General

Course Contents

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

Educational Goals

The course aims to provide the student with basic programming knowledge. The focus is on procedural programming, the main elements of which are the development of the program and the repeated use of subroutines, which either perform general tasks or address a part of the overall problem. The aim is to understand the principles of programming and to consolidate its philosophy, using the high level programming C language.

After attending the course, students should:

  • Know and understand the basics of programming in the C programming language.
  • Analyze programming problems that require the use of variables, constants, operators, iterations, and branches.
  • Perform data entry-exit procedures.
  • Create and manage multidimensional arrays, strings and character arrays.
  • They create their own data types.
  • Utilize the ability to write code, compile and run a program that provides a complete development environment (IDE, free software).
  • Understand and implement simple data management algorithms.

General Skills

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

Teaching Methods

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

Use of ICT means

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

Teaching Organization

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

Students Evaluation

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

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

Recommended Bibliography

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

  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.