Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής και Τηλεπικοινωνιών. Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες. Χειμερινό εξάμηνο

Σχετικά έγγραφα
Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες. Χειμερινό εξάμηνο

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Εργασία Δεύτερη φάση

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Εργασία

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

Δρομολόγηση (Routing)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΔΙΚΤΥΑ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ

Βασικές Έννοιες της Πληροφορικής

Διάλεξη 1. Εισαγωγή Επισκόπηση άσκησης

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων Σωτήρης Γυφτόπουλος

dtw(a, B) = dtw(a n, B m )

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

Λιβανός Γιώργος Εξάμηνο 2017Β

«Ολοκληρωμένο σύστημα παρακολούθησης θαλάμων συντήρησης»

Δροµολόγηση (Routing)

Πρόβλημα 37 / σελίδα 207

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Epsilon Net PYLON Platform

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Εργασία

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Δεδομένων. Μοναστηρίου 7, Άγιος Στέφανος. Tηλ.: Φαξ: Website:

Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3

Connecto. Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Άγγελος Σφακιανάκης. Επιφάνεια Άμεσης Σύνδεσης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

Διπλωματική Εργασία. Επιβλέπων καθηγητής: Δρ. Μηνάς Δασυγένης. Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Atlantis Orders on android

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θεωρία Αποφάσεων ο. 4 Φροντιστήριο. Λύσεις των Ασκήσεων

ΗΜΕΡΙΔΑ Cloud Computing: Νέοι Ορίζοντες

ΚΑΤΑΝΟΜΗ ΜΑΘΗΜΑΤΩΝ ΣΤΑ ΕΞΑΜΗΝΑ

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

Οπτική επιβεβαίωση στα συστήματα ασφαλείας.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Θέματα Διπλωματικών Εργασιών

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΚΑΤΑΛΟΓΟΣ ΠΡΟΪΟΝΤΩΝ 2014

ANDROID Προγραμματισμός Εφαρμογών

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τµήµα ιοικητικής Επιστήµης και Τεχνολογίας ΥΛΟΠΟΙΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ JAVA.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005

RobotArmy Περίληψη έργου

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΓΕ.Λ. ΟΙΚ & ΠΛΗΡ (ΘΕΡΙΝΑ) ΗΜΕΡΟΜΗΝΙΑ: ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: ΓΙΑΝΝΗΣ ΜΙΧΑΛΕΑΚΟΣ ΘΕΜΑ Α

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 2

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2008

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Δευτέρα 22 / 11 / 2017 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Μαθησιακοί Στόχοι Προγράμματος Σπουδών

Οδηγός Εγκατάστασης Pylon Auto Moto Cube

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ ΓΙΑ ΤΟ

Εγκατάσταση του Lazarus

ΘΕΜΑ 1 ο ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

9. Συστολικές Συστοιχίες Επεξεργαστών

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

Αποµακρυσµένη κλήση διαδικασιών

Εγγυημένη ποιότητα υπηρεσίας

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

$./MirrorInitiator -n <MirrorServerAddress> -p <MirrorServerPort> \\ -s <ContentServerAddress1:ContentServerPort1:dirorfile1:delay1, \\

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Ενσωματωμένα Συστήματα

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Λειτουργικά Συστήµατα

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Υλοποίηση Γέφυρας με την Χρήση Σημείου Πρόσβασης

Αντικειμενοστρεφής Προγραμματισμός

1. Ουρά α. Απώθηση 2. Στοίβα β. Εξαγωγή γ. Ώθηση δ. Εισαγωγή

HY-486 Αρχές Κατανεμημένου Υπολογισμού

Εφαρμογές Σειριακής Επικοινωνίας

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

Νέα λειτουργικότητα - Βελτιώσεις. Έκδοση /02/2016. Ημ/νία έκδοσης 10/02/2016 1

