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