Ανάπτυξη Διαδικτυακών Συστημάτων και Εφαρμογών

Γενικά

  • Κωδικός Μαθήματος: 1941
  • Εξάμηνο: 9ο
  • Τύπος Μαθήματος: Εξειδίκευσης (ΕΞ)
  • Είδος Μαθήματος: Υποχρεωτικό Επιλογής (ΥΠ-ΕΠ)
  • Γνωστική Περιοχή: Προγραμματισμός και Αλγόριθμοι (ΠΑ)
  • Διδασκαλία Θεωρίας: 4 ώρες/εβδομάδα
  • Πιστωτικές μονάδες ECTS: 6
  • Ηλεκτρονική σελίδα μαθήματος: https://1941.iee.ihu.gr
  • Γλώσσα διδασκαλίας και Εξετάσεων: Ελληνικά
  • Το μάθημα προσφέρεται σε φοιτητές Erasmus
  • Προτεινόμενα προαπαιτούμενα μαθήματα: (1405) Γλώσσες και Τεχνολογίες Ιστού
  • Συντονιστής: Σιδηρόπουλος Αντώνης
  • Διδάσκοντες: Σιδηρόπουλος Αντώνης

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

Αντικείμενο του μαθήματος είναι η κατανόηση και εκμάθηση βασικών και απαραίτητων τεχνολογιών, γλωσσών προγραμματισμού και μεθόδων για την ανάπτυξη διαδικτυακών συστημάτων και εφαρμογών παγκόσμιου ιστού. Βασικός στόχος είναι η σχεδίαση και ανάπτυξη συστημάτων και δυναμικών εφαρμογών του παγκόσμιου ιστού αλλά και του διαδικτύου γενικότερα όπου ένα σημαντικό τους μέρος εκτελείται server-side. Oι φοιτητές θα αποκτήσουν την απαραίτητη γνώση για την ανάπτυξη προηγμένων εφαρμογών ιστού με τη άμεση χρήση γλωσσών προγραμματισμού όπως η PHP. Επίσης στόχος είναι να γίνει κατανόηση των μεθόδων σχετικά με την ανάπτυξη Web 2.0+ συστημάτων και εφαρμογών καθώς και προηγμένων αρχιτεκτονικών για την ανάπτυξη διαδικτυακών συστημάτων και εφαρμογών (API, Service Oriented Architectures). Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα έχουν αποκτήσει θεωρητική και πρακτική γνώση, κατανόηση αλλά και δυνατότητες εφαρμογής και ανάλυσης σχετικά με τεχνολογίες για την ανάπτυξη διαδικτυακών συστημάτων, εφαρμογών και υπηρεσιών ιστού. Έτσι, θα είναι σε θέση να:

  • εξηγούν αρχιτεκτονικές για την ανάπτυξη διαδικτυακών συστημάτων και εφαρμογών (client-server), βασικά συστατικά στοιχεία υποδομής για τις εφαρμογές ιστού (web servers) και θεμελιώδεις έννοιες για την ανάπτυξη διαδικτυακών συστημάτων (state, session, application, request, response).
  • κατασκευάζουν εφαρμογές και συστήματα που απαιτούν Client side προγραμματισμό αξιοποιώντας τεχνολογίες και γλώσσες: HTML5, CSS, Javascript, JQuery, bootstrap
  • κατασκευάζουν δυναμικές εφαρμογές και συστήματα που απαιτούν Server Side προγραμματισμό με χρήση της γλώσσας προγραμματισμού PHP. Να διασυνδέσουν την εφαρμογή τους με βάσεις δεδομένων MySQL και να διατηρούν την ασφάλεια της εφαρμογής του σε υψηλά επίπεδα (αποφυγή SQL Injections κ.ά.)
  • να κατασκευάζουν RESTful web APIs που επιστρέφουν αποτελέσματα σε μορφή JSON ή XML. Να αναπτύσσουν ανεξάρτητα το front end τμήμα και το back end τμήμα της εφαρμογής χρησιμοποιώντας το μοντέλο MVC (Model-View-Controler) και να χρησιμοποιούν api για την επικοινωνία των τμημάτων της εφαρμογής καθώς και κλήσεις AJAX για ασύγχρονη επικοινωνία. Να δημιουργούν και να διαχειρίζονται περιεχόμενο σε μορφή JSON και XML/DTD.
  • Να αναπτύσσουν συνεργατικά την εφαρμογή τους χρησιμοποιώντας (Distributed) Version Control Systems (D-VCS, π.χ. git-github). Να αναπτύσσουν δυναμικές εφαρμογές ιστού χρησιμοποιώντας frameworks (π.χ. laravel) και συστήματα διαχείρισης περιεχομένου (CMS Joomla, wordpress, Drupal)
Γενικές Ικανότητες
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
  • Αυτόνομη εργασία και Ομαδική εργασία

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