Transcript:

Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό εξάμηνο 2017-2018 Στα πλαίσια της 2 ης άσκησης καλείστε να ολοκληρώσετε το σύστημα τ η ς απομακρυσμένης διαχείρισης συσκευών μέσω σημάτων που παράγονται από τον ανθρώπινο εγκέφαλο. Η βασική λογική πίσω από αυτό το παραδοτέο είναι η java εφαρμογή μέσω classification να αποφασίζει για την εντολή η οποία θα σταλθεί στο android τερματικό για εκτέλεση. Οι δυνατές εντολές που υπάρχουν είναι Μάτια Ανοιχτά(Eyes Opened) που ισοδυναμεί με την εκτέλεση των ειδοποιήσεων για ON και Μάτια Κλειστά(Eyes Closed) που ισοδυναμεί με την εκτέλεση των ειδοποιήσεων για OFF που περιεγράφηκαν στο 1 ο παραδοτέο. Κατά τη διάρκεια του πρώτου μέρους της εργασίας, κάθε φοιτητής συμμετείχε στη συλλογή μη προσωποποιημένων δεδομένων με τη χρήση του φορητού εγκεφαλογραφήματος Emotiv EPOC+. Κατά το στάδιο της διεξαγωγής των πειραμάτων τα δεδομένα που παράχθηκαν από τους 14 αισθητήρες, από τους οποίους απαρτίζεται η συσκευή Emotiv, εξάχθηκαν αρχεία τύπου CSV. Οι τιμές των CSV αρχείων ακολουθούν την παρακάτω δομή: Τα πρώτα δεκατέσσερα στοιχεία αντιπροσωπεύουν τις τιμές των 14 αισθητήρων (channels) του Emotiv και τα οποία είναι: AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4 Η γραφική απεικόνιση της θέσης του κάθε αισθητήρα είναι αυτή που παρουσιάζεται στην παρακάτω Εικόνα. Τα επόμενα δεκατέσσερα στοιχεία αντιπροσωπεύουν την ποιότητα σύνδεσης των 14 αισθητήρων με το ανθρώπινο κεφάλι κατά τη διάρκεια συλλογής δεδομένων και τα οποία είναι: CQ_AF3, CQ_F7, CQ_F3, CQ_FC5, CQ_T7, CQ_P7, CQ_O1, CQ_O2, CQ_P8, CQ_T8, CQ_FC6, CQ_F4, CQ_F8, CQ_AF4

Οι δυνατές τιμές της ποιότητας σύνδεσης είναι 0, 1, 2, 3, 4 με το 0 να συμβολίζει την αδυναμία επαφής και το 4 τη βέλτιστη ποιότητα σύνδεσης. Όσον αφορά τα τελευταία δύο στοιχεία ισχύουν τα εξής: Ο Marker είναι η μεταβλητή που δηλώνει την έναρξη ή τη λήξη κάποιου event/περιοχή ενδιαφέροντος (π.χ σε αυτό το σημείο ξεκίνησε ο χρήστης να κλείνει τα μάτια του), ορίζεται μέσω συντόμευσης κατά τη φάση της δειγματοληψίας. Ο MarkerH είναι μεταβλητή με τιμή που καθορίζει με ποιο Hardware Input (π.χ πληκτρολόγιο, ποντίκι) ορίστηκε ο Μarker. Στα CSV αρχεία που περιέχουν τις τιμές δειγματοληψίας, μεταξύ δύο μη μηδενικών Marker λαμβάνει χώρα κάποιο event, όπως κλειστά ή ανοιχτά μάτια. Μία γραφική απεικόνιση της λειτουργίας των Marker φαίνεται στην παρακάτω εικόνα. Πιο αναλυτικά: Καλείστε να υλοποιήσετε ένα σύστημα με πολλαπλούς publishers/subscribers κι έναν broker/controller, το οποίο θα αποτελείται από τέσσερα επιμέρους υποσυστήματα: 1. Communication System - CS (Πρώτο Παραδοτέο) 2. ΙοΤ Broker & IoT Controller (Πρώτο Παραδοτέο) 3. Automation System - AS (Δεύτερο Παραδοτέο) 4. Computational Service (Δεύτερο Παραδοτέο) Δεύτερο Παραδοτέο Για κάθε αρχείο CSV, το σύνολο των οποίων θα παρέχεται μέσω του eclass θα πρέπει να υπολογιστεί η εντροπία των τιμών για κάθε ένα από τα 14 channel. Ο κώδικας υπολογισμού εντροπίας παρέχεται στο eclass στο αρχείο calculateentropy.java. Αυτό σημαίνει ότι το τελικό feature vector για κάθε CSV αρχείο θα πρέπει να είναι ένα διάνυσμα της μορφής <Entropy AF3, Entropy F7,, Entropy AF4 >. Επιπρόσθετα μαζί με την εντροπία θα πρέπει να αποθηκεύεται κάθε φορά και το όνομα του πειράματος(eyes Opened/Closed). Το όνομα του πειράματος μπορεί πολύ εύκολα να εξαχθεί από το όνομα του CSV. Η τελική δομή που αφορά την εντροπία φαίνεται γραφικά στο σχήμα που ακολουθεί. Στην συνέχεια θα χρησιμοποιηθούν τα παραπάνω feature vector ως δεδομένα προς κατηγοριοποίηση για την παραλλαγή του classification αλγορίθμου Weighted knn που περιγράφεται παρακάτω. Το training σύνολο Χ που απαιτείται για την υλοποίηση του αλγορίθμου

