Skip to main content

Στόχοι Μαθήματος: Ο στόχος του μαθήματος είναι η παροχή στους φοιτητές των απαιτούμενων γνώσεων και δεξιοτήτων ώστε να έχουν τη δυνατότητα να αναπτύξουν μία περίπλοκη εφαρμογή ιστού.

Μαθησιακά Αποτελέσματα: (1) Οι φοιτητές θα αποκτήσουν γνώσεις σχετικές με τον βασικό σχεδιασμό των εφαρμογών του διαδικτύου, οι οποίες καλύπτουν πρωτόκολλά, πρότυπα, διαχείριση δεδομένων, πολυεπίπεδες αρχιτεκτονικές και ασφάλεια. (2) Θα μάθουν πως να σχεδιάσουν και να εφαρμόσουν αξιόπιστες, εύχρηστες, κλιμακούμενες, ευέλικτες, ασφαλείς και διατηρήσιμες εφαρμογές ιστού. (3) Θα γνωρίσουν πώς μελετήσουν πολλά ακαδημαϊκά άρθρα που περιγράφουν το σχέδιο φιλοσοφίας συστημάτων στα οποία βασίζεται η υποδομή WWW. (4) Μέσω μιας σειράς ασκήσεων εφαρμογής του διαδικτυακού συστήματος, οι φοιτητές θα αποκτήσουν τις γνώσεις του προγραμματισμού και τις υποδομής που απαιτούνται για τη δημιουργία ενός προχωρημένου ιστού εφαρμογής.

Περιεχόμενο Μαθήματος: Το μάθημα αυτό αποτελεί μια εισαγωγή στις τεχνολογίες διαδικτύου, οι οποίες πλέον αποτελούν την κύρια πλατφόρμα εφαρμογών λογισμικού. Θα καλύψουμε ένα μεγάλο εύρος πλαισίων εργασίας (frameworks) για την ανάπτυξη εφαρμογών ιστού τα οποία χρησιμοποιούνται σε κρίσιμες επιχειρηματικές εφαρμογές μεγάλης κλίμακας, όπως Online Social Networks, Banking, Online Stores, Online Video Services, κ.ο.κ. Θα περιγράψουμε τις βασικές αρχές των εφαρμογών διαδικτύου, όπως πρωτόκολλα, standards, διαχείριση δεδομένων, multi-tier αρχιτεκτονικές και ασφάλεια. Θα μελετήσουμε πως μπορούμε να αναπτύξουμε αξιόπιστες, φιλικές στο χρήστη, κλιμακώσιμες, ευέλικτες και διατηρήσιμες εφαρμογές. 1η  Εβδομάδα: Εισαγωγή. Web servers και HTTP.   Εργασία: Εγκατάσταση LAMP stack (Ubuntu 10.04LTS, Apache, MySQL, PHP/Python). 2η -3η  Εβδομάδα:  Σχεδιασμός διαπροσωπείας και χρηστικότητα εφαρμογών. HTML, CSS.  Εργασία: Διαμόρφωση (configuration/set up) Apache web server και εξυπηρέτηση μιας απλής σελίδας ΗΤΜL/CSS. 4η-6η  Εβδομάδα: Μηχανική ιστού. Model-View-Controller architectural pattern για εφαρμογές ιστού. PHP, server-side programming, sessions.  Εργασία: Set up PHP και εξυπηρέτηση μιας απλής δυναμικής σελίδας. Multι-tier εφαρμογές.  Εργασία: Διαμόρφωση βάσης δεδομένων MySQL. Χρήση  PHP για  δυναμικές σελίδες που φορτώνουν δεδομένα από τη βάση. 7η-9η Εβδομάδα: Client-side programming. Javascript, AJAX, JQuery, XML.  Εργασία: Αναβάθμιση της μέχρι τώρα αναπτυχθέισας εφαρμογής με διαδραστικότητα AJAX. 10η  Εβδομάδα: Aσφάλεια εφαρμογών ιστού. OpenSSL και X.509 Public Key Certificates.   Εργασία:  Μετατροπή της μέχρι τώρα αναπτυχθείσας  εφαρμογής σε HTTPS/SSL και κάλυψη κενών ασφαλείας της.