Skip to content

maliaris7/sw

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

#Software Technology Course

  • Οσο πιο ενεργή (και ουσιαστική) είναι η συμμετοχή σας εδώ τόσο καλύτερος ο βαθμός της τελικής εργασίας. Δεν γίνονται δεκτές αλλαγές για λογαριασμό άλλου.
  • Το κάθε μέλος είναι υπεύθυνο για την σωστή καταγραφή των στοιχείων του (όνομα, φωτογραφία, AM, email, παραδοτέα).
  • Ολα τα έργα λογισμικού είναι καλό να παρουσιάζονται τακτικά (τουλάχιστον δύο φορές τον μήνα) στο εργαστήριο ή ηλεκτρονικά στον βοηθό του μαθήματος, γιατί διαφορετικά μπορεί να πάρουν λάθος κατευθυνση. Εργασίες που εμφανίζονται χωρίς παρουσίαση (τελική/παραδοτέα) ή τον Σεπτέμβριο θα βαθμολογούνται με άριστα το πέντε.
  • Η εγκατάσταση εργαλείων προγραμματισμού θα πρέπει να γίνεται σε καθαρό λειτουργικό σύστημα, χωρίς άλλα προγράμματα. Υπάρχουν δύο λύσεις για αυτόν τον σκοπό: virtual machine σε ένα ισχυρό ΗΥ διαφορετικά θα πρέπει να γίνεται σε εξωτερικό δίσκο.
  • Δεν προβλέπεται ούτε παράταση ούτε αλλαγή της παρουσίασης για κανένα παραδοτέο. Αν κάποιος δεν ενημερώσει την σελίδα του ή δεν μπορεί να βρεθεί σε κάποια ημερομηνία μπορεί να έρθει στην αμέσως επόμενη (ή ακόμη καλύτερα την αμέσως προηγούμενη), αν αυτό συμβεί περισσότερο από μια φορά τότε μόνο θα έχει επίπτωση στον βαθμό.

##Projects

Για όλο τον Φεβρουάριο και για τις εβδομάδες των παρουσιάσεων σε όλους τους μήνες ισχύει μόνο ότι: Ημέρες και ώρες συναντήσεων στο εργαστήριο ανάλογα με το τελευταίο νούμερο στον ΑΜ: Τρίτη (Ζυγά), Πέμπτη (Μονά)

Η εργασία είναι ατομική ή ομαδική μέχρι 4 άτομα. Ο τελικός βαθμός για μεγάλες ομάδες 3-4 ατόμων είναι ανάλογα με την δυσκολία της εργασίας. Αν για παράδειγμα ομάδα 4 ατόμων παρουσιάσει εργασία που μπορεί να γίνει από 2 άτομα τότε θα βαθμολογηθεί με άριστα το πέντε, αντίστοιχα για όλες τις επιμέρους περιπτώσεις.