θα παρέχεται στο eclass υπό μορφή CSV αρχείου. Σχετικά τώρα με το training set πρέπει να αναφερθούν τα εξής: Η 1 η στήλη περιέχει το όνομα του πειράματος(eyes Closed/Opened). Οι επόμενες 14 στήλες είναι οι εντροπίες/feature vector για καθένα από τα 14 channels. Κάθε γραμμή ισοδυναμεί με ένα πείραμα. Γραφικά τα παραπάνω αναπαριστάνονται ως εξής: Σας ζητείται να υλοποιήσετε σε java κώδικα τον παρακάτω ψευδοκώδικα του classification αλγορίθμου. Ψευδο-κώδικας παραλλαγής του knn Αλγορίθμου Απώτερος σκοπός του αλγορίθμου είναι δοθέντος ενός διανύσματος x να βρεθούν οι k κοντινότεροι γείτονές τους. Το διάνυσμα x θα κατηγοριοποιηθεί στην κλάση στην οποία ανήκει η πλειοψηφία των k γειτόνων του. Έστω X τα ήδη κατηγοριοποιημένα δεδομένα, Υ τα Labels για τις κλάσεις (στην συγκεκριμένη εφαρμογή υπάρχουν μόνο 2 κλάσεις με ονόματα EyesClosed και EyesOpened) και x το διάνυσμα προς κατηγοριοποίηση και m το μέγεθος των κατηγοριοποιημένων δεδομένων. For i = 1 to m do Υπολογισμός EuclideanDistance d(χ i, x) End for Υπολογισμός του συνόλου Ι μέσα στο οποίο θα βρίσκονται οι k μικρότερες αποστάσεις d(x i, x). Υπολογισμός counter που δηλώνει τον αριθμό των Y i μέσα στο I Υπολογισμός της μετρικής βάρους w yi = w yi + 1/d(X i, x) για κάθε X i στο σύνολο των k γειτόνων με Label Y i. Επιστροφή το Y i με για το οποίο το w yi counter παίρνει την μεγαλύτερη τιμή. Σημείωση! Η επιλογή του k είναι ανοιχτή. Συνήθως οι τιμές του είναι περιττοί αριθμοί για να αποφεύγονται οι ισοψηφίες. Συνήθεις τιμές είναι 3,5,7,11. Στην συνέχεια, κάθε νέο διάνυσμα(όχι τα διανύσματα του training set) το οποίο κατηγοριοποιείται σε μία από τις 2 κλάσεις θα πρέπει να μπαίνει σε ένα ενταμιευτή-buffer υπό την μορφή εντολής ώστε να σταλθεί στο τερματικό android. Για παράδειγμα εάν ένα feature vector κατηγοριοποιήθηκε στην κλάση EyesClosed θα μπορούσε να μπει στον buffer ως «Execute Eyes Closed» Παράλληλα με το γέμισμα του buffer θα πρέπει να υπάρχει ένα ακόμα Thread το οποίο θα παίρνει σειριακά τις εντολές από τον buffer και θα τις στέλνει στο τερματικό android. Κάθε εντολή που

