Άνοιξη 2011
Το μάθημα αυτό έχει σαν σκοπό τη διδασκαλία των βασικών αρχών των διάχυτων συστημάτων (ubiquitus/pervasive computing systems) καθώς και των συστημάτων ευαίσθητων στο περιβάλλον (context-aware systems).
Τα διάχυτα συστήματα επιτρέπουν την αλληλεπίδραση ανθρώπου-υπολογιστή--Human-Computer Interaction (HCI)--με δικτυωμένες συσκευές οι οποίες είναι ενσωματωμένες σε πληθώρα αντικειμένων που χρησιμοποιούμε καθημερινώς. Ένας σημαντικός παράγοντας για την επιτυχία τέτοιων συστημάτων είναι η ικανότητα τους να "αισθάνονται" το περιβάλλον και να αλλάζουν την συμπεριφορά τους με βάση αυτή την πληροφορία.
1.1 Στόχοι
Αυτό το μάθημα θα καλύψει θέματα από διάφορους τομείς που επηρεάζουν την ανάπτυξη διάχυτων συστημάτων ευαίσθητων στο περιβάλλον, όπως λογισμικό υποστήριξης, αισθητήρες, και τεχνικές αλληλεπίδρασης ανθρώπου-υπολογιστή.
Ένα σημαντικό κομμάτι του μαθήματος αφορά την ανάπτυξη εφαρμογών ευαίσθητων στο περιβάλλον, χρησιμοποιώντας σαν βάση το λειτουργικό σύστημα Android.
1.2 Τρόπος Διδασκαλίας
Η διδασκαλία θα στηρίζεται στις διαλέξεις και στα εργαστήρια. Τονίζεται ότι η παρακολούθηση των διαλέξεων και εργαστηρίων είναι όχι μόνο υποχρεωτική, αλλά και αναγκαία για την επιτυχή ολοκλήρωση του μαθήματος.
1.3 Διαλέξεις
Οι διαλέξεις του μαθήματος θα γίνονται διαθέσιμες στην ιστοσελίδα του μαθήματος, θα στηρίζονται ως επί το πλείστο σε πρόσφατες δημοσιεύσεις και θα καλύπτουν θέματα όπως τα ακόλουθα:
1.4 Εργαστήριο
Το εργαστήριο του μαθήματος αποτελείται από 2 βασικά κομμάτια. Αρχικά, οι φοιτητές θα ακολουθήσουν κάποιες βασικές έννοιες του λειτουργικού συστήματος Android. Ακολούθως, θα διδαχθούν βασικές χρήσεις αισθητήρων που συναντώνται κοινά σε συσκευές που τρέχουν το ΛΣ Android, όπως για παράδειγμα θέση (location), επιτάχυνση (accelerometer), κατεύθυνση (orientation), κλπ.
Ενδεικτικά θέματα που θα καλύψει το εργαστήριο:
Το μάθημα δεν έχει απαιτούμενο βιβλίο. Σε κάθε περίπτωση, τα βιβλία που αναφέρονται στη σελίδα χρήσιμο υλικό θα φανούν χρήσιμα για κάλυψη εξειδικευμένων θεμάτων.
Η αξιολόγηση των φοιτητών/φοιτητριών θα προκύψει από την συμμετοχή τους στις διαλέξεις, από τον βαθμό τους στο εργαστήριο και από την επίδοση τους στην ενδιάμεση και στην τελική εξέταση. Αναλυτικά, η τελική βαθμολογία θα υπολογιστεί με βάση τους ακόλουθους συντελεστές:
Κατά την διάρκεια των διαλέξεων, οι φοιτητές θα αναμένεται να έχουν διαβάσει τα απαιτούμενα συγγράμματα (θα καθορίζονται τουλάχιστον 1 βδομάδα προηγουμένως) και να συμμετέχουν στο μάθημα με ερωτήσεις και απαντήσεις.
Η ενδιάμεση εξέταση αφορά την επιλογή ενός συγκεκριμένου συγγράμματος από μια λίστα που θα σας δοθεί (τυπικά ~10 σελίδες) και την σύντομη παρουσίαση του στο μάθημα (σε ~10 λεπτά).
Η τελική εξέταση θα είναι γραπτή με κλειστές σημειώσεις και θα εξετάζει την κατανόηση των διαλέξεων.
Τέλος, το εργαστήριο θα περιλαμβάνει μικρές προγραμματιστικές ασκήσεις (στα πλαίσια εξοικείωσης με το περιβάλλον ανάπτυξης του Android) και φυσικά την τελική εργασία που θα αφορά την ετοιμασία μιας εφαρμογής που να διαθέτει χαρακτηριστικά συστήματος ευαίσθητου στο περιβάλλον.
Η εκπόνηση όλων των εργασιών όπως και η συμμετοχή σε όλες τις εξετάσεις και στο εργαστήριο είναι υποχρεωτική. Επίσης υποχρεωτική είναι και η παρουσία σας τόσο στις διαλέξεις όσο και στο εργαστήριο. Σε αντίθετη περίπτωση δεν θα επιτραπεί στον φοιτητή/φοιτήτρια να συμμετέχει στην τελική εξέταση.
3.1 Προαπαιτούμενα
Οι διαλέξεις του μαθήματος δεν προϋποθέτουν ιδιαίτερες γνώσεις, παρά μόνο βασική τεχνική κατάρτιση που συνήθως διδάσκεται στα εισαγωγικά μαθήματα τμημάτων πληροφορικής.
Λόγω της τεχνικής φύσεως του εργαστηρίου όμως, και της ανάπτυξης εφαρμογών σε Android, οι φοιτητές που θα επιλέξουν το μάθημα έχουν σαν προαπαιτούμενο την γνώση αντικειμενοστραφούς προγραμματισμού με την χρήση της Java, δηλαδή αναμένεται να έχουν παρακολουθήσει επιτυχώς το μάθημα ΕΠΛ233.
3.2 Συνεργασία
Οι φοιτητές ενθαρρύνονται να μελετούν και να μαθαίνουν μαζί. Ωστόσο, η αντιγραφή κώδικα, ή η παροχή κώδικα προς αντιγραφή, ή η τροποποίηση των αποτελεσμάτων της δοκιμής του κώδικα, αποτελούν πράξεις δόλου που στην καλύτερη περίπτωση θα οδηγήσουν σε μηδενισμό. Ένας καλός κανόνας για αποφυγή αντιγραφής είναι να μην κοιτάζετε τον κώδικα άλλων και να μην δίνετε αντίγραφα του δικού σας κώδικα. Άλλος ένας κανόνας είναι να συζητάτε τα προβλήματα με τη χρήση πίνακα αλλά να μην παίρνετε σημειώσεις κατά τη συζήτηση με άλλους. Όλες οι εργασίες θα ελέγχονται με χρήση λογισμικού που αναγνωρίζει παρόμοια δομή κώδικα.
4. Γενικοί Κανόνες