Υπάρχουν οι παρακάτω διαθέσιμες εργασίες που βαθμολογούνται πάντα ανάλογα με τον βαθμό δυσκολίας όπως φαίνεται δίπλα στο είδος της εργασίας. Είναι συνετό να επιλέξετε είδος εργασίας με βάση τις προηγούμενες γνώσεις, και τον διαθέσιμο χρόνο που έχετε. Αν για παράδειγμα δεν έχετε πολύ χρόνο τότε το πιο λογικό είναι να επιλέξετε μια εργασία που έχει μικρό βαθμό δυσκολίας. Πέρα από τα παρακάτω ενδεικτικά θέματα μπορείτε να διαλέξετε άλλο θέμα με βάση τα ενδιαφέροντα σας και μόνο σε συμφωνία με τον διδάσκοντα.

  1. Εκπαιδευτικό παιχνίδι με Scratch, 6
  2. MIT App inventor quantified self, 7
  3. Δημιουργία ψηφιακών χαρτών για πεζούς αυτόματη επεξεργασία δεδομένων GPX, 9
  4. Κατασκευή xMOOC (e.g., coursebuilder) ή cMOOC (e.g., big blue button) για SW, 9
  5. VideoAnalytics, PopCorn Maker, Android Sports App, Twitter Visualisation, Old city 3D cartography, Augmented reality location based game, conversion tool (markdown-bibtex, markdown-blogging), Cartography (Data analysis and visualization), Processing visualization Programmable Web 10
  6. Δημιουργία εκπαιδευτικού παιχνιδιού για την εξάσκηση στην αλγοριθμική σκέψη: Τα εκπαιδευτικά παιχνίδια μπορούν να χρησιμοποιηθούν σαν εργαλεία εκμάθησης προγραμματισμού. Μπορούν να είναι πχ. πίστες στις οποίες ο παίκτης πρέπει να καθοδηγήσει τον ήρωα χρησιμοποιώντας διάφορες εντολές – συναρτήσεις (πχ. http://codecombat.com/). Μια άλλη εκδοχή είναι γενικά ένα περιβάλλον που με διάφορους τρόπους ο «παίκτης» καλείται να εισάγει κώδικα μιας γλώσσας προγραμματισμού και μαθαίνει αν είναι σωστός (πχ. http://www.pexforfun.com/ ) και παραπάνω ίσως πληροφορίες. Κάθε παιχνίδι βέβαια πρέπει να έχει κάποιο στόχο και πρέπει εκτός από εκπαιδευτικό σκοπό να έχει εξίσου και ψυχαγωγικό. Ο κώδικας που θα χρησιμοποιηθεί στη «διδασκαλία» μπορεί να είναι συγκεκριμένες εντολές ή συναρτήσεις μιας γλώσσας προγραμματισμού ή και «ψευδοκώδικας» που απλά διδάσκει αλγοριθμική σκέψη. Μπορεί και πρέπει να αναφέρεται σε συγκεκριμένη ηλικιακή ομάδα. Η εφαρμογή πρέπει να έχει τουλάχιστον 6 μικρές πίστες. Ο κάθε παίκτης πρέπει να συνδέεται με συγκεκριμένο κωδικό και να αποθηκεύονται αυτόματα το user name, ο χρόνος που χρησιμοποίησε την εφαρμογή και η ημερομηνία και διάφορα δεδομένα που αφορούν τις επιδόσεις του στο παιχνίδι – προγραμματισμός. Η επιλογή του εργαλείου ανάπτυξης της εφαρμογής και της ηλικίας στην οποία απευθύνεται είναι ελεύθερα.
  7. Δημιουργία εφαρμογής για κινητά τηλέφωνα χρησιμοποιώντας τον App Inventor: Δημιουργία map tour application με το app inventor. Δείτε παράδειγμα δημιουργίας Map Tour που αφορά γαλλικούς προορισμούς http://beta.appinventor.mit.edu/learn/tutorials/maptour/maptour.html. Η εφαρμογή πρέπει να αφορά συγκεκριμένο τουριστικό προορισμό πχ. Κέρκυρα, να περιλαμβάνει βασικές πληροφορίες για αξιοθέατα (θέση και πληροφορίες) αλλά και άλλα χρήσιμα θέματα όπως πχ. παραλίες, διαφημίσεις κλπ.
  8. Δημιουργία Multi-touch εφαρμογών

Η επίβλεψη των εργασίων θα γίνει τόσο από τον διδάσκοντα όσο και από τους βοηθούς του μαθήματος.

Η εργασία αποτελείται από τα παρακάτω παραδοτέα με τις αντίστοιχες προθεσμίες:

1. Δήλωση και δέσμευση θέματος, 19 Φεβρουαρίου

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

2. Παρουσίαση πρωτοτύπου της εφαρμογής, 17 Μαρτίου

Παρουσίαση επιλογής εργαλείων, εκτέλεση/αλλαγές παραδειγμάτων, και προδιαγραφές εφαρμογής. Οι εργασίες με το Scratch θα πρέπει να παρουσιάσουν ένα δείγμα δουλειάς όπου θα φαίνεται η εφαρμογή ενός οι περισσότερων από τα παρακάτω: αφήγηση, διάδραση, κίνηση (π.χ., gem-game). Οι εργασίες με App Inventor θα πρέπει να βασίζονται στις μοναδικές ιδιότητες που έχει ένα κινητό τηλέφωνο, όπως GPS, compass και κυρίως στο γεγονός ότι ο χρήστης βρίσκεται σε κίνηση και όχι σε κάποιο γραφείο.

4. Τελική παρουσίαση, 14 Μαϊου

Οι φοιτητές πρέπει να παρουσιάσουν το τελικό λογισμικό-αποτελέσματα και ένα τελικό πρόχειρου της αναφοράς, ώστε να πάρουν σχόλια για την βελτίωση και σωστή παράδοση της τελικής αναφοράς..

5. Τελική αναφορά (χωρίς παρουσίαση), 30 Μαϊου

Η τελική αναφορά πρέπει να περιλαμβάνει τις παρακάτω ενότητες: τίτλο, σύνοψη, εισαγωγή, επιλογή εργαλείων, διαδικασία ανάπτυξης, διάγραμμα λειτουργίας συστήματος, ενδεικτικές οθόνες, συμπεράσματα. Η τελική αναφορά μπορεί να αποτελείται από τα διορθωμένα προηγούμενα παραδοτέα με όσες αλλαγές έγιναν και την προσθήκη τίτλου, σύνοψης, συμπερασμάτων. Συνολικά θα πρέπει να είναι 500-1000 λέξεις.

Οι αναφορές θα πρέπει να γράφονται στην ίδια σελίδα με κείμενο και εικόνες. Τα επισυναπτόμενα επιτρέπονται μόνο κατ'εξαίρεση όπως για παράδειγμα στην παράδοση του τελικού πηγαίου κώδικα src. Τα επισυναπτόμενα με εικόνες ή εκτελέσιμο κώδικα, καθώς και η κακή χρήση του συστήματος (π.χ., σκόρπιες σελίδες) βαθμολογούνται αρνητικά, ενώ οι τελικές αναφορές που δεν βρίσκονται στην σωστή θέση πριν την προθεσμία δεν βαθμολογούνται.

##Syllabus

Περιγραφή: Βασικές αρχές τεχνολογίας λογισμικού, η ανάπτυξη λογισμικού ως συνεργατική διαδικασία. Σχεδιασμός συστήματος: αρχιτεκτονικός σχεδιασμός, σχεδιασμός με επαναχρησιμοποίηση, σχεδιασμός διεπαφής χρήστη. Eλεγχος συστήματος. Διαδικασία παράδοσης, τεκμηρίωσης, και συντήρησης συστημάτων λογισμικού.

Προαπαιτούμενα: Εισαγωγή στον προγραμματισμό, δομές δεδομένων, βάσεις δεδομένων, δίκτυα, αντικειμενοστραφής προγραμματισμός.

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

Μέθοδος διδασκαλίας: Διαλέξεις, demos, project.

Ηλεκτρονικά φροντιστήρια / Απορίες: Αν η απορία που έχετε δεν έχει ήδη απαντηθεί στα issues του github (δεξιά το κουμπάκι issues με το θαυμαστικό), τότε μπορείτε να δημιουργήσετε ένα νέο issue στο οποίο θα θέτετε το ερώτημά σας. Αν η ερώτησή σας είναι κάτι πολύ συγκεκριμένο για την εργασία σας, που δεν αφορά και άλλους συμφοιτητές σας, τότε μπορείτε να στείλετε ένα email στον αντίστοιχο βοηθό του μαθήματος. Ερωτήσεις που απαντώνται ήδη στο Github θα αγνοούνται. Ερωτήσεις που σχετίζονται με τη βαθμολόγηση του μαθήματος θα πρέπει να στέλνονται στον διδάσκοντα του μαθήματος. Σε κάθε περίπτωση, ο καλύτερος χώρος για να πάρετε σαφή απάντηση σε ερώτημά σας είναι μέσα στην τάξη.

Βοηθοί μαθήματος: Βαρβάρα Γαρνέλη (Φροντιστήρια), Γιάννης Λευθεριώτης (e-learning): [email protected]

Βιβλίο μαθήματος: 1) Ανάγνωση κώδικα, 2) Πρακτικός προγραμματιστής

Διαλέξεις σε βίντεο: Λογισμικό ως υπηρεσία, Διαδικασία ανάπτυξης λογισμικού

Βαθμολογία: 60% project, 40% Τελική εξέταση

Σχετικές σελίδες για την την διδακτική και την ανάπτυξη έργων λογισμικού:

GitHub Guides

How to Use Git and GitHub

Teaching Real-World Programming

Teaching Programming To A Highly Motivated Beginner

A Successful Git Branching Model

About

Software Technology Course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published