Προγραμματισμός πλήρους στοίβας στον Παγκόσμιο Ιστό

Course ID
ΠΜΣΕ2
Κατεύθυνση
1η, 2η, 3η
Εξάμηνο
Χειμερινό
Τύπος
Επιλογής 1ης κατεύθ., Επιλογής 2ης κατεύθ., Επιλογής 3ης κατεύθ.

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

Στόχος του μαθήματος είναι να παρέχει στους μεταπτυχιακούς φοιτητές τις βάσεις και την
πρακτική εμπειρία για τη σχεδίαση και ανάπτυξη εφαρμογών στον Παγκόσμιο Ιστό. Η εστίαση
είναι τόσο στις τεχνολογίες ανάπτυξης στην πλευρά του εξυπηρετητή όσο και στην πλευρά του
πελάτη, καλύπτοντας όλο το φάσμα των τεχνολογιών, πρωτοκόλλων, μοτίβων και συστημάτων
που μεσολαβούν. Με το πέρας του μαθήματος, οι φοιτητές αναμένεται να είναι σε θέση να –
κατανοήσουν με ελάχιστο κόπο οποιαδήποτε τεχνολογία, σχεδιαστικό μοτίβο, πρωτόκολλο,
εργαλείο, γλώσσα προγραμματισμού ή εφαρμογή στο Web – σχεδιάζουν εφαρμογές με βάση το
πλαίσιο MVC ή παρόμοια – υλοποιήσουν δυναμικές εφαρμογές χρησιμοποιώντας Javascript και
NodeJS

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

Το μάθημα επενδύει ιδιαίτερα στο κομμάτι της πρακτικής εξάσκησης, δίνοντας έμφαση στην
υλοποίηση ασκήσεων και παραδειγμάτων από κοινού με το διδακτικό προσωπικό στο
εργαστήριο. Μία ολοκληρωμένη εφαρμογή στον Παγκόσμιο Ιστό ζητείται ως εργασία ενώ η
εξέταση βασίζεται σε πρακτικά θέματα κατανόησης και όχι σε απομνημόνευση. Οι βασικές
ενότητες στις οποίες δομείται το περιεχόμενο του μαθήματος είναι οι ακόλουθες:
– Ενότητα 1: Βασικές έννοιες παγκόσμιου ιστού. Το πρωτόκολλο HTTP.
– Ενότητα 2: Προγραμματισμός από την πλευρά του πελάτη. Η γλώσσα προγραμματισμού
Javascript. Προγραμματισμός με συμβάντα. Το μοντέλο αντικειμένων εγγράφου DOM.
– Ενότητα 3: Προγραμματισμός από την πλευρά του εξυπηρετητή. Μοντέλα προγραμματισμού,
REST
– Ενότητα 4: Εισαγωγή στο NodeJS
– Ενότητα 5: Γλώσσες σήμανσης
– Ενότητα 6: Υβριδικά μοντέλα προγραμματισμού. Το πλαίσιο Ajax. Αναφορά σε πλαίσια της
Javascript για το front-end όπως η JQuery, UI thread και web workers.
– Ενότητα 7: NodeJS και NPM / Python Flask. Προηγμένα θέματα: modules, callbacks,
promises, async-await, arrow functions, events, websockets
– Ενότητα 8: Web Design Patterns
– Ενότητα 9: Javascript frameworks: ReactJS
– Ενότητα 10: Javascript frameworks: AngularJS
– Ενότητα 11: Javascript frameworks: VueJS
– Ενότητα 12: Website performance considerations

ΓΕΝΙΚΕΣ ΙΚΑΝΟΤΗΤΕΣ

Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών

Προσαρμογή σε νέες καταστάσεις

Λήψη αποφάσεων

Αυτόνομη εργασία

Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης

ΔΙΔΑΚΤΙΚΕΣ ΚΑΙ ΜΑΘΗΣΙΑΚΕΣ ΜΕΘΟΔΟΙ - ΑΞΙΟΛΟΓΗΣΗ

Τρόπος Παρακολούθησης: Δια ζώσης
Χρήση Τεχνολογιων Πληροφορίας και Επικοινωνιών:eclass, estudies

Δραστηριότητα Φόρτος Εργασίας
Εξαμήνου
Παρακολούθηση διαλέξεων 14
Εργαστηριακή Άσκηση 12
Ατομικές ή Ομαδικές Εργασίες 69
Αυτοτελής μελέτη 55
Σύνολο 150

ΑΞΙΟΛΟΓΗΣΗ ΦΟΙΤΗΤΩΝ

Εργασία που περιλαμβάνει την υλοποίηση εφαρμογών και συστημάτων

ΣΥΝΙΣΤΩΜΕΝΗ ΒΙΒΛΙΟΓΡΑΦΙΑ

-Marijn Haverbeke, Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming –
Mario Casciaro and Luciano Mammino, Node.js Design Patterns: Design and implement
production-grade Node.js applications using proven patterns and techniques, 3rd Edition –
Randy Connolly and Ricardo Hoar, Fundamentals of Web Development

Haas, Andreas, Andreas Rossberg, Derek L. Schuff, Ben L. Titzer, Michael Holman, Dan
Gohman, Luke Wagner, Alon Zakai, and J. F. Bastien. “Bringing the web up to speed with
WebAssembly.” In Proceedings of the 38th ACM SIGPLAN Conference on Programming
Language Design and Implementation, pp. 185-200. 2017. Harvard