αποστέλλεται θα πρέπει να αφαιρείται από τον buffer. Εδώ πέρα σημαντικό είναι να τονιστεί ότι θα πρέπει να υπάρχει συγχρονισμός για την πρόσβαση στον buffer. Σημαντικό επίσης είναι να αναφερθεί το ποιος θα είναι ο ρυθμός με τον οποίον θα στέλνει η java εφαρμογή τις εντολές στο android τερματικό. Αυτός ο ρυθμός/συχνότητα θα πρέπει να ορίζεται από το ίδιο το android τερματικό μέσω του ήδη υλοποιημένου «options menu». Οπότε σε αυτήν την φάση της εργασίας θα γίνει μία επέκταση του «options menu» και θα περιέχει πλέον 3 επιλογές: Δυνατότητα παραμετροποίησης της IP και του port στα οποία μπορεί το android τερματικό να βρει τον broker. Δυνατότητα παραμετροποίησης της συχνότητας με την οποία θα πρέπει η java εφαρμογή να στέλνει τις εντολές. Προτείνεται η συχνότητα να έχει την μορφή δευτερολέπτων ώστε να μην υπάρχει συμφόρηση εντολών. Την επιλογή εξόδου από την εφαρμογή(exit). Επιπρόσθετα θα πρέπει να γίνει μία επέκταση της λειτουργικότητας του android τερματικού με την ύπαρξη ενός thread το οποίο θα εκτελείται στον background και θα ελέγχει περιοδικά για την ύπαρξη σύνδεσης στο διαδίκτυο. Σε περίπτωση που δεν υπάρχει θα πρέπει να προτείνει στον χρήστη να ενεργοποιεί την σύνδεση. Η ενεργοποίηση της σύνδεση θα μπορεί να γίνεται είτε αυτόματα είτε χειροκίνητα. Δεν υπάρχει κάποιος περιορισμός πάνω στον τρόπο με τον οποίο πρέπει να γίνεται η ενεργοποίηση. Τέλος θα πρέπει να γίνουν μερικές ακόμα επεκτάσεις την java εφαρμογή που έχουν ως σκοπό την παρακολούθηση την επιτυχίας του αλγορίθμου κατηγοριοποίησης. Πιο συγκεκριμένα: Θα πρέπει να γίνεται διασταύρωση μεταξύ της κλάσης στην οποία τελικά κατηγοριοποιήθηκε το δείγμα και της πραγματικής κλάσης του δείγματος(η οποία όπως αναφέρθηκε και στις προηγούμενες σελίδες μπορεί να παρθεί από το όνομα του αρχείου). Στην κονσόλα της java εφαρμογής θα πρέπει κάθε φορά που αποστέλλεται μία εντολή προς το android τερματικό να τυπώνεται η κλάση στην οποία τελικά κατηγοριοποιήθηκε το δείγμα καθώς και η πραγματική κλάση του δείγματος μαζί με ένα μήνυμα επιτυχίας ή αποτυχίας. Η επιτυχία θα είναι εάν η πραγματική κλάση είναι ίδια με την κλάση στην οποία κατηγοριοποιήθηκε το δείγμα και η αποτυχία θα προκύπτει από το αν τελικά οι 2 κλάσεις ήταν διαφορετικές. Με την ολοκλήρωση του προγράμματος θα πρέπει να εμφανίζεται ένα συνολικό ποσοστό επιτυχίας του αλγορίθμου κατηγοριοποίησης. Το ποσοστό επιτυχίας ορίζεται από το πόσα δείγματα τελικά κατηγοριοποιήθηκαν στις σωστές κλάσεις. Επιπρόσθετα σε αυτό το παραδοτέο θα πρέπει να παραδοθεί και ένα αρχείο README το οποίο θα περιέχει αναλυτικά τον τρόπο λειτουργίας του προγράμματος. Θα ακολουθήσει ανακοίνωση προς το τέλος της διορίας παράδοσης με αναλυτικές λεπτομέρειες.

Τεχνολογίες συστήματος ανάπτυξης: 1. Java Oracle SE 8 2. Android API 4.1 ή νεότερο 3. Android Studio (Εργαλείο ανάπτυξης της εφαρμογής Android) 4. IntelliJ IDEA (Εργαλείο ανάπτυξης της Java εφαρμογής) 5. MQTT mosquitto broker 6. Eclipse Paho (Java & Android MQTT client) Κατά τη διαδικασία της ανάπτυξης της εργασίας είναι η υποχρεωτική η χρήση του εργαλείου Git (Version Control) και της πλατφόρμας gitlab (anapgit.scanlab.gr) που παραχωρείται για τις ανάγκες του μαθήματος. Η υλοποίηση της εφαρμογής θα πρέπει: 1. Να υπακούει στις αρχές του αντικειμενοστραφούς προγραμματισμού 2. Να γίνεται σωστή και αποδοτική οργάνωση του κώδικα σε κλάσεις και πακέτα. 3. Να είναι όσο το δυνατό παραμετροποιήσιμη και δυναμική γίνεται. 4. Να γίνεται σωστή και αποδοτική διαχείριση της μνήμης.