Nikos Spanoudakis
Website in Greek Website in English

Μεθοδολογία Προγραμματισμού Η/Υ (ΜΠΔ 101)


Προπτυχιακό Μάθημα, Μηχανικών Παραγωγής και Διοίκησης, 1ο Εξάμηνο σπουδών

Εβδομαδιαίες Ώρες Διδασκαλίας Πιστωτικές Μονάδες
Διαλέξεις 2
Εργαστήρια 3
Σύνολο 5 5

Τύπος Μαθήματος : Γενικού υποβάθρου
Γλώσσα Διδασκαλίας και Εξετάσεων : Ελληνικά
Το Μάθημα Προσφέρεται σε Φοιτητές Erasmus : Ναι


Μαθησιακά Αποτελέσματα :
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής/τρια θα είναι σε θέση να:
  •  Αναγνωρίζει τις εντολές της C
  •  Διακρίνει τα βασικά εξαρτήματα ενός ηλεκτρονικού υπολογιστή και τα είδη του λογισμικού
  •  Αναπτύσει πρόγραμμα υπολογιστή με χρήση της γλώσσας προγραμματισμού C
  •  Προτείνει Διαγράμματα Περιπτώσεων Χρήσης και Περιπτώσεις χρήσης Συστήματος
  •  Μεταφράζει ένα διάγραμμα ροής (ΔΡ) σε κώδικα της γλώσσας προγραμματισμού C
  •  Χρησιμοποιεί απλούς τύπους δεδομένων και πίνακες για να αποθηκεύσει δεδομένα προς επεξεργασία
  •  Δημιουργεί διαγράμματα ροής (ΔΡ)

Περιεχόμενο μαθήματος :
Εισαγωγή στους Η/Υ, εξέλιξη των υπολογιστών (υλικό και λογισμικό Η/Υ, μνήμες, περιφερειακά), δομή και λειτουργία του Η/Υ, αρχιτεκτονική, λειτουργικά συστήματα και περιβάλλοντα εργασίας. Ενσωματωμένο Περιβάλλον Ανάπτυξης προγράμματος (IDE). Σταθερές, μεταβλητές, τύποι δεδομένων (int, float, char). Εντολή απόδοσης τιμής. Εντολές εισόδου / εξόδου. Εντολές ελέγχου (if, φωλιασμένα if, switch). Επαναληπτικές δομές (while, do, for). Δομημένοι τύποι (πίνακες, αλφαριθμητικά). Πρότυπη είσοδος και έξοδος. Συναρτήσεις, παράμετροι εισόδου εξόδου. Εκμάθηση της γλώσσας προγραμματισμού C μέχρι επιπέδου χειρισμού πινάκων. Μεθοδολογία ανάπτυξης λογισμικού, φάσεις ανάπτυξης, διαγράμματα ροής, περιπτώσεις χρήσης.

Εργαστήρια: Εξάσκηση στον προγραμματισμό σε γλώσσα C και εκπόνηση εργασιών με χρήση του Code::Blocks IDE.

Γενικές Ικανότητες που ενισχύει το μάθημα :
  •  Αυτόνομη εργασία
  •  Προφορική επικοινωνία
  •  Διαχείριση Χρόνου
  •  Χρήση Υπολογιστή
  •  Επίλυση προβλημάτων

Χρήση Τ.Π.Ε. στη Διδασκαλία, στην Εργαστηριακή Εκπαίδευση, στην Επικοινωνία με τους φοιτητές :
Στη Διδασκαλία: Διαφάνεις με κίνηση powerpoint
Στην Εργαστηριακή Εκπαίδευση: Ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) Code::blocks. Προσοχή, οι χρήστες λειτουργικού Windows πρέπει να κατεβάσουν την έκδοση με τον compiler mingw.
Στην Επικοινωνία με τους φοιτητές: Πλατφόρμα ασύγχρονης τηλεκπαίδευσης E-Class. Εγγραφείτε εδώ.
Email.

