Skip to content

Εργαστηριακό τμήμα μαθήματος

Στο εργαστήριο του μαθήματος οι γλώσσες προγραμματισμού που εξετάζονται είναι η Python, η Haskell και η Prolog, ως εκπρόσωποι του προστακτικού, του συναρτησιακού και του λογικού προγραμματισμού αντίστοιχα.

Προστακτικός προγραμματισμός (Python)

Εργαστήριο Περιγραφή
Εργαστήριο 1 συγγραφή και εκτέλεση απλών προγραμμάτων σε Python, ranges, δομή επανάληψης, δομή επιλογής, βασικές δομές δεδομένων (lists, tuples, dictionaries, sets), λεκτικά (μήκος λεκτικού, αντιστροφή λεκτικού, λήψη τμήματος λεκτικού με slice), αμυντικός προγραμματισμός, import και χρήση βιβλιοθηκών, ChatGPT prompts για παραγωγή κώδικα Python, χρήση του REPL (Read Evaluate Print Loop) της Python.
Εργαστήριο 2 συγγραφή συναρτήσεων, unit tests με τη στάνταρντ βιβλιοθήκη unittest, comprehensions, virtual environments (venv), εξωτερικές βιβλιοθήκες και εγκατάσταση με το pip, unit tests με το pytest.
Εργαστήριο 3 αρχεία κειμένου, κανονικές εκφράσεις (regular expressions), αρχεία XML, μορφοποίηση κώδικα (π.χ. με το black), διάταξη imports με το isort, docstrings.
Εργαστήριο 4 αντικειμενοστραφής προγραμματισμός με την Python, οι μέθοδοι __init__, __str__, __repr__, υπερφόρτωση τελεστών, κληρονομικότητα, εξαιρέσεις, ορίσματα γραμμής εντολών με το sys.argv και με το argparse, logging.
Εργαστήριο 5 γραφικά περιβάλλοντα διεπαφής με το tkinter, APIs, matplotlib, MVC (Model View Controller)

Συναρτησιακός προγραμματισμός (Haskell)

Εργαστήριο Περιγραφή
Εργαστήριο 1 Εγκατάσταση Haskell με το GHCup, toolchain (ghc, ghci, cabal), μη μεταλλαξιμότητα (immutability), συναρτήσεις, τύποι, αναδρομή, προσδέσεις let (let bindings), προσδέσεις where (where bindings), φρουροί (guards), ταίριασμα προτύπων (pattern matching), λίστες, περιφραστικές λίστες (comprehensions), υλοποίηση της quicksort
Εργαστήριο 2 Λάμδα συναρτήσεις (lambda functions), συναρτήσεις ανώτερης τάξης (higher order functions), οκνηρή αποτίμηση (lazy evaluation), άπειρες λίστες (infinite lists), μερική αποτίμηση (partial evaluation)
Εργαστήριο 3 Unit tests με το HUnit, παραδείγματα

Λογικός προγραμματισμός (Prolog) και CP (Constraint Programming)

Εργαστήριο Περιγραφή
Εργαστήριο 1 Prolog: γεγονότα, κανόνες, ερωτήματα, ενοποίηση, αναζήτηση απόδειξης, αναδρομή, λίστες, αριθμητική με την Prolog:
Εργαστήριο 2 Prolog: λίστες, αποκοπή και άρνηση (cut and negation), λογικός προγραμματισμός με περιορισμούς (CLP=Constraint Logic Programming)
Εργαστήριο 3 Prolog: unit tests

Εργαστηριακές ασκήσεις 2024-2025


Εργασίες προηγούμενων ετών

Εργαστηριακές ασκήσεις 2023-2024