Η θεωρία του Προγραμματσιμού ΙΙ συμπληρώνει, διευρύνει και εμβαθύνει τις γνώσεις του μαθήματος Προγραμματισμός Ι σε συνάρτηση με τους στόχους μαθημάτων ειδικότητας προγραμματισμού, για την αντιμετώπιση προβλημάτων του γνωστικού και επαγγελματικού
αντικειμένου.
Ο φοιτητής ο οποίος επιτυχώς ολοκληρώνει το μάθημα θα πρέπει να έχει αποκτήσει ικανότητες:
1) Να μπορεί να σχεδιάσει ένα σύστημα λογισμικού για ένα σύνθετο πρόβλημα της ειδικότητας του. αυτό το σύστημα θα φαίνονται τα τμήματα (υποπρογράμματα) από τα οποία αποτελείται καθώς και αλληλεπίδραση τους.
2) Για κάθε τμήμα υποπρόγραμμα να μπορεί να γράψει το αλγόριθμο του σε γλώσσα C .
3) Να μπορεί να χρησιμοποιήσει στην υλοποίηση του προχωρημένες δομές δεδομένων όπως πολυδιάστατοι πίνακες, εγγραφές, στοίβες, ουρές και λίστες.
4) Το πρόγραμμα που θα γράψει οφοιτητής να είναι δομημένο και αποτελεσματικό.
Το περίγραμμα ύλης το οποίο περιγράφεται παρακάτω εκπαιδεύει τους φοιτητές στην ανάπτυξη των προαναφερθέντων ικανοτήτων.
- Αλγόριθμοι. Σύγκριση αλγορίθμων. Βιβλιοθήκες υποπρογραμμάτων.
- Δομές δεδομένων: Πίνακες. Στοίβες. Ουρές. Λίστες.
- Κύκλος ζωής λογισμικού, Μοντέλα ανάπτυξης και συντήρησης λογισμικού.
- Δομημένη ανάλυση και σχεδιασμός συστημάτων λογισμικού.
- Αλγόριθμοι έρευνας και ταξινόμησης.
Σε όλα τα παραπάνω γίνονται γίνονται αναλυτικά παραδείγματα ώστε οι φοιτητέςνα κατανοήσουν τις τεχνικές που χρησιμοποιούνται.
Εργαστήριο
Το εργαστήριο του Προγραμματσιμού ΙΙ συμπληρώνει, διευρύνει και εμβαθύνει τις γνώσεις του μαθήματος Προγραμματισμός Ι σε συνάρτηση με τους στόχους μαθημάτων ειδικότητας με απαιτήσεις προγραμματισμού, για την αντιμετώπιση προβλημάτων του γνωστικού και επαγγελματικού αντικειμένου.
Βασικός σκοπός του μαθήματος είναι να αποκτήσουν οι φοιτητές την ικανοτότητα υλοποίησης σύνθετων προγραμμάτων με χρήση της γλώσσας C. Οι φοιτητές εκπαιδεύονται στην χρήση προχωρημένων τεχνικών προγραμματισμού με γλώσσα C. Τα χαρακτηριστικά της γλώσσας C τα οποία διδάσκονται στο εργαστήριο είναι τα εξής.
- Πολυδιάστατοι Πίνακες.
- Δείκτες, δυναμική διαχείριση μνήμης.
- Υποπρογράμματα (Συναρτήσεις).
- Αναδρομές.
- Εγγραφές.
- Λίστες, στοίβες, ουρές.
- Αρχεία.
Σε όλα τα παραπάνω γίνεται πρακτική εξάσκηση και εξοικείωση με παραδείγματα στο εργαστήριο αλλα και με εργασίες τις οποίες αναλαμβάνουν να υλοποιήσουν οιφοιτητές.
Θεωρία
Αλγόριθμοι: Αξιολόγηση αλγορίθμων. Βιβλιοθήκες υποπρογραμμάτων.
Δομές δεδομένων: Πίνακες. Στοιβάδες. Ουρές. Λίστες. Δέντρα. Γράφοι.
Αλγόριθμοι έρευνας και ταξινόμησης.
Ανάπτυξη λογισμικού: Μοντέλα ανάπτυξης και συντήρησης λογισμικού. Δομημένη ανάλυση και σχεδιασμός συστημάτων λογισμικού.
Εργαστήριο
σελ. -41- Μονοδιάστατοι Πίνακες. Συμβολοσειρές (strings)
Πολυδιάστατοι Πίνακες
Δείκτες: Πίνακες και Δείκτες. Δείκτες σε Πίνακες Χαρακτήρων. Πίνακες Δεικτών. Πίνακες δεικτών και Συμβολοσειρές.
Δείκτες Δεικτών.
Συναρτήσεις: Δομή ενός προγράμματος C με συναρτήσεις. Εμβέλεια Μεταβλητών (Σφαιρικές και Τοπικές μεταβλητές). Κατηγορίες Μεταβλητών με Βάση τον Τρόπο Αποθήκευσής τους. Παράμετροι Συναρτήσεων – Επιστρεφόμενη Τιμή. Κατασκευή Προτύπων Συνάρτησης. Αναδρομικές συναρτήσεις.
Τύποι Δεδομένων Οριζόμενοι από τον Προγρ/στή: Ο Τύπος της Δομής (struct) (Δείκτες σε Δομές,
- Αυτοαναφερόμενες Δομές). Ο Τύπος της Ένωσης. Η χρήση του typedef.
- Δυναμικές δομές δεδομένων: Συνδεδεμένες λίστες, στοίβες, ουρές, δέντρα. Δυναμική κατανομή μνήμης
- (malloc(), calloc(),free() )
- Αρχεία.
Συγγράμματα για την θεωρία:
«Αλγόριθμοι σε C», R. Sedgewick, εκδόσεις Κλειδάριθμος, ISBN 960-209-896-1.
«Δομές Δεδομένων – Αλγόριθμοι», M. Λουκάκη, Εκδόσεις Σοφία, 2002, ISBN 960-87438-7-7.
«Εισαγωγή στους Αλγορίθμους», Τόμος Ι, T. Cormen, C. Leiserson, R. Rivest, C. Stein, Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο 2006, ISBN 960 -524-225-7
Συγγράμματα για το εργαστήριο:
«Η Γλώσσα C σε Βάθος», Ν. Χατζηγιαννάκης, εκδόσεις Κλειδάριθμος, 2η έκδοση, ISBN 960-209-966-6.
«C: Βήμα-προς-Βήμα», M. Waite, S. Prata, μετάφραση Σ. Καμινάρης, Εκδόσεις Μ. Γκιούρδας, Αθήνα 2005, ISBN: 0-672-22651-0.
Οδηγός της C, H. Schildt, μετάφραση Ε. Γκαγκάτσιου, Εκδόσεις Μ. Γκιούρδας, ISBN: 960-512-228-6.