Τίτλος Μαθήματος: Προχωρημένος Προγραμματισμός σε C
Διδακτικές Ώρες: 39
Πιστωτικές Μονάδες (ECTS): 7,5
Εξάμηνο: 2ο
Διδάσκων/ουσα:
Στόχοι Μαθήματος
Το μάθημα αποσκοπεί στην εις βάθος κατανόηση της γλώσσας προγραμματισμού C και την εφαρμογή της στην επίλυση προβλημάτων ποικίλων εφαρμογών. Οι φοιτητές διδάσκονται πώς να διασυνδέουν λογισμικό με το hardware των συστημάτων, να διαχειρίζονται αποδοτικά τη διαθέσιμη μνήμη, καθώς και να αναπτύσσουν εφαρμογές πολυνηματικού προγραμματισμού με χρήση νημάτων (threads).
Επιπλέον, με την ολοκλήρωση του μαθήματος, οι φοιτητές/ τρεις θα έχουν:
- Αναπτύξει δημιουργική και αναλυτική σκέψη.
- Την ικανότητα να αναλύουν προβλήματα και να σχεδιάζουν λύσεις αξιοποιώντας τις δυνατότητες της γλώσσας.
- Την ικανότητα να κατανοούν περίπλοκα προγράμματα.
- Την ικανότητα να εκτιμούν τον χρόνο εκτέλεσης προγραμμάτων και να προσαρμόζουν κατάλληλα τους αλγορίθμους τους.
Ενδεικτική Ύλη
1. Ο Προεπεξεργαστής της C, μακροεντολές, μεταγλώττιση υπό συνθήκη (Οδηγίες, π.χ. define, ifdef κλπ)
2. Ειδικοί τελεστές και τύποι (τελεστής κόμμα, τελεστές bit)
3. Δείκτες και συναρτήσεις
- Εισαγωγικά.
- Δείκτες και πίνακες πολλών διαστάσεων.
- Πίνακες δεικτών.
- Δείκτες σε δείκτες.
- Δείκτες σε συναρτήσεις.
- Συναρτήσεις με μεταβλητό αριθμό ορισμάτων.
- Αναδρομή.
4. Δομές
- Πίνακες δομών.
- Δείκτες και δομές.
- Πεδία συγκεκριμένου εύρους bits.
5. Δυναμική διαχείριση μνήμης.
- Συναρτήσεις malloc, calloc, realloc και free.
- Δημιουργία δυναμικών πινάκων.
6. Δομές δεδομένων
- Συνδεδεμένες λίστες (απλές, διπλές, κυκλικές κλπ).
- Δέντρα (δυαδικά, νηματικά, ψηφιακά, trie).
- Γράφοι (πίνακες και λίστες γειτονικών κορυφών).
- Κατακερματισμός.
7. Ειδικά θέματα μεταγλώττισης
- Παράμετροι γραμμής εντολών.
- Χειρισμός λαθών.
- Προγράμματα με πολλά αρχεία.
8. Είσοδος – έξοδος
- Ροές στην C.
9. Αρχεία.
- Αρχεία κειμένου.
- Δυαδικά αρχεία.
- Τυχαία προσπέλαση αρχείων.
10. Βιβλιοθήκες της C.
- string.h, time.h, stdlib.h κλπ.
11. Πολυνηματικός προγραμματισμός
- Δημιουργία νημάτων.
- Χρήση νημάτων.
- Σήματα
