Χαροκόπειο Πανεπιστήμιο
Σχολή: Ψηφιακής Τεχνολογίας
Τμήμα: Πληροφορικής και Τηλεματικής
Πρόγραμμα: Information Technology

Προχωρημένος Προγραμματισμός

Εξάμηνο: 4 ECTS: 8.0 Υποχρεωτικό Erasmus

Γενικά

Κωδικός: BSC_IT17

Γλώσσα: Αγγλικά

Τρόπος διδασκαλίας: Δια ζώσης

Προαπαιτούμενα: - Εισαγωγή στην Πληροφορική
- Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό

Φόρτος εργασίας

  • Διαλέξεις: 39.0 ώρες
  • Εργαστήριο: 13.0 ώρες
  • Μελέτη: 78.0 ώρες
  • Εργασία: 70.0 ώρες

Περιεχόμενο Μαθήματος

Συλλογές και Βασικές Δομές Δεδομένων
- Γραμμικές δομές: Λίστες, Ουρές, Στοίβες.
- Υλοποίηση δομών δεδομένων με χρήση generics.

Προχωρημένος Αντικειμενοστρεφής Προγραμματισμός
- Δέντρα (in-order, pre-order, post-order διάσχιση)
- Γράφοι: διασχίσεις (BFS, DFS).
- Σχεδιαστικά πρότυπα: δημιουργικά και συμπεριφορικά.
- Έλεγχος αντικειμένων με mocks.

Συναρτησιακός Προγραμματισμός
- Συναρτήσεις: συναρτήσεις ως τιμές, συναρτήσεις ανώτερης τάξης
- Οι τελεστές map(), filter() και reduce()
- Oκνηρή αποτίμηση: επαναλήπτες και γεννήτορες.
- Έλεγχος βασισμένος σε ιδιότητες (property-based testing)

Ταυτόχρονος και Ασύγχρονος Προγραμματισμός
- Προγραμματισμός οδηγούμενος από συμβάντα: observers, event listeners, callbacks, publisher/subscriber.
- Futures και promises
- Async/await, Async IO.

Μαθησιακά Αποτελέσματα

- Υλοποιεί και χειρίζεται δομές δεδομένων.
- Εφαρμόζει δημιουργικά και συμπεριφορικά πρότυπα σχεδίασης για την παραγωγή ευέλικτου και συντηρήσιμου αντικειμενοστραφούς κώδικα.
- Αντιμετωπίζει τις συναρτήσεις ως τιμές πρώτης κλάσης και συνθέτει συναρτήσεις ανώτερης τάξης για την ανάπτυξη εκφραστικής και επαναχρησιμοποιήσιμης λογικής.
- Γράφει ελέγχους μονάδας με χρήση mocks και εφαρμόζει ελέγχους βασισμένους σε ιδιότητες για την απομόνωση και επαλήθευση της συμπεριφοράς του προγράμματος.
- Σχεδιάζει συστήματα βασισμένα σε γεγονότα. Γράφει ασύγχρονο κώδικα χωρίς αποκλεισμούς και ασύγχρονο I/O για την ανάπτυξη αποκρισίμων και αποδοτικών προγραμμάτων.

Δεξιότητες

Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
Προσαρμογή σε νέες καταστάσεις
Αυτόνομη εργασία
Ομαδική εργασία
Εργασία σε διεθνές περιβάλλον
Άσκηση κριτικής και αυτοκριτικής
Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης