Σκοπός του μαθήματος είναι να κατανοήσει ο φοιτητής ότι ο Η/Υ μπορεί να είναι ένα μέσο για την επίλυση προβλημάτων, μέσα από τη δυνατότητά του να εκτελεί πράξεις και λειτουργίες γρήγορα. Στη συνέχεια να μπορεί να αναλύσει ένα πρόβλημα σε βήματα αλγορίθμου τα οποία έπειτα θα μεταφράσει σε εντολές μιας γλώσσας προγραμματισμού. Επιπλέον, είναι η εκμάθηση μιας διαδικασιακής γλώσσας προγραμματισμού όπως η C, ώστε να τη χρησιμοποιεί σαν μέσο για την επίλυση προβλημάτων.
Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές. Ένα απλό πρόγραμμα σε C. #include, #define. Απλές πράξεις και scanf, printf. Εντολές (κωδικοί) μορφοποίησης. Αριθμητικοί, συγκριτικοί και λογικοί τελεστές, type cast.
If, switch. Εντολές επανάληψης for, while και do-while. Οι εντολές break και continue σε βρόχο επανάληψης. Εμφωλευμένες εντολές.
Πίνακες αριθμών μιας και περισσότερων διαστάσεων. Χρησιμότητα και πλεονεκτήματα. Χειρισμός με εντολές επανάληψης (for). Υπερχείλιση. Πίνακες χαρακτήρων - strings. Οι συναρτήσεις χειρισμού τους strcpy, strcat, strcmp, strlen. Το αρχείο string.h. Το NULL.
Δήλωση δείκτη. Ο τελεστής & και *. Δυναμική δέσμευση και αποδέσμευση μνήμης - πλεονεκτήματα, με τις συναρτήσεις malloc και free. Ο τελεστής sizeof.
Βιβλιοθήκες έτοιμων συναρτήσεων. Δήλωση και ορισμός συνάρτησης. Το πρωτότυπο της συνάρτησης. Επιστρεφόμενος τύπος, ο τύπος void. Η εντολή return. Ορίσματα και παράμετροι. Κλήση συνάρτησης by value και by reference.
Ορισμός δομής και δήλωση μεταβλητής τύπου δομής. Πλεονεκτήματα για τον προγραμματιστή. Δομές σαν παράμετροι συναρτήσεων. Πίνακες δομών και δείκτες. Χρησιμοποίηση δομών σε δομές δεδομένων.