Εισαγωγή στον Προγραμματισμό
Οι Γλώσσες Προγραμματισμού C και C++. Ανάπτυξη Προγραμμάτων με Δομημένο τρόπο. Λέξεις Κλειδιά. Προσδιοριστές. Τύποι Δεδομένων. Έλεγχος Προγράμματος. Συναρτήσεις. Μεταβλητές. Εμβέλεια και Διάρκεια Ζωής Μεταβλητών. Πίνακες. Δείκτες. Σχέση Δεικτών και Πινάκων. Αναφορές και Διευθύνσεις Μνήμης. Χαρακτήρες. Ακολουθίες Χαρακτήρων. Μορφοποίηση Εισόδου και Εξόδου Προγραμμάτων. Δομήσεις και Προσπέλαση Μελών των Δομήσεων. Ενώσεις. Απαριθμήσεις. Χειρισμοί Παραστάσεων σε Δυαδική Μορφή. Πρόσβαση σε Αρχεία. Επεξεργασία Αρχείων. Προεπεξεργασία και Μεταγλώττιση Προγραμμάτων. Προχωρημένα Θέματα Προγραμματισμού. Δομές Δεδομένων. Η C++ είναι βελτιωμένη C. Αφαιρετική Άποψη Δεδομένων. Κλάσεις. Κληρονομικότητα. Πολυμορφισμός. Υπερφόρτωση Τελεστών. Εικονικές Συναρτήσεις. Είσοδος και Έξοδος Προγραμμάτων με Ροές. Πρότυπα. Εξαιρέσεις.
Συνδιδασκαλία με Γ. Φούρλα. Χειμ. Εξάμηνο 2009 - 2010.
Πρόγραμμα: Τρίτη 12.00-15.00 Αίθ. 1 (Θεωρία),
Τρίτη 16.00-18.00, Πέμπτη 12.00-14.00, Πέμπτη 16.00-18.00,
Θεωρία Υπολογισμού
Επαγωγικές αποδείξεις και αναδροµικοί ορισµοί. Εισαγωγή µοντέλων υπολογισµού. Πρωτογενείς αναδροµικές συναρτήσεις και σχέσεις. Μερικές αναδροµικές συναρτήσεις και ελαχιστοποίηση. Μηχανική υπολογισιµότητα. Μηχανές Turing και Turing υπολογίσιµες συναρτήσεις. Θέση Church-Turing. Τα βασικά θεωρήµατα: Κανονικού τύπου, απαρίθµησης και παραµέτρων (s-m-n). Αναδροµικά απαριθµήσιµα σύνολα και ανεπίλυτα προβλήµατα. Ορισιµότητα και αριθµητική ιεραρχία. Turing αναγωγισιµότητα και βαθµοί αναποκρισιµότητας. Υπολογιστική πολυπλοκότητα. Αιτιοκρατικές και µη-αιτιοκρατικές µηχανές Turing. Οι κλάσεις P και NP. Πολυωνυµικοί µετασχηµατισµοί και NP-πληρότητα. Το θεώρηµα του Cook. NP-πλήρη προβλήµατα και αναγωγές.
Χειμ. Εξάμηνο 2009 - 2010.
Πρόγραμμα: Δευτέρα 12.00-15.00 Αίθ. 2 (θεωρία) και Τρίτη 18.00-20.00 Αίθ. 3 (ασκήσεις-συνήθως κάθε δεύτερη εβδομάδα)
Τα μαθήματα ξεκινούν στις 6-Οκτ-2009.
Ανακοινώσεις
26-Νοε-2009
Η πρόοδος στο μάθημα 'Θεωρία Υπολογισμού' θα γίνει την Τρίτη 1-Δεκεμβρίου-2009 και ώρα 18.00-20.00 στην αίθουσα 3.
Βιβλιογραφία
- "Εισαγωγή στη Θεωρία Υπολογισμού", M. Sipser, Πανεπιστημιακές Εκδόσεις Κρήτης, 2007.
- "Στοιχεία Θεωρίας Υπολογισμού", H. R. Lewis, Χ. Παπαδημητρίου, Εκδόσεις Κριτική, 2005.
- "Αυτόματα και Τυπικές Γραμματικές", Ε. Ζάχος, 2008.
- "Υπολογισιμότητα και Πολυπλοκότητα", Ε. Ζάχος, 2004.
Τα δύο πρώτα βιβλία υπάρχουν στη βιβλιοθήκη του Τμήματος.
Αντικειμενοστρεφής Προγραμματισμός
Ειδικά θέματα και τεχνικές προγραμματισμού με τη γλώσσα C. Δυναμικές μεταβλητές, κλήση με αναφορά, αναδρομή, εγγραφές. Σύνθετες δομές δεδομένων και εφαρμογές. Επεξεργασία αρχείων. Αφηρημένοι τύποι δεδομένων, στατικός και δυναμικός τρόπος υλοποίησης. Απόδοση αλγορίθμων και δομών δεδομένων. Πολυπλοκότητα. Εισαγωγή στις δομές δεδομένων. Γραμμικές λίστες: απλά και διπλά συνδεδεμένες λίστες, στοίβες, ουρές, κυκλικές λίστες, ταξινομημένες λίστες. Η γλώσσα C++. Εισαγωγή στη γλώσσα Java.
Εαρ. Εξάμηνο 2009 - 2010.
Πρόγραμμα: Τετάρτη 10.00-13.00 Αίθ. 1 (Θεωρία),
Δευτέρα 12.00-16.00, Πέμπτη 12.00-14.00, 15.00-17.00 Εργ. 1 (Εργαστήριο)
Τα μαθήματα ξεκινούν στις 10-Μαρ-2010.
Ανακοινώσεις
4-Οκτ-2010
Τελικά αποτελέσματα περιόδου Σεπτεμβρίου.
Όποιος θέλει να δει το γραπτό του παρακαλώ να έρθει στο γραφείο μου την Τετάρτη 6-Οκτ-2010 και ώρα 12.00-13.00.
13-Μαϊου-2010
Παρακαλώ κατεβάστε και μελετήστε τους κώδικες:
(απλό πρόγραμμα σε C για εισαγωγή δεδομένων σε struct και εκτύπωση)
(το ίδιο χρησιμοποιώντας κάποια χαρακτηριστικά της C++)
(το ίδιο χρησιμοποιώντας περισσότερα χαρακτηριστικά της C++)
(ένα πρόγραμμα σε C++ το οποίο μετατρέπει ακέραιους από δεκαδική σε δυαδική μορφή και τους προσθέτει)
12-Μαϊου-2010
Εδώ μπορείτε να δείτε τα θέματα της προόδου και ενδεικτικές απαντήσεις.
22-Απρ-2010
Παρακαλώ κατεβάστε τον κώδικα που δίνεται εδώ στον οποίο υλοποιούνται συνδεδεμένες λίστες και βασικές τους πράξεις. Στο κυρίως πρόγραμμα γίνεται απλή χρήση των συναρτήσεων που έχουν υλοποιηθεί. Παρακαλώ μελετήστε το για να συζητήσουμε τυχόν απορίες κατά τη διάρκεια των μαθημάτων και του εργαστηρίου.
Βιβλιογραφία
- "Η Γλώσσα Προγραμματισμού C", Brian W. Kernighan & Dennis M. Ritchie, Εκδόσεις Κλειδάριθμος, 1990.
- "C Προγραμματισμός", Deitel & Deitel, Εκδόσεις Μ. Γκιούρδας, 2001
Τα δύο παραπάνω βιβλία υπάρχουν στη βιβλιοθήκη του Τμήματος.
Compilers για τη C
Στην παρακάτω διεύθυνση μπορείτε να βρείτε πληροφορίες και να κάνετε download τον compiler της C που χρησιμοποιούμε στο εργαστήριο.