– Ανασκόπηση του WWW, Ιστορική αναδρομή, Εξυπηρετητές ιστού, URLs, Το μοντέλο πελάτη-εξυπηρετητή στο WWW
– Ανασκόπηση στις τεχνολογίες και τις γλώσσες για client side (HTML, CSS, Javascript, DOM, bootstrap)
– Εισαγωγή στην PHP (εντολές ελέγχου, επανάληψης, συναρτήσεις, φόρμες, get, post, sessions, cookies)
– PHP και MySQL (H βιβλιοθήκη MySQLI, PDO. Σύνδεση με βάση δεδομένων, εκτέλεση SQL DML και DDL από κώδικα PHP, SQL Injections και prepared statements)
– Το πρωτόκολλο http
– Η γλώσσα JSON και η γλώσσα XML. Επικύρωση XML μέσω DTD
– Ασύγχρονη επικοινωνία server – client μέσω AJAX. Ενημέρωση ιστοσελίδας χωρίς επαναφόρτωση.
– H βιβλιοθήκη JQUERY
– Υπηρεσίες ιστού (web services), Web APIs, REST APIs. Ανεξάρτητη ανάπτυξη του front-end και του back-end. Επικοινωνία μέσω API.
– Versioning Control Systems (VCS). Συνεργατική ανάπτυξη διαδικτυακής εφαρμογής, χρήση του git
– PHP frameworks και Συστήματα διαχείρισης περιεχομένου (CMS)

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παράδοσης
  • Πρόσωπο με πρόσωπο θεωρητική διδασκαλία (παράδοση, συζήτηση, επίλυση προβλημάτων).
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
  • Χρήση Web server και database server όπου οι φοιτητές αναπτύσσουν τις εργασίες/εφαρμογές τους
  • Χρήση εργαστηρίων Η/Υ για την ανάπτυξη και παρουσίαση των εργασιών-εφαρμογών των φοιτητών
  • Χρήση λογισμικού παρουσιάσεων διαφανειών.
  • Χρήση ηλεκτρονικής πλατφόρμας μάθησης (moodle)
  • Επικοινωνία μέσω της σελίδας του μαθήματος
  • Ηλεκτρονική επικοινωνία με τους φοιτητές μέσω email
Οργάνωση Διδασκαλίας
Δραστηριότητα Φόρτος εργασίας εξαμήνου
Διαλέξεις60
Συγγραφή και παρουσίαση υποχρεωτικής εργασίας60
Ατομική Μελέτη και ανάλυση βιβλιογραφίας60
Σύνολο 180
Αξιολόγηση φοιτητών

50% της τελικής βαθμολογίας: Γραπτές εξετάσεις με ερωτήσεις πολλαπλής επιλογής
50% της τελικής βαθμολογίας: Ομαδική εργασία ανάπτυξης διαδικτυακής εφαρμογής με προφορική εξέταση των μελών της κάθε ομάδας

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος "Εύδοξος"
  1. Προγραμματισμός για το Web, 1η εκδ. Κωδικός Βιβλίου στον Εύδοξο: 50661201, ISBN: 978-960-512-6902
  2. Προγραμματισμός Internet & World Wide Web 4η Έκδοση. Κωδικός Βιβλίου στον Εύδοξο: 12543770, ISBN: 978-960-512-612-4
  3. Μάθετε PHP, MySQL και Apache Όλα σε Ένα, 5η Έκδοση. Κωδικός Βιβλίου στον Εύδοξο: 41960260, ISBN: 978-960-512-6551
  4. Μάθετε Ajax, Javascript και PHP,Όλα σε ένα. Κωδικός Βιβλίου στον Εύδοξο: 12308, ISBN: 978-960-512-562-2
  5. Τεχνολογίες και Προγραμματισμός στον Παγκόσμιο Ιστό - 2η Έκδοση. Βιβλίου στον Εύδοξο: 102125023
Συμπληρωματική ελληνόγλωσση βιβλιογραφία
  1. Ανάπτυξη Web Εφαρμογών με PHP και MySQL. Welling, Luke, Thomson, Laura.
Συμπληρωματική ξενόγλωσση βιβλιογραφία
  1. PHP and MySQL Web Development (4th Edition) [Paperback]. Luke Welling (Author), Laura Thomson (Author)
  2. Design Patterns in PHP and Laravel [electronic resource], Kelt Dockins, Κωδικός Βιβλίου στον Εύδοξο: 75484250
  3. Beginning Laravel [electronic resource], Sanjib Sinha, Κωδικός Βιβλίου στον Εύδοξο: 75482262
  4. Web Development with Go [electronic resource], Shiju Varghese, Κωδικός Βιβλίου στον Εύδοξο: 73267901
  5. PHP 7 Solutions [electronic resource], David Powers, Κωδικός Βιβλίου στον Εύδοξο: 91693113
  6. Beginning PHP and MySQL [electronic resource], W. Jason Gilmore, Κωδικός Βιβλίου στον Εύδοξο: 73230427