#Software Technology Course
- Οσο πιο ενεργή (και ουσιαστική) είναι η συμμετοχή σας εδώ τόσο καλύτερος ο βαθμός της τελικής εργασίας. Δεν γίνονται δεκτές αλλαγές για λογαριασμό άλλου.
- Εργασίες που αποστέλονται με διαφορετικό τρόπο (π.χ., ως επισυναπτόμενα σε email) ή δεν περιέχουν τα στοιχεία που περιγράφονται παρακάτω βαθμολογούνται αρνητικά ή δεν λαμβάνονται καθόλου υπόψιν στον υπολογισμό του τελικού βαθμού.
- Το κάθε μέλος είναι υπεύθυνο για την σωστή καταγραφή των στοιχείων του (όνομα, φωτογραφία, AM, email, παραδοτέα).
- Ολα τα έργα λογισμικού είναι καλό να παρουσιάζονται τακτικά (τουλάχιστον δύο φορές τον μήνα) στο εργαστήριο ή ηλεκτρονικά στον βοηθό του μαθήματος, γιατί διαφορετικά μπορεί να πάρουν λάθος κατευθυνση. Εργασίες που εμφανίζονται χωρίς παρουσίαση (τελική/παραδοτέα) ή τον Σεπτέμβριο θα βαθμολογούνται με άριστα το πέντε.
- Η εγκατάσταση εργαλείων προγραμματισμού θα πρέπει να γίνεται σε καθαρό λειτουργικό σύστημα, χωρίς άλλα προγράμματα. Υπάρχουν δύο λύσεις για αυτόν τον σκοπό: virtual machine σε ένα ισχυρό ΗΥ διαφορετικά θα πρέπει να γίνεται σε εξωτερικό δίσκο.
- Δεν προβλέπεται ούτε παράταση ούτε αλλαγή της παρουσίασης για κανένα παραδοτέο. Αν κάποιος δεν ενημερώσει την σελίδα του ή δεν μπορεί να βρεθεί σε κάποια ημερομηνία μπορεί να έρθει την αμέσως προηγούμενη.
- Οι εργασίες της επαναληπτικής εξεταστικής παρουσιάζονται μόνο την ημέρα της γραπτής εξέτασης
- Η γραπτή εξέταση γίνεται με ανοικτά βιβλία και σημειώσεις, οι οποίες όμως θα πρέπει να είναι δεμένες με βιβλιοδεσία ή σε ντοσιέ.
- Για την πληρέστερη αξιολόγηση των παραδοτέων θα πρέπει να υπάρχουν στις αναφορές τα παρακάτω στοιχεία: 1) λινκ σε εκτελέσιμο ντέμο σε web page ή ντέμο κατά την παρουσίαση από προσωπικό υπολογιστή και βίντεο, 2) ενδεικτικές οθόνες, όσοι δεν τα έχουν όλα αυτά στις αναφορές τότε ο βαθμός θα είναι πολύ μικρός γιατί δεν μπορούμε να αξιολογήσουμε την πρόοδο
##Projects
Για όλο τον Φεβρουάριο και για τις εβδομάδες των παρουσιάσεων σε όλους τους μήνες ισχύει μόνο ότι: Ημέρες και ώρες συναντήσεων στο εργαστήριο ανάλογα με το τελευταίο νούμερο στον ΑΜ: Πρώτη ώρα (Μονά), Δεύτερη ώρα (Ζυγά)
Η εργασία είναι ατομική ή ομαδική μέχρι 4 άτομα. Ο τελικός βαθμός για μεγάλες ομάδες 3-4 ατόμων είναι ανάλογα με την δυσκολία της εργασίας. Αν για παράδειγμα ομάδα 4 ατόμων παρουσιάσει εργασία που μπορεί να γίνει από 2 άτομα τότε θα βαθμολογηθεί με άριστα το πέντε, αντίστοιχα για όλες τις επιμέρους περιπτώσεις. Μια ομαδική εργασία έχει συνήθως τουλάχιστον δύο διακριτά τμήματα κώδικα, π.χ., client-server. Αν κάποιος έκανε τον προγραμματισμό και κάποιος άλλος τα γραφικά, ο πρώτος θα πάρει μεγαλύτερο βαθμό γιατί ο ρόλος του έχει περισσότερη σχέση με το μάθημα.
Υπάρχουν οι παρακάτω διαθέσιμες εργασίες που βαθμολογούνται πάντα ανάλογα με τον βαθμό δυσκολίας όπως φαίνεται δίπλα στο είδος της εργασίας. Είναι συνετό να επιλέξετε είδος εργασίας με βάση τις προηγούμενες γνώσεις, και τον διαθέσιμο χρόνο που έχετε. Αν για παράδειγμα δεν έχετε πολύ χρόνο τότε το πιο λογικό είναι να επιλέξετε μια εργασία που έχει μικρό βαθμό δυσκολίας. Πέρα από τα παρακάτω ενδεικτικά θέματα μπορείτε να διαλέξετε άλλο θέμα με βάση τα ενδιαφέροντα σας και μόνο σε συμφωνία με τον διδάσκοντα.
- Σχεδιασμός:
- Εγκατάσταση: xMOOC (e.g., coursebuilder) ή cMOOC (e.g., big blue button) για SW, Crowdsourcing, Bloging, 7
- Επέκταση VideoAnalytics, Twitter Visualisation, Interactive Mapmaking
- Δημιουργία εκπαιδευτικού παιχνιδιού για την [εξάσκηση στην αλγοριθμική σκέψη] (https://www.dropbox.com/s/37rn4em8xsqt849/%CE%91%CE%BB%CE%B3%CE%BF%CF%81%CE%B9%CE%B8%CE%BC%CE%B9%CE%BA%CE%AE%20%CF%83%CE%BA%CE%AD%CF%88%CE%B7.docx?dl=0)
- Ενα διαδραστικό κεφάλαιο σε Web ή Mobile App για το βιβλίο σύμφωνα με τις οδηγίες του Explorable Explanations ή Editions at play ή booksecrets
- Ενα νέο κεφάλαιο για βιβλίο εργασιών προγραμματισμού για MIT App Inventor
- Δημιουργικές αλλαγές σε κλασσικά βίντεο-παιχνίδια
- Social live TV: Example Apps
Η επίβλεψη των εργασίων θα γίνει τόσο από τον διδάσκοντα όσο και από τους βοηθούς του μαθήματος. Τα σχόλια βελτίωσης για μια εργασία μπορούν να γίνουν με εμπιστοσύνη μόνο πάνω σε ένα ντέμο και όχι πάνω σε μια ιδέα.
Η εργασία αποτελείται από τα παρακάτω παραδοτέα τα οποία θα πρέπει να βρίσκονται στην σελίδα σας (readme.md) στις αντίστοιχες προθεσμίες:
Μικρές αλλαγές στο θέμα στην διάρκεια του εξαμήνου για την αντιμετώπιση τεκμηριωμένων και αναπάντεχων αντικειμενικών προβλημάτων βαθμολογούνται θετικά. Μεγάλες ατεκμηρίωτες αλλαγές για αδικαιολόγητους προσωπικούς λόγους βαθμολογούνται αρνητικά. Η δήλωση θέματος γίνεται στην προσωπική σας σελίδα.
Προδιαγραφές, αρχικός σχεδιασμός εφαρμογής, εγκατάσταση εργαλείων ανάπτυξης και τρέξιμο/αλλαγές σε υπάρχοντα παραδείγματα. Οι εργασίες θα πρέπει να παρουσιάσουν ένα αρχικό δείγμα δουλειάς το οποίο να λειτουργεί σύμφωνα με την τεχνολογία και τον σχεδιασμό που έχει οριστεί στο προηγούμενο παραδοτέο. Η γραπτή αναφορά θα πρέπει να περιέχει σύντομο κείμενο και ενδεικτικές οθόνες που περιγράφουν και τεκμηριώνουν τις παραπάνω ενέργειες. Για την παρουσίαση του παραδοτέου γίνεται προβολή της αντίστοιχης γραπτής αναφοράς καθώς και εκτέλεση αλλαγμένων παραδειγμάτων.
Οι φοιτητές πρέπει να παρουσιάσουν το τελικό λογισμικό-αποτελέσματα και ένα τελικό πρόχειρο της αναφοράς, ώστε να πάρουν σχόλια για την βελτίωση και σωστή παράδοση της τελικής αναφοράς. Η παρουσίαση αφορά αυτό που φτιάξατε άρα θα πρέπει να βεβαιωθείτε ότι τρέχει είτε στον υπολογιστή της αίθουσας εξέτασης είτε καλύτερα σε κάποιον φορητό υπολογιστή. Δεν χρειάζεται powerpoint μόνο demo για αυτό που φτιάξατε καθώς και προβολή της αναφοράς στην σελίδα σας.
Η τελική αναφορά πρέπει να περιλαμβάνει τις παρακάτω ενότητες: τίτλο, σύνοψη, εισαγωγή, επιλογή εργαλείων, διαδικασία ανάπτυξης, διάγραμμα λειτουργίας συστήματος, ενδεικτικές οθόνες, συμπεράσματα. Η τελική αναφορά μπορεί να αποτελείται από τα διορθωμένα προηγούμενα παραδοτέα με όσες αλλαγές έγιναν και την προσθήκη τίτλου, σύνοψης, συμπερασμάτων, και αναφορές σε σχετικές-παρόμοιες εργασίες. Θα πρέπει να περιγράφεται σε ποια σχετική εργασία βασίζεται ο κώδικας και ποιες αλλαγές έγιναν. Συνολικά θα πρέπει να είναι 500-1000 λέξεις.
Ολα τα παραδοτέα θα πρέπει να γράφονται στην ίδια σελίδα στον φάκελο σας με όνομα φακέλου τον ΑΜ σας π.χ., P2010xxx.md και όνομα αρχείου README.md, με κείμενο και εικόνες σε μορφή github markdown και όχι με επισυναπτόμενα αρχεία άλλου τύπου. Οι τελικές αναφορές που δεν βρίσκονται στην σωστή θέση πριν την προθεσμία δεν βαθμολογούνται. Ο πηγαίος κώδικας θα πρέπει να είναι διαθέσιμος με λινκ όχι στον φάκελο του μαθήματος, αλλά στον λογαριασμό σας στο github ή εξωτερικά
Περιγραφή: Βασικές αρχές τεχνολογίας λογισμικού, η ανάπτυξη λογισμικού ως συνεργατική διαδικασία. Σχεδιασμός συστήματος: αρχιτεκτονικός σχεδιασμός, σχεδιασμός με επαναχρησιμοποίηση, σχεδιασμός διεπαφής χρήστη. Eλεγχος συστήματος. Διαδικασία παράδοσης, τεκμηρίωσης, και συντήρησης συστημάτων λογισμικού.
Προαπαιτούμενα: Εισαγωγή στον προγραμματισμό, δομές δεδομένων, βάσεις δεδομένων, δίκτυα, αντικειμενοστραφής προγραμματισμός.
Στόχος: Ο σκοπός του μαθήματος είναι η μελέτη της θεωρίας και η πρακτική εξάσκηση στην σχεδίαση και ανάπτυξη λογισμικού. Η θεωρία και το project καλύπτουν πολλές διαφορετικές περιοχές εφαρμογών με έμφαση σε επίκαιρες εφαρμογές όπως οι εκπαιδευτικές εφαρμογές, ο κινητός υπολογισμός, οι ψηφιακές (εκπαιδευτικές, πολιτισμικές) συλλογές, και οι ψυχαγωγικές εφαρμογές.
Μέθοδος διδασκαλίας: Διαλέξεις, demos, project.
Ηλεκτρονικά φροντιστήρια / Απορίες: Αν η απορία που έχετε δεν έχει ήδη απαντηθεί στα issues του github (δεξιά το κουμπάκι issues με το θαυμαστικό), τότε μπορείτε να δημιουργήσετε ένα νέο issue στο οποίο θα θέτετε το ερώτημά σας. Αν η ερώτησή σας δεν αφορά την εργασία σας, τότε μπορείτε να στείλετε ένα email στον βοηθό e-learning του μαθήματος. Ερωτήσεις που απαντώνται ήδη στο Github θα αγνοούνται. Σε κάθε περίπτωση, ο καλύτερος χώρος για να πάρετε σαφή απάντηση σε ερώτημά σας είναι μέσα στην τάξη.
Βοηθοί μαθήματος: Διογένης Αλεξανδράκης (e-learning): [email protected], Βαρβάρα Γαρνέλη: [email protected], Αλεξανδρος Μερκούρης (e-learning): [email protected]
Βιβλίο μαθήματος: 1) Ανάγνωση κώδικα, 2) Πρακτικός προγραμματιστής, 3) Ο Προγραμματισμός της Διάδρασης
Διαλέξεις σε βίντεο: Λογισμικό ως υπηρεσία, Διαδικασία ανάπτυξης λογισμικού, Programming Paradigms, Basics of Scrum, Agile and Project Delivery
Βαθμολογία: 60% project, 40% Τελική εξέταση
Σχετικές σελίδες για την διδακτική και την ανάπτυξη έργων λογισμικού:
Teaching Real-World Programming
Teaching Programming To A Highly Motivated Beginner