Υλικό εργαστηρίων για το μάθημα Εισαγωγή στον Προγραμματισμό (Κ08) του Τμήματος Πληροφορικής και Τηλεπικοινωνιών του ΕΚΠΑ.
Τα έντεκα εργαστήρια ξεκινούν από το πρώτο άνοιγμα ενός τερματικού και φτάνουν μέχρι τις αυτοαναφορικές δομές και τη διαχείριση αρχείων στη γλώσσα C. Κάθε εργαστήριο ξεκινά με τους στόχους του, με όσα χρειάζεται να ξέρετε από πριν, και με τα αρχεία που θα φτιάξετε.
Στα τρία πρώτα εργαστήρια στήνουμε τα εργαλεία: λογαριασμό, γραμμή εντολών, git και μεταγλωττιστή. Από το #3 και μετά γράφουμε C.
| Μέρος | # | Εργαστήριο | Θέματα |
|---|---|---|---|
| Α: Εργαλεία | 0 | Καλημέρα Κόσμε! Εισαγωγή και Χρήσιμες Εφαρμογές | webmail, Piazza, λογαριασμός Linux, ssh, shell, editors, Hello World |
| 1 | Unix και Git | εντολές Unix, δικαιώματα, ανακατεύθυνση, σωληνώσεις, git, GitHub | |
| 2 | Προγραμματιστικά Περιβάλλοντα (Editors / IDEs) | VS Code, scp / WinSCP, μεταγλώττιση, scanf |
|
| Β: Θεμέλια της C | 3 | Μεταβλητές, Δομές Ελέγχου και Επανάληψης | τύποι, while / for / do…while, if…else, σειρές |
| 4 | Είσοδος και Έξοδος Χαρακτήρων | getchar, putchar, ASCII, κωδικοποίηση |
|
| 5 | Συναρτήσεις και Αναδρομή | συναρτήσεις, αναδρομή, Collatz, Fibonacci | |
| Γ: Μνήμη και δομές | 6 | Δείκτες και Πίνακες | δείκτες, αριθμητική δεικτών, πίνακες, κόσκινο Ερατοσθένη |
| 7 | Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης | 2Δ πίνακες, malloc / free |
|
| 8 | Συμβολοσειρές και Ορίσματα Γραμμής Εντολών | string.h, argc / argv |
|
| 9 | Δομές και Αυτοαναφορικές Δομές | struct, συνδεδεμένες λίστες, δυαδικά δένδρα |
|
| 10 | Είσοδος και Έξοδος με Αρχεία | ρεύματα, αρχεία κειμένου και δυαδικά, πολλαπλά αρχεία και make |
Η αρίθμηση δεν αποτυπώνει τις εξαρτήσεις. Το #5 πατάει στο #3, το #8 στο #6 και στο #7, το #9 στο #7. Αν χάσετε ένα εργαστήριο ή θέλετε να αλλάξετε τη σειρά, δείτε πρώτα τι πρέπει να έχει προηγηθεί:
graph LR
L0["#0 Εργαλεία"] --> L1["#1 Unix / Git"] --> L2["#2 Μεταγλώττιση"]
L2 --> L3["#3 Δομές ελέγχου"]
L3 --> L4["#4 Χαρακτήρες"]
L3 --> L5["#5 Συναρτήσεις"]
L5 --> L6["#6 Δείκτες"]
L6 --> L7["#7 Δυναμική μνήμη"]
L6 --> L8["#8 Συμβολοσειρές"]
L7 --> L8
L7 --> L9["#9 Δομές"]
L9 --> L10["#10 Αρχεία"]
Πέντε εργαστήρια κλείνουν με παράρτημα αποσφαλμάτωσης. Το καθένα προϋποθέτει το προηγούμενο και προσθέτει ένα νέο είδος σφάλματος ή ένα νέο εργαλείο:
| Πράξη | Εργαστήριο | Θέμα |
|---|---|---|
| 1η | #2 | συντακτικά λάθη |
| 2η | #3 | λογικά λάθη και ιχνηλάτηση με printf |
| 3η | #7 | σφάλματα μνήμης και ο debugger gdb |
| 4η | #8 | αποσφαλμάτωση σε συμβολοσειρές και πίνακες |
| 5η | #9 | διαρροές μνήμης και valgrind |
Το #10 κλείνει με παράρτημα άλλου είδους: οργάνωση προγράμματος σε
πολλαπλά αρχεία και αυτοματοποίηση με make.
Κάθε εργαστήριο διατίθεται και σε PDF. Το ενιαίο all.pdf τα περιέχει όλα, με
εξώφυλλο, ενιαία περιεχόμενα και τα τρία μέρη ως χωριστές ενότητες.
⬇ Κατεβάστε την τελευταία έκδοση
Δεχόμαστε με χαρά διορθώσεις και προσθήκες. Στο CONTRIBUTING.md θα βρείτε πώς χτίζονται τα PDF, ποιες συμβάσεις ακολουθεί το υλικό και πώς να στείλετε μια αλλαγή.
MIT · © University of Athens