Οργάνωση διδασκαλίας (δραστηριότητες και χρόνος που αναμένεται να χρειαστούν οι φοιτητές για να ανταποκριθούν σε αυτές στην διάρκεια του εξαμήνου):

Δραστηριότητα Ώρες ενασχόλησης
Διαλέξεις 26 ώρες
Εργαστήρια 30 ώρες
Εκπόνηση Εργαστηριακών Ασκήσεων 16 ώρες
Αυτοτελής μελέτη 53 ώρες
Σύνολο 125 ώρες

Διδακτέα Ύλη ανά Εβδομάδα (13 εβδομάδες) :
Εβδ. 01 - Εισαγωγή. Υλικό. Τα μέρη του υπολογιστή. Αρχιτεκτονικές υπολογιστών. Λογισμικό. Γλώσσες Προγραμματισμού. Μετατροπές Συστημάτων Αρίθμησης. Επίπεδα Αφαίρεσης.
Εβδ. 02 - Εισαγωγή στη γλώσσα C. Συνάρτηση main. Πρότυπη έξοδος και η συνάρτηση printf. Μεταβλητές.
Εβδ. 03 - Πρότυπη είσοδος και η συνάρτηση scanf. Προτεραιότητα τελεστών. Σταθερές. Μετατροπές τύπων. Εντολή ελέγχου if, τελεστές σύγκρισης.
Εβδ. 04 - Οι εργασίες στον υπολογιστή. Δυαδικοί τελεστές. Εντολές – δομές επανάληψης (for, while, do-while).
Εβδ. 05 - Διεπαφή με τον χρήστη με την εντολή do-while. Τελεστής κόμμα. Εντολές break και continue. Εντολή switch. Ο τριαδικός τελεστής.
Εβδ. 06 - Συναρτήσεις, δήλωση, υλοποίηση και κλήση. Μαθηματικές συναρτήσεις της C. Κλήση με τιμή και αναφορά. Πίνακες-Διατάξεις.
Εβδ. 07 - Συναρτήσεις με ορίσματα πίνακες. Εισαγωγή στις Περιπτώσεις Χρήσης (Use Cases)
Εβδ. 08 - Περισσότερα για τις Περιπτώσεις Χρήσης (Use Cases). Εισαγωγή στα αλφαριθμητικά. Λεξικό Δεδομένων. Δομές Δεδομένων.
Εβδ. 09 - Περισσότερα για τα αλφαριθμητικά. Πίνακας ASCII. Συναρτήσεις puts, strlen, strcat, strcpy, strcmp. Αρχεία.
Εβδ. 10 - Περισσότερες συναρτήσεις για αλφαριθμητικά, getch, sprintf, snprintf, atoi. Οι φάσεις ανάπτυξης λογισμικού.
Εβδ. 11 - Διαγράμματα Ροής. Μετατροπή ΔΡ σε κώδικα C. Μοντελοποίηση δεδομένων σε πίνακες.
Εβδ. 12 - Περισσότερα για τη μετατροπή ΔΡ σε C. Ανάπτυξη και Λειτουργία προγραμμάτων. DevOps.
Εβδ. 13 - Παράδειγμα με τις getch και getche. Επανάληψη στην ύλη.

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

Εβδ. 3 - Εισαγωγικές έννοιες, περιβάλλον εργασίας (Ενσωματωμένο Περιβάλλον Ανάπτυξης Code::Blocks), παράδειγμα δομής προγράμματος σε C, Εκτέλεση προγράμματος.
Εβδ. 4 - Μεταβλητές, σταθερές και παραστάσεις. Είσοδος/έξοδος
δεδομένων, αριθμητικοί τελεστές (πράξεις).
Εβδ. 5 - Έλεγχος προγράμματος, τελεστές σύγκρισης, λογικοί τελεστές
Εβδ. 6 - Δομές επανάληψης
Εβδ. 7 - Συναρτήσεις (functions)
Εβδ. 8 - Διανύσματα (arrays)
Εβδ. 9 - Αλφαριθμητικά (strings)
Εβδ. 10 - Πίνακες 2 διαστάσεων
Εβδ. 11 - Εξετάσεις εργαστηρίου

