Στόχος του μαθήματος είναι η μελέτη και ΣΥΝΕΡΓΑΤΙΚΗ ανάπτυξη ολοκληρωμένων εφαρμογών λογισμικού ΣΕ ΟΜΑΔΕΣ και ΡΟΛΟΥΣ. Η συνεργασία γίνεται ΔΟΜΗΜΕΝΑ, με χρήση ΕΡΓΑΛΕΙΩΝ, σε τρία Sprints, και στόχος είναι να δείξει στους φοιτητές που τους ενδιαφερει όχι μόνο η αναπτυξη λογισμικού αλλά και η ΣΧΕΔΙΑΣΗ, και τελικά βιώνεται πως λειτουργούν λίγο-πολύ ΟΛΕΣ οι εταιρειες λογισμικού σήμερα. Οι φοιτητές κατά την διάρκεια του μαθήματος, γνωρίζουν και εξασκούνται σε όλα τα βήματα ανάπτυξης και υλοποίησης μιας ολοκληρωμένης εφαρμογής-πληροφοριακού συστήματος: σχεδιασμός, υλοποίηση, αποσφαλμάτωση. Με την ολοκλήρωση της σειράς μαθημάτων η κάθε ομάδα θα πρέπει να έχει αναπτύξει (συμμετέχοντας και σε ομάδες εργασίας) μια ολοκληρωμένη εφαρμογή.
Κάθε φοιτητής θα συμμετέχει υποχρεωτικά σε ομάδες και κάθε ομάδα αναλαμβάνει συνεργατικά και με χρήση μεθόδων και εργαλείων να αναπτύξει ένα αρκετά μεγάλο project λογισμικού. Για λεπτομέρειες δείτε στον σύνδεσμο ΕΡΓΑΣΙΕΣ.
Το πιο σημαντικό από όλα: Το μάθημα ειναι ενα LIVING LAB οπου η γνώση ΒΙΩΝΕΤΑΙ μεσω της καθε συγκεκριμένης εργασιας και της συζητησης και αναλυσης που γινεται στο μαθημα, και δεν διδάσκεται με διαφάνειες.
Το μάθημα ως βασικούς στόχους έχει:
Την κατανόηση των αρχών & εργαλείων για ανάπτυξη συστημάτων πληροφορικής σε ομάδες (στόχοι που παρακολουθούνται συστηματικά, ρόλοι που υπάρχουν σε μία ομάδα που αναπτύσσει ένα σύστημα, χρονοπρογραμματισμός).
Την κατανόηση & εφαρμογή στην πράξη μεθόδων ανάπτυξης συνεργατικού κώδικα με χρήση διαφόρων συστημάτων και μεθόδων versioning control.
Κατανόηση συστημάτων σχεδίασης και versioning όπως το GitHub, Figma κλπ.
Βασικές αρχές σχεδίασης, Usability testing, User Experience.
Την εφαρμογή στην πράξη τεχνικών ανάπτυξης εφαρμογών λογισμικού βασισμένο σε εξωτερικές βιβλιοθήκες και συστατικά στοιχεία (components, π.χ. Lucene για αναζήτηση).
Την κατανόηση σε βάθος της πλατφόρμας .ΝΕΤ, των κυριότερων βιβλιοθηκών που τη συνοδεύουν, και τον τρόπο ανάπτυξης διαφόρων ειδών εφαρμογών.
Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα αποκτήσουν:
Γνώσεις για τως δουλευουμε ΑΠΟΤΕΛΕΣΜΑΤΙΚΑ και ΑΠΟΔΟΤΙΚΑ για την υλοποίηση Ολοκληρωμένων Πληροφοριακών Συστημάτων σε μικρές (π.χ. 5 ατομα) ή μεγαλύτερες ομάδες (10 ατομα).
Δυνατότητες να υλοποιήσουν την σχεδίαση και ανάπτυξη εφαρμογών λογισμικού διαφόρων τύπων (κυρίως web apps, αλλά και desktop, mobile, console) με ΟΠΟΙΟΔΗΠΟΤΕ πλατφόρμα ανάπτυξης επιθυμούν (π.χ. ενδεικτικά και μόνο: React, Node.JS, Python, Angular, .NET, PHP, Java., Vue κλπ
Γνώσεις που αφορούν την ανάπτυξη εφαρμογών βασισμένες με εκτεταμένη χρήση δεδομένων αποθηκευμένων σε διαφόρων ειδών μηχανισμούς αποθήκευσης δεδομένων.