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

Τύπος Μαθήματος: 
ECTS Κωδικός Μαθήματος: 
6
Ακαδημαϊκός Υπεύθυνος: 
βασιλάκης κώστας
2810-379803
Διδάσκοντες: 
βασιλάκης κώστας
2810-379803
Στόχος του μαθήματος: 
Η έμφαση του μαθήματος είναι στα εξής πεδία. Εκμάθηση διαφόρων δομών δεδομένων όπως πίνακες, στοίβες, ουρές, συνδεδεμένες λίστες, δέντρα, γράφοι και υλοποίηση τους σε γλώσσα C. Κατασκευή αλγόριθμου και χρήση δομών δεδομένων στην επίλυση ενός προβλήματος. Εκμάθηση διαφόρων αλγορίθμων όπως είναι οι αλγόριθμοι έρευνας και ταξινόμησης. Εκμάθηση σε εισαγωγικό επίπεδο των διαφόρων μοντέλων ανάπτυξης λογισμικού με έμφαση στο μοντέλο καταρράκτης (waterfall model).
Μαθησιακά Αποτελέσματα: 

Η θεωρία του Προγραμματσιμού ΙΙ συμπληρώνει, διευρύνει και εμβαθύνει τις γνώσεις του μαθήματος Προγραμματισμός  Ι σε συνάρτηση με τους στόχους μαθημάτων ειδικότητας προγραμματισμού, για την αντιμετώπιση προβλημάτων του γνωστικού και επαγγελματικού
αντικειμένου.
Ο φοιτητής ο οποίος επιτυχώς ολοκληρώνει το μάθημα θα πρέπει να έχει αποκτήσει ικανότητες:
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.
 

Τμήμα Ηλεκτρολόγων Μηχανικών Τ.Ε.
Σχολή Τεχνολογικών Εφαρμογών
Τ.Ε.Ι. Κρήτης
Τ. Θ. 1939
71004 Ηράκλειο Κρήτης

Τηλέφωνο Επικοινωνίας: (+30)2810379716
Fax: (+30)2810379825
e-mail: secretariat-ele@staff.teicrete.gr