Αλλα Σχόλια για την Οργάνωση της Διδασκαλίας :
Στο εργαστήριο παραδίδονται εργασίες/προγράμματα (μία ανά δύο εργαστήρια).
Οι φοιτητές εξηγούν την λύση που προτείνουν στο πρόβλημα προφορικά.

Ανοικτό μάθημα: Το μάθημα προσφέρεται και από τα ανοικτά μαθήματα (open courses) των Ελληνικών Πανεπιστημίων και μπορεί να το παρακολουθήσει οποιοσδήποτε. Ακολουθήστε τον παρακάτω σύνδεσμο: http://dpem.courses.tuc.gr/?course_id=263

Αθροιστική/Συμπερασματική (για βαθμό φοιτητή) Αξιολόγηση :

Γραπτή Τελική Εξέταση 70% (Ερωτήσεις πολλαπλής επιλογής / Αντιστοίχηση)
(Ερωτήσεις σύντομης απάντησης)
(Ερωτήσεις επίλυσης προβλημάτων)
Ασκήσεις Εργαστηρίου 30%(Προφορική Εξέταση)
(Διόρθωση Παραδομένης Εργασίας)

Σχόλια για την Αξιολόγηση των Φοιτητών :
Είναι υποχρεωτική η παράδοση εργαστηριακών ασκήσεων με χρήση υπολογιστή στις οποίες ο φοιτητής:
i. αναπτύσσει και παρουσιάζει πρόγραμμα C χρησιμοποιώντας το Code::Blocks IDE
ii. αναλαμβάνει ένα project ανάπτυξης λογισμικού στη C, με συγκεκριμένο χρόνο παράδοσης, παραδίδει και παρουσιάζει τον κώδικα προφορικά

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

Αυτοαξιολόγηση (προαιρετική) με ασκήσεις στο eclass.

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

Σταμέλος Ιωάννης και Κολοφωτιάς Βάιος (2013). Αντικειμενοστρεφής Ανάλυση: Περιπτώσεις Χρήσης. Σημειώσεις, Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Τσελίκης Γ. Σ., Τσελίκας Ν. Δ. (2016) C: Από τη Θεωρία στην Εφαρμογή, 3η έκδοση,

Υπουργείο Παιδείας και Πολιτισμού (2006). Σχεδίαση Λογικών Διαγραμμάτων. Σημειώσεις Μαθήματος Πληροφορικής Δευτεροβάθμιας Εκπαίδευσης. Κύπρος

Χατζηγιαννάκης, Νίκος Μ. (2017) Η γλώσσα C σε βάθος, 5η έκδοση, Εκδόσεις Κλειδάριθμος

Boehm, B. W. (1988). A spiral model of software development and enhancement. Computer, 21(5), 61-72

Bruegge, Bernd and Dutoit, Allen H. (2009). Object-Oriented Software Engineering Using Uml, Patterns, and Java (3rd ed.). Prentice Hall Press, Upper Saddle River, NJ, USA

Carroll, John M. (Ed.) (1995). Scenario-Based Design: Envisioning Work and Technology in System Development. John Wiley & Sons, Inc., New York, NY, USA

Cois, C. A., Yankel, J., & Connell, A. (2014, October). Modern DevOps: Optimizing software development through effective system interactions. In 2014 IEEE international professional communication conference (IPCC) (pp. 1-7). IEEE

Ebert, C., Gallardo, G., Hernantes, J., & Serrano, N. (2016). DevOps. Ieee Software, 33(3), 94-100

Hoffer, Jeffrey A.; George, Joey F.; Valacich, Joseph S. (1999). Modern Systems Analysis and Design. 2nd edition, Addison Welsey

Liskov, Barbara and Guttag, John (2007), Ανάπτυξη προγραμμάτων σε Java. Κλειδάριθμος

Schildt Herbert (2000), Οδηγός της C, Εκδόσεις Γκιούρδας