1 3/10/2008 (απόγευμα) - 6/10/2008 (πρωί) Διαδικαστικά θέματα. Γενικά περί υπολογιστών. Γενικά περί προγραμματισμού υπολογιστών. Ιστορική αναδρομή.
2 6/10/2008 (απόγευμα) Κάποια υπολογιστικά προβλήματα. Συζήτηση επάνω στο πρόβλημα της έκδοσης των αποτελεσμάτων των πανελληνίων εξετάσεων για εισαγωγή σε ΑΕΙ και ΤΕΙ. Εκπλήρωση υποχρεώσεων λήψης πτυχίου από φοιτητές του Τμήματος, υπολογισμός φόρου, έκδοση λογαριασμών Ο.Τ.Ε. και Δ.Ε.Η., υπολογισμός αριθμού βουλευτών που εκλέγουν τα κόμματα στις εθνικές εκλογές, πρόβλεψη αποτελεσμάτων εθνικών εκλογών με βάση δημοσκοπήσεις εξόδου, πρόγνωση καιρού, κρατήσεις αεροπορικών εισιτηρίων, αυτόματη κατασκευή ωρολογίων προγραμμάτων, αυτόματη εξαγωγή προγράμματος εξετάσεων.
3 10/10/2008 (πρωί-απόγευμα) Πώς μαθαίνεται ο προγραμματισμός. Η δομή του υπολογιστή. Η πληροφορία στον υπολογιστή. Συστήματα αρίθμησης (δεκαδικό, δυαδικό, οκταδικό, δεκαεξαδικό) και μετατροπές αριθμών μεταξύ αυτών. Συζήτηση για αλγόριθμο που ελέγχει αν ένας ακέραιος αριθμός είναι πρώτος.
4 13/10/2008 (πρωί-απόγευμα) Συνέχεια της συζήτησης για αλγόριθμο που ελέγχει αν ένας ακέραιος αριθμός είναι πρώτος. Λογισμικό και γλώσσες προγραμματισμού. Τι χρειαζόμαστε από μία γλώσσα προγραμματισμού. Πώς κατασκευάζουμε εκτελέσιμο πρόγραμμα. Η διαδικασία της μεταγλώττισης και σύνδεσης. Προγραμματιστικά περιβάλλοντα για την C. Συζήτηση για αλγόριθμο αντιστροφής των ψηφίων δεδομένου αριθμού.
5 17/10/2008 (πρωί-απόγευμα) Πραδείγματα χρήσης του gcc. Το πρώτο πρόγραμμα στην C (helloworld.c). Συζήτηση για αλγόριθμο εύρεσης αν οι μόνοι πρώτοι παράγοντες ενός αριθμού είναι το 2, το 3 ή το 5.
6 20/10/2008 (πρωί-απόγευμα) Πρόγραμμα υπολογισμού του π (picomp.c). Πρόβλημα εύρεσης αριθμού σε δεδομένο διάστημα με το μέγιστο πλήθος διαιρετών.
7 24/10/2008 (πρωί-απόγευμα) Παρουσίαση από την κοινότητα ΕΛΛΑΚ του Πανεπιστημίου Αθηνών. Συνέχεια με το πρόγραμμα υπολογισμού του π (picomp.c). Πρώτη συζήτηση για το πρόγραμμα υπολογισμού της ημερομηνίας του Πάσχα (easter.c).
8 27/10/2008 (πρωί) Συνέχεια της συζήτησης για το πρόγραμμα υπολογισμού της ημερομηνίας του Πάσχα (easter.c). Αλγόριθμος κατασκευής μαγικών τετραγώνων περιττής τάξης. Πρώτη συζήτηση για το πρόγραμμα κατασκευής μαγικού τετραγώνου 5x5 (magic.c). Παρουσίαση της πλατφόρμας MSDNAA της Microsoft, για την δωρεάν λήψη λογισμικού της εταιρείας από φοιτητές του Τμήματος, του διαγωνισμού Imagine Cup και της φοιτητικής κοινότητας StudentGuru.
9 31/10/2008 (πρωί-απόγευμα) Συνέχεια της συζήτησης για το πρόγραμμα κατασκευής μαγικού τετραγώνου 5x5 (magic.c). Εισαγωγή στις συναρτήσεις getchar και putchar.
10 3/11/2008 (πρωί-απόγευμα) Πρόγραμμα μετατροπής πεζών χαρακτήρων στην είσοδο σε κεφαλαίους (capitalize.c). Μεταβλητές και τύποι δεδομένων στην C.
11 7/11/2008 (πρωί) Μεταβλητές, σταθερές, τύποι δεδομένων και δηλώσεις στην C. Συμβολοσειρές. Προσδιοριστές unsigned και const. Εντολές αντικατάστασης, τελεστές και παραστάσεις. Αριθμητικοί τελεστές. Μετατροπές τύπων. Μοναδιαίοι τελεστές αύξησης και μείωσης. Τελεστές σύγκρισης και λογικοί τελεστές. Συνθήκες ως παραστάσεις και αντίστροφα.
12 10/11/2008 (πρωί-απόγευμα) Τελεστές πράξεων με bit. Τελεστές αντικατάστασης. Παραστάσεις υπό συνθήκη. Προτεραιότητες τελεστών. Εντολές αντικατάστασης σαν παραστάσεις. Πρόγραμμα υπολογισμού Μ.Κ.Δ. και Ε.Κ.Π. (gcdlcm.c).
13 14/11/2008 (πρωί-απόγευμα) Ροή ελέγχου στην C. Εντολή if. Εντολή switch. Εντολές βρόχου while. Εντολή βρόχου for. Εντολές break και continue. Εντολή goto και ετικέτες. Δομή προγραμμάτων C. Συναρτήσεις. Ορισμός συναρτήσεων. Τυπικές παράμετροι.
17/11/2008 Επέτειος Πολυτεχνείου. Δεν έγινε μάθημα.
14 21/11/2008 (πρωί) Συνέχεια περί συναρτήσεων. Επιστρεφόμενες τιμές. Πρωτότυπο συνάρτησης. Πρόγραμμα ύψωσης σε δύναμη (powers.c). Πρόγραμμα υπολογισμού παραγοντικού (factorial.c). Εμβέλεια και χρόνος ζωής μεταβλητών. Αυτόματες μεταβλητές. Εξωτερικές μεταβλητές. Προσδιοριστής extern.
15 21/11/2008 (απόγευμα) Προσδιοριστής static. Αρχικές τιμές μεταβλητών. Μεταβλητές σε εσωτερικά μπλοκ. Καθολικός χώρος και στοίβα για φύλαξη εξωτερικών και αυτόματων μεταβλητών, αντίστοιχα. Αναδρομικές συναρτήσεις. Πρόγραμμα υπολογισμού παραγοντικού με αναδρομή (recfact.c). Πρόγραμμα μετατροπής μεταξύ δεκαδικών και δυαδικών αριθμών (convdecbin.c). Υπολογισμός όρων της ακολουθίας Fibonacci αναδρομικά και επαναληπτικά. Περί αρχείων επικεφαλίδας.
16 24/11/2008 (πρωί) Δείκτες. Τελεστές έμμεσης αναφοράς και διεύθυνσης μνήμης. Κλήσεις συναρτήσεων με δείκτες στα ορίσματα.
17 24/11/2008 (απόγευμα) Περί ανάγνωσης ακεραίων (και όχι μόνο). Συνάρτηση scanf. Πίνακες. Διάσταση πινάκων. Σχέση πινάκων και δεικτών. Πέρασμα πινάκων σαν ορίσματα σε συναρτήσεις. Πρόγραμμα κατασκευής ιστογράμματος συχνοτήτων γραμμάτων στην είσοδο (histogram.c).
18 28/11/2008 (πρωί-απόγευμα) Δυναμική δέσμευση μνήμης. Συνάρτηση malloc. Συνάρτηση free. Τελεστής sizeof. Πίνακες με παραμετρική διάσταση. Συμβολοσειρές. Συναρτήσεις strlen, strcpy, strcmp και strcat για συμβολοσειρές. Υλοποιήσεις των strcpy και strcmp. Υλοποιήσεις των συναρτήσεων strlen και strcat.
19 1/12/2008 (πρωί-απόγευμα) Πίνακες δεικτών και δείκτες σε δείκτες. Ορίσματα γραμμής εντολών. Πολυδιάστατοι πίνακες. Δυναμική δέσμευση και αποδέσμευση διδιάστατων πινάκων. Αρχικοποίηση πινάκων. Δείκτες σε συναρτήσεις.
20 5/12/2008 (πρωί) Πρόγραμμα διαχείρισης ορισμάτων στη γραμμή εντολής (cmdlineargs.c). Πρόγραμμα πρόσθεσης πολυψήφιων αριθμών (addnumbs.c). Απαριθμήσεις.
21 5/12/2008 (απόγευμα) Δομές. Δηλώσεις δομών και μεταβλητών τύπου δομών. Επιτρεπτές λειτουργίες με δομές. Τελεστές . και ->. Παραδείγματα χρήσης δομών και δεικτών σε δομές. Πρόγραμμα εύρεσης τριγώνων μεγίστου και ελαχίστου εμβαδού (triangles.c).
8/12/2008 (πρωί-απόγευμα) Αναστολή λειτουργίας του Πανεπιστημίου από τις Πρυτανικές αρχές. Δεν έγινε μάθημα.
12/12/2008 (πρωί-απόγευμα) Κατάληψη φοιτητών. Δεν έγινε μάθημα.
22 15/12/2008 (πρωί) Είσοδος και έξοδος. Πρότυπη βιβλιοθήκη εισόδου/εξόδου της C. Προκαθορισμένα ρεύματα (stdin, stdout και stderr). Ανακατεύθυνση πρότυπης εισόδου και πρότυπης εξόδου. Σωληνώσεις. Συναρτήσεις getchar, putchar και puts (σχόλιο για την gets). Σύντομη αναφορά στις συναρτήσεις printf και scanf. Συναρτήσεις fopen, fclose, fgets, feof, getc, putc, ungetc, fprintf, fscanf, sprintf, sscanf, fread, fwrite, fseek και ftell.
15/12/2008 (απόγευμα) Κατάληψη φοιτητών. Δεν έγινε μάθημα.
19/12/2008 (πρωί-απόγευμα) Κατάληψη φοιτητών. Δεν έγινε μάθημα.
9/1/2009 (πρωί-απόγευμα) Κατάληψη φοιτητών. Δεν έγινε μάθημα.
12/1/2009 (πρωί-απόγευμα) Κατάληψη φοιτητών. Δεν έγινε μάθημα.
23 16/1/2009 (πρωί) Αυτο-αναφορικές δομές. Συνδεδεμένες λίστες. Δυαδικά δέντρα. Ταξινομημένα δυαδικά δέντρα. Δημιουργία νέων ονομάτων τύπων (εντολή typedef). Ενώσεις και πεδία bit.
24 16/1/2009 (απόγευμα) Πρόγραμμα διαχείρισης συνδεδεμένων λιστών (listmanagement.c). Πρόγραμμα διαχείρισης δυαδικών δέντρων (treemanagement.c).
25 19/1/2009 (πρωί) Ο προεπεξεργαστής της C. Οδηγία #include. Οδηγία #define και μακροεντολές. Μεταγλώττιση υπό συνθήκη. Οδηγίες #if, #else, #elif, #endif, #ifdef και #ifndef. Επιθυμητά χαρακτηριστικά ενός προγράμματος C. Συχνά προγραμματιστικά λάθη στην C.
26 19/1/2009 (απόγευμα) Σύντομη ανασκόπηση της πρότυπης βιβλιοθήκης εισόδου/εξόδου. Συναρτήσεις printf, scanf, fflush και perror. Πρόγραμμα αντιγραφής αρχείων (filecopy.c). Πρόγραμμα εκτύπωσης γραμμών εισόδου με αντίστροφη σειρά (revinput.c).
27 23/1/2009 (πρωί) Ταξινόμηση πινάκων. Γενικά περί πολυπλοκότητας αλγορίθμων. Μέθοδοι ταξινόμησης πινάκων. Η μέθοδος της φυσαλίδας. Η μέθοδος της επιλογής. Η μέθοδος της εισαγωγής. Η γρήγορη μέθοδος. Αναφορά στις μεθόδους ταξινόμησης της συγχώνευσης, του σωρού και του Shell. Πρόγραμμα επίδειξης μεθόδων ταξινόμησης (sorting.c). Αναζήτηση σε πίνακες. Σειριακή αναζήτηση και δυαδική αναζήτηση. Πρόγραμμα επίδειξης μεθόδων αναζήτησης σε πίνακες (searching.c).
28 26/1/2009 (απόγευμα) Συζήτηση προηγούμενων θεμάτων εξετάσεων.
29 6/2/2009 (πρωί) Γενική συζήτηση για το μάθημα, ανασκόπηση της ύλης και διευκρινήσεις για τις απαιτήσεις των εξετάσεων.