Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων"

Transcript

1 Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων "Σχεδίαση και Υλοποίηση συμπεριφορικών παιγνίων για σύγχρονες Πλατφόρμες Κινητών Συσκευών" ("Design and Implementation of Behavioral-driven games for modern mobile platforms") Διπλωματική Εργασία Βασίλειος Βικτωράτος Κωνσταντίνος Φιλιππίδης Επιβλέπων Καθηγητής: Γεώργιος Καμπουράκης Επίκουρος Καθηγητής Καρλόβασι, Ιούνιος 2012

2 2

3 Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων "Σχεδίαση και Υλοποίηση συμπεριφορικών παιγνίων για σύγχρονες Πλατφόρμες Κινητών Συσκευών" ("Design and Implementation of Behavioral-driven games for modern mobile platforms") Διπλωματική Εργασία Βασίλειος Βικτωράτος Κωνσταντίνος Φιλιππίδης Επιβλέπων Καθηγητής: Γεώργιος Καμπουράκης Επίκουρος Καθηγητής Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 14 η Ιουνίου Γεώργιος Καμπουράκης Σπύρος Κοκολάκης Εμμανουήλ Μαραγκουδάκης Επίκουρος Καθηγητής Επίκουρος Καθηγητής Λέκτορας Καρλόβασι, Ιούνιος

4 ΠΕΡΙΛΗΨΗ Στο πλαίσιο της παρούσας εργασίας αναπτύσσουμε μια πρότυπη εφαρμογή παιγνίου που είναι ικανή να εκτελείται στο λειτουργικό σύστημα Android. Αρχικά, η εφαρμογή απαιτεί από το χρήστη να δημιουργήσει το δικό του λογαριασμό και να παίξει το παιχνίδι σε τρεις πίστες διαφορετικής δυσκολίας η κάθεμια. Στη συνέχεια, χρησιμοποιώντας τεχνικές μηχανικής μάθησης, γίνεται επεξεργασία των δεδομένων που συλλέχτηκαν από την αλληλεπίδραση της εφαρμογής με το χρήστη. Στόχος είναι η ανάπτυξη μιας λογικής, που θα καταστήσει το λογισμικό ικανό να αντιδρά αυτόματα στις ενέργειες του χρήστη αυξομοιώνοντας έτσι δυναμικά το επίπεδο δυσκολίας του παιγνίου. Αυτό καθιστά το λογισμικό περισσότερο ευχάριστο. Λέξεις κλειδιά: μηχανική μάθηση, Παίγνια, Εφαρμογή για κινητές συσκευές, Πλατφόρμα Google Android. 4

5 ABSTRACT The main goal of this Diploma Thesis is the development of a behavior-driven game for the Android platform. In this application the user is able to create a profile, and play it in three different levels of difficulty. The behavioural data collected during this preliminary phase are analyzed with the use of machine learning algorithms to create the user profile. The latter is is used by the application (in terms of another level of difficulty called auto mode) the next time that the user logs in to play the game. The purpose of the analysis is to create a logic that will enable the game to adjust its difficulty in automatic way proportional to the way the user reacts. This way the interaction with the game becomes much more real, spontaneous, and fun. Key Words: Android, machine learning, mobile game application. 5

6 ΕΥΧΑΡΙΣΤΙΕΣ Η παρούσα διπλωματική μελέτη εκπονήθηκε από τους φοιτητές Βασίλειο Βικτωράτο και Κωνσταντίνο Φιλιππίδη του τμήματος Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων του Πανεπιστημίου Αιγαίου. Μέσω της διπλωματικής αυτής εργασίας μας δόθηκε η δυνατότητα να διευρύνουμε τις γνώσεις μας στον κλάδο του προγραμματισμού και ειδικότερα στον προγραμματισμό για κινητά τηλέφωνα, εργαζόμενοι πάνω σε μια νέα εφαρμογή για έξυπνα κινητά τηλέφωνα με λογισμικό android. Θα θέλαμε να ευχαριστήσουμε τον Επικ. Καθηγητή Γεώργιο Καμπουράκη, για την καθοδήγηση, την υποστήριξη και τη βοήθειά του καθ όλη τη διάρκεια διεκπεραίωσης της παρούσας μελέτης. Ιδιαίτερες ευχαριστίες θα θέλαμε να απευθύνουμε στον Υπ. Διδάκτορα Δημήτριο Δαμόπουλο,για την πολύτιμη βοήθεια που μας πρόσφερε, για τις γνώσεις που μας παρείχε, αλλά και για το αμείωτο ενδιαφέρον του και υπομονή του κατά τη συγγραφή και διόρθωση της εργασίας. Τον ευχαριστούμε θερμά για τη συνεργασία και το ενδιαφέρον του. Τέλος, ευχαριστίες οφείλουμε στις οικογένειες μας και στους φίλους μας, για την ηθική υποστήριξη και βοήθεια όλα τα χρόνια των σπουδών μας, όπως επίσης για την κατανόηση και την ενθάρρυνση κατά τη διάρκεια εκπόνησης της πτυχιακής μας μελέτης. 6

7 Περιεχόμενα ΠΕΡΙΛΗΨΗ... 4 ABSTRACT... 5 ΕΥΧΑΡΙΣΤΙΕΣ... 6 Πίνακας Σχημάτων... 9 Λίστα πινάκων Λίστα Ακρονύμιων Εισαγωγή Αντικείμενο Διπλωματικής Δομή κεφαλαίων Εισαγωγή στην τεχνολογία του Android και τη Μηχανική Μάθηση Τι είναι το Αndroid Αρχιτεκτονική Android Πυρήνας Linux Βιβλιοθήκες-Libraries Χρόνος Εκτέλεσης Android Runtime Πλαίσιο Εφαρμογής Application Framework Εφαρμογές Εκδόσεις και χαρακτηριστικά του Android Android 1.5 ( Cupcake ) Android 1.6 (Donut) Android 2.0 (Éclair) Android 2.2 (Froyo) Android 2.3 (Gingerbread) Android 3.0 (Honeycomb) Android 4.0 (Ice Scream Sandwich) Μηχανική Μάθηση Τι είναι η Μηχανική Μάθηση Μηχανική Μάθηση και Παιχνίδια Οι προκλήσεις της Μηχανικής Μάθησης στο χώρο του Game-playing Λογισμικό που χρησιμοποιήθηκε Το προγραμματιστικό περιβάλλον Eclipse WEKA

8 3.2.1 Το γραφικό περιβέλλον του WEKA Sprite Sheet Packer Συναφείς εργασίες (Related Work) General Game Learning using Knowledge Transfer A Machine Learning in Playing Ayo Game Search and Learning (SAL) Data Mining for Player Modeling in Videogames Αρχιτεκτονική της εφαρμογής Εισαγωγή Περιγραφή Δομή Ανάλυση της εφαρμογής Εισαγωγή Αρχική Οθόνη Οθόνη επιλογής επιπέδων Η Βάση Δεδομένων Ανάλυση Δεδομένων Αλγόριθμοι μηχανικής μάθησης Test Options Πειράματα στο WEKA Το αρχείο.arff Εφαρμογή του αλγόριθμου μάθησης Συμπεράσματα και περαιτέρω εξέλιξη Βιβλιογραφία Παράρτημα Ι Παράρτημα ΙΙ

9 Πίνακας Σχημάτων Σχήμα 1 Αρχιτεκτονική Android [1] Σχήμα 2. Ο κύκλος ζωής μιας δραστητιότητας Android.[1].... Error! Bookmark not defined.8 Σχήμα 3. Λογότυπο Android 1.5 Cupcake [3].... Error! Bookmark not defined.9 Σχήμα 4. Λογότυπο Android 1.6- Donut [3] Σχήμα 5. Λογότυπο Android 2.0 Éclair [3] Σχήμα 6. Λογότυπο Android 2.2 Froyo [3] Σχήμα 7. Λογότυπο Android 2.3 Gingerbread [3] Σχήμα 8. Λογότυπο Android 3.0 Honeycomb [3] Σχήμα 9. Λογότυπο Android 4.0- Ice Scream Sandwich[3] Σχήμα 10. Κατανομή εκδόσεων Android Σχήμα 11.Το περιβάλλον του Eclipse Σχήμα 12. Android Emulator Σχήμα 13. Περιβάλλον διεπαφής Σχήμα 14. Explorer Σχήμα 15.Το γραφικό περιβάλλον του προγράμματος Sprite Sheet Packer Σχήμα 16. Η αρχική εικόνα και το spite sheet που μας έδωσε το πρόγραμμα για τη μπάλα του ποδοσφαίρου Σχήμα 17. Η αρχική εικόνα και το spite sheet που μας έδωσε το πρόγραμμα για τη μπάλα του μπάσκετ Σχήμα 18. Δομή εφαρμογής Σχήμα 19. Το περιεχόμενο του φακελου src Σχήμα 20. Το περιεχόμενο του φακέλου gen Σχήμα 21. Το περιεχόμενο του φακέλου Referenced Libraries Σχήμα 22. Το περιεχόμενο του φακέλου res Σχήμα 23. Η εφαρμογή εγκατεστημένη στο κινητό Σχήμα 24. Η Αρχική οθόνη της εφαρμογής Σχήμα 25. Εμφάνιση του μενού στο χρήστη Σχήμα 26. Οι πληροφορίες για την εφαρμογή Σχήμα 27. Δημιουργία λογαριασμού Σχήμα 28. Η επόμενη οθόνη με το που γίνει ο λογαριασμός χρήστη Σχήμα 29. Το interface του παιχνιδιού στο easy mode Σχήμα 30. Ήττα (αριστερά ) Νίκη (δεξιά) Σχήμα 31. Στιγμιότυπο του παιχνιδιού με πάτημα μπάλας ποδοσφαίρου Σχήμα 32. Στιγμιότυπο του παιχνιδιού με πάτημα μπάλας μπάσκετ...61 Σχήμα 33. Το επόμενο level που παίζει ο χρήστης είναι το normal mode.62 Σχήμα 34. Το interface του παιχνιδιού στο normal mode..64 Σχήμα 35. To επόμενο επίπεδο που θα παίξει ο χρήστης είναι το hard mode.. 64 Σχήμα 36. Το interface του παιχνιδιού στο hard mode...65 Σχήμα 37. Η μόνη επιλογή για το χρήστη είναι το auto mode...66 Σχήμα 38. Το interface του παιχνιδιού στο auto mode Σχήμα 39. Μετά το τέλος των τριών επιπέδων ο χρήστης παίζει στο auto mode...68 Σχήμα 40. Το arff αρχείο ενός χρήστη.. 73 Σχήμα 41. Το arff αρχείο για όλους τους χρήστες μαζί

10 Σχήμα 42. Απότελέσματα για ένα χρήστη στο weka από τον αλγόριθμο Ibk..78 Σχήμα 43. Απότελέσματα για ένα χρήστη στο weka από τον αλγόριθμο Ibk..80 Λίστα πινάκων Πίνακας 1. Μέσοι όροι για τα αποτελέσματα με όλα τα δεδομένα Πίνακας 2. Μέσοι όροι για όλα τα δεδομένα χωρίς το είδος Πίνακας 3. Μέσοι όροι για τα χαρακτηιριστικά κλικ,χ,ψ, είδος Πίνακας 4. Μέσοι όροι μόνο για το είδος Πίνακας 5. Ποσοστά για όλα τα χαρακτηριστικά Πίνακας 6. Ποσοστά για τα χαρακτηριστικά εκτός του είδους Πίνακας 7.Ποσοστά μόνο για το χαρκτηριστικό είδος Πίνακας 8. Συγκεντρωτικά στοιχεία από ερωτηματολόγιο για το Eπίπεδο Easy Πίνακας 9. Συγκεντρωτικά στοιχεία από ερωτηματολόγιο για το Επίπεδο Normal Πίνακας 10. Συγκεντρωτικά στοιχεία από ερωτηματολόγιο για το Επίπεδο Hard Λίστα Ακρονύμιων Android Asset Packaging Tool Android Debug Bridge Android Development Tools Android Interface Description Language Αpplication Programming Interface Android Virtual Device Audio/Video Remote Control Profile Dalvik Debug Monitor Service False Positive False Positve Rate Game description language General Game playing Generated (Java Files) AAPT ADB ADT AIDL API AVD AVRCP DDMS FP FPR GDL GGP gen 10

11 Global Positioning System Graphical User Interface Java Development Kit K-Nearest Neighbor Near Field Communication Operation System Personal Computer Precision Radial Basis Function Resources Search and Learning Softaware Development Kit Source True Positive True Positive Rate Universal Serial Bus User Interface Waikato Environment for Knowledge Learning GPS GUI JDK K-NN ΝFC OS pc p RBF Res SAL SDK src TP TPR USB UI WEKA 11

12 1. Εισαγωγή 1.1 Αντικείμενο Διπλωματικής Αντικείμενο της παρούσας διπλωματικής εργασίας είναι η ανάπτυξη μιας έξυπνης εφαρμογής παιγνίου για το λειτουργικό σύστημα Android. Η εφαρμογή αυτή θα επιτρέπει στο χρήστη: 1. να δημιουργεί λογαριασμό, 2. να παίζει το παιχνίδι σε 3 επίπεδα (πίστες) με διαφορετικό συντελεστή δυσκολίας. Αυτή η διαδικασία επαναλαμβάνεται άπαξ για κάθε χρήστη, 3. να επανασυνδέεται όσες φορές επιθυμεί για να αλληλεπιδράσει με το παιχνίδι στο αυτόματο επίπεδο. Για να μπορεί όμως ο χρήστης να παίξει στο αυτόματο επίπεδο θα πρέπει πρώτα να αξιοποιηθεί η προσφορότερη μέθοδος μηχανικής μάθησης, η οποία θα βασίζεται στα δεδομένα που θα έχουν συλλεχθεί κατά τη διάρκεια που ο χρήστης θα αλληλεπιδρά με τις 3 πρώτες πίστες του παιχνιδιού. Επίσης, στο πλαίσο της παρούσας διπλωματικής, περιγράφεται και μελετάται το Software Development Kit (SDK) του σύγχρονου λειτουργικού συστήματος Android της Google. Επιπλέον, μελετάται η αρχιτεκτονική του συστήματος και αναλύονται οι κυριότερες συνιστώσες του. 1.2 Δομή κεφαλαίων Η διπλωματική αυτή εργασία αναλύεται σε 9 κεφάλαια. Παρακάτω αναφέρεται περιληπτικά τι περιγράφεται σε κάθε ένα κεφάλαιο. Στο Κεφάλαιο 1 περιγράφεται το αντικείμενο της διπλωματικής και παρουσιάζεται η δομή της. Στο Κεφάλαιο 2 εισάγεται ο αναγνώστης στις τεχνολογίες που βασίστηκε η παρούσα διπλωματική εργασία. Αρχικά, γίνεται αναφορά στις τεχνολογίες που χρησιμοποιούνται από τις σύγχρονες κινητές συσκευές, και στη συνέχεια εστιάζουμε στις έννοιες της Μηχανικής Μάθησης. 12

13 Στο Κεφάλαιο 3 περιγράφεται το λογισμικό που χρησιμοποιήθηκε για τις ανάγκες της διπλωματικής εργασίας. Επεξηγούνται οι βασικές συνιστώσες του γραφικού περιβάλλοντος του Eclipse (χρησιμοποιήθηκε για τη συγγραφή του κώδικα) καθώς επίσης και του περιβάλλοντος του WEKA (αξιοποιήθηκε κατά τη διάρκεια των πειραμάτων). Στο Κεφάλαιο 4 γίνεται αναφορά σε συστήματα μηχανικής μάθησης που αναπτύχθηκαν στο χώρο των εφαρμογών-παιγνίων. Στο Κεφάλαιο 5 αναλύεται η δομή της εφαρμογής, δηλαδή από ποια αρχεία αποτελείται και ποια ακριβώς είναι η χρήση του καθενός. Στο Κεφάλαιο 6 παρουσιάζονται διεξοδικά όλες οι λειτουργίες της εφαρμογής και οι επιλογές που έχει ο χρήστης όταν αλληλεπιδρά με αυτή. Περιγράφεται κάθε διαφορετική οθόνη διεπαφής χρήστη της εφαρμογής, οι επιλογές του χρήστη για καθεμιά από αυτές, καθώς και ο τρόπος υλοποίησης των λειτουργιών στο προγραμματιστικό περιβάλλον. Στο Κεφάλαιο 7 περιγράφεται η διαδικασία των πειραμάτων, με τα δεδομένα που συλλέξαμε από τους χρήστες που δοκίμασαν την εφαρμογή, στο περιβάλλον του Weka. Στη συνέχεια επιλέχθηκε ο καλύτερος αλγόριθμος μάθησης που χρησιμοποιείται και στην εφαρμογή. Στο Κεφάλαιο 8 περιγράφονται οι μέθοδοι που χρησιμοποιούνται για τον αλγόριθμο μάθησης που αξιοποιήθηκε στην εφαρμογή. Στο Κεφάλαιο 9 παρουσιάζονται τα συμπεράσματα που προκύπτουν από την εκπόνηση της εργασίας αυτής καθώς και προτάσεις για περαιτέρω εξέλιξη. 13

14 2. Εισαγωγή στην τεχνολογία του Android και τη Μηχανική Μάθηση Σε αυτό το κεφάλαιο γίνεται αναφορά στις τεχνολογίες στις οποίες βασίστηκε η παρούσα διπλωματική εργασία. 2.1 Τι είναι το Αndroid Η λέξη Android προέρχεται από την ελληνική σύνθετη λέξη ανδροειδές, που χρησιμοποιείται για να περιγράψει ένα ον το οποίο συμπεριφέρεται ως άνθρωπος. Έτσι, ο όρος android χρησιμοποιείται για να περιγράψει το ρομπότ που μοιάζει και ενεργεί ως άνθρωπος. Το Android είναι μια στοίβα λογισμικού για κινητές συσκευές που αναπτύχθηκε από τη Google. Περιλαμβάνει ένα λειτουργικό σύστημα, ενδιάμεσο λογισμικό και τις βασικές εφαρμογές. Το Android SDK παρέχει τα εργαλεία και τα απαραίτητα APIs για να είναι εφικτή η ανάπτυξη εφαρμογών για την πλατφόρμα Android, χρησιμοποιώντας τη γλώσσα προγραμματισμού Java. To Android βασίζεται στον πυρήνα του λειτουργικού συστήματος Linux. Σε αντίθεση με τον ισχυρότερο ανταγωνιστή του, το IPhone OS, το Android είναι ανοιχτού λογισμικού. Αυτό σημαίνει ότι ο κάθε προγραμματιστής (developer) είναι ικανός να τροποποιεί και να προσαρμόζει το λειτουργικό σύστημα για καθεμία συσκευή ξεχωριστά. Έτσι, διαφορετικές κινητές συσκευές που χρησιμοποιούν το λογισμικό Android είναι δυνατό να έχουν διαφορετικά γραφικά για τις διεπαφές χρήστη, παρόλο που χρησιμοποιούν το ίδιο λειτουργικό σύστημα [1]. 2.2 Αρχιτεκτονική Android Η αρχιτεκτονική του λειτουργικού συστήματος Android αποτελείται από 5 βασικές συνιστώσες. Στην κορυφή βρίσκονται τα Applications (Εφαρμογές), και ακολουθούν τα πλαίσιο Εφαρμογής (Application Framework), Βιβλιοθήκες (Libraries), Χρόνος Εκτέλεσης (Android Runtime) και Πυρήνας Linux (Linux Kernel). Στο σχήμα 1 παρουσιάζονται τα 4 διακριτά επίπεδα της αρχιτεκτονικής του Android. Η λειτουργία των εν λόγω επιπέδων αναπτύσσεται στις υποενότητες που ακολουθούν. 14

15 Σχήμα 1. Αρχιτεκτονική Android [1] Πυρήνας Linux To Android βασίζεται στην έκδοση 2.6 των Linux για τις υπηρεσίες στο κεντρικό σύστημα, όπως ασφάλεια, διαχείριση μνήμης, διαχέιριση διεργασιών, δικτύωση καθώς και άλλες υπηρεσίες λειτουργικού συστήματος. Ο πυρήνας λειτουργεί ακόμα ως διαχωριστικό στρώμα μεταξύ του υλικού και του υπολοίπου λογισμικού [1] Βιβλιοθήκες-Libraries Το Android περιλαμβάνει ένα σύνολο από C/C++ βιβλιοθήκες που χρησιμοποιούνται από διάφορες συνιστώσες του λειτουργικού συστήματος [1]. Αυτές οι δυνατότητες προσφέρονται στους προγραμματιστές (developers) μέσω του πλαισίου εφαρμογής του Android. Μερικές από τις βασικές βιβλιοθήκες που παρέχει το εν λόγω λειτουργικό σύστημα είναι οι εξής: System C library Media libraries Surface Manager LibWebCore SGL 15

16 3D libraries Free Type SQLite Χρόνος Εκτέλεσης Android Runtime Στο επίπεδο των βιβλιοθηκών περιλαμβάνεται και ο χρόνος εκτέλεσης Android. Σε αυτό το επίπεδο υπάρχουν οι βασικές βιβλιοθήκες της JAVA καθώς επίσης και η εικονική μηχανή Dalvik. Κάθε εφαρμογή Android εκτελεί τη διαδικασία της με δική της πρωτοβουλία στην εικονική μηχανή Dalvik. H Dalvik είναι μια βελτιστοποιημένη υλοποίηση μιας εικονικής μηχανής Java για φορητές συσκευές από τη Google. Η Dalvik τρέχει.dex αρχεία, τα οποία είναι bytecodes που προέρχονται από αρχεία.class και.jar. Σε αντίθεση όμως με τα.class αρχεία, τα.dex είναι πολύ πιο συμπαγή και αποδοτικά, γεγονός ιδιαίτερα σημαντικό για συσκευές με περιορισμένη μνήμη, υπολογιστικούς πόρους και μπαταρία. Η εικονική μηχανή Dalvik βασίζεται στον πυρήνα Linux για τη λειτουργικότητα των διεργασιών της, όπως το threading, και της διαχείρισης μνήμης της στο χαμηλό επίπεδο μνήμης [1] Πλαίσιο Εφαρμογής Application Framework Υπεράνω του επίπεδου των βιβλιοθηκών και του χρόνου εκτέλεσης βρίσκεται το πλαίσιο εφαρμογής. Το συγκεκριμένο επίπεδο παρέχει υψηλού επιπέδου δομικές μονάδες τις οποίες μπορούμε να χρησιμοποιούμε για τη συγγραφή των εφαρμογών μας. Αυτό το πλαίσιο είναι προ-εγκατεστημένο στο Android, αλλά είναι εύκολα επεκτάσιμο, δεδομένου ότι ο κάθε κατασκευαστής μπορεί να συμπληρώσει βιβλιοθήκες που δεν υπήρχαν. Τα σημαντικότερα δομικά στοιχεία του πλαισίου αυτού είναι: View System: Επιτρέπει τη χρήση λιστών, πλαισίων, πεδίων κειμένου, κουμπιών κλπ. Content Providers- Πάροχος Περιεχομένου: Επιτρέπει στις εφαρμογές να έχουν πρόσβαση σε δεδομένα άλλων εφαρμογών (όπως οι Επαφές) ή το διαμοιρασμό των δικών τους δεδομένων. 16

17 Resource Manager Διαχειριστής Πόρων: Παρέχει πρόσβαση σε πόρους, οι οποίοι είναι οτιδήποτε υπάρχει σε ένα πρόγραμμα και δεν είναι κώδικας π.χ. κωδικοί χρωμάτων, σχεδιαγράμματα, γραφικά κλπ. Notification Manager- Διαχειριστής Κοινοποιήσεων: Επιτρέπει σε όλες τις εφαρμογές να εμφανίσουν μηνύματα για να ενημερώσουν το χρήστη για τα γεγονότα που συμβαίνουν. Activity Manager-Διαχειριστής Δραστηριοτήτων: Διαχειρίζεται τον κύκλο ζωής μιας εφαρμογής και παρέχει τη δυνατότητα μετάβασης σε προηγούμενες καταστάσεις τους. Activity Manager-Διαχειριστής Εφαρμογών: Υπεύθυνο για τον έλεγχο του χρόνου ζωής των εφαρμογών και για τη διατήρηση μιας στοίβας που επιτρέπει την πλοήγηση του χρήστη σε προηγούμενες οθόνες. Στο σχήμα 2 παρουσιάζοται ο κύκλος ζωής μιας δραστηριότητας Android. 17

18 Σχήμα 2. Ο κύκλος ζωής μιας δραστηριότητας Android [1] Εφαρμογές Στο επίπεδο των εφαρμογών βρίσκονται όλες εκείνες οι εφαρμογές που χρησιμοποιεί ο χρήστης χωρίς να γνωρίζει τη διεργασία που γίνεται στα χαμηλότερα επίπεδα. Μερικές από αυτές τις εφαρμογές είναι ο Browser, client, SMS program, οι επαφές, το ημερολόγιο, χάρτες κλπ. Όπως ήδη αναφέρθηκε όλες οι εφαρμογές είναι γραμμένες στη γλώσσα προγραμματισμού JAVA. 18

19 2.3 Εκδόσεις και χαρακτηριστικά του Android Η πρώτη έκδοση του Android SDK παρουσιάστηκε το Νοέμβριο του 2007.Στις 23 Σεπτεμβρίου 2008 κυκλοφόρησε η πρώτη έξυπνη συσκευή, το HTC Dream G1, που λειτουργεί με Android 1.0 [4]. Έπειτα ακολούθησε η έκδοση 1.1 το Φεβρουάριο του 2009, που επρόκειτο για την πρώτη αναβάθμιση της προηγούμενης έκδοσης, η οποία όμως δεν ήταν κάτι το επαναστατικό, καθώς πολλές λειτουργίες που σήμερα θεωρούνται απαραίτητες δεν υποστηρίζονταν, όπως η λειτουργία των κουμπιών αφής. Ωστόσο, για τα τότε δεδομένα, η έκδοση 1.1 ήταν ένα σημαντικό γεγονός. Έδειχνε ότι το Android επιδεχόταν αναβαθμίσεις, κάτι το οποίο άλλες πλατφόρμες δεν το υποστήριζαν, και ότι η όλη διαδικασία της αναβάθμισης ήταν μια εύκολη υπόθεση για το χρήστη [5] Android 1.5 ( Cupcake ) Σχήμα 3. Λογότυπο Android 1.5 Cupcake [3] Το Android 1.5 ή Cupcake, του οποίου το λογότυπο παρουσιάζεται στο σχήμα 3, δόθηκε σε κυκλοφορία στις 30 Απριλίου 2009, εισάγωντας νέα χαρακτηριστικά και ανανεώσεις στη διεπαφή χρήστη (user Interface): Υποστήριξη Bluetooth A2DP και AVRCP Έξυπνο πληκτρολόγιο Δυνατότητα καταγραφής και παρακολούθησης βίντεο Επανασχεδιασμό του Android Market: με κατηγορίες και φίλτρα (Top Free, top Paid) Ταχύτερη απόκριση θέσης GPS Νέες λειτουργίες για την κάμερα της συσκευής 19

20 2.3.2 Android 1.6 (Donut) Σχήμα 4. Λογότυπο Android 1.6- Donut [3] Το Android 1.6 ή Donut, του οποίου το λογότυπο παρουσιάζεται στο σχήμα 4, κυκλοφόρησε το Σεπτέμβριο του Στα νέα χαρακτηριστικά που εισήγαγε ήταν [3]: Ταχύτερη απόκριση Νέες λειτουργίες για διαγραφή πολλών αρχείων ταυτόχρονα Φωνητικές λειτουργίες Stereo Bluetooth Εικονικό πληκτρολόγιο Λειτουργίες αντιγραφής/επικόλυσης μέσα στον Browser 20

21 2.3.3 Android 2.0 (Éclair) Σχήμα 5. Λογότυπο Android 2.0 Éclair [3] Στη συνέχεια έχουμε την έκδοση Android 2.0 ή Éclair το Νοέμβριο του 2009, καθώς και τις επανεκδόσεις του σε Android ή Éclair 0.1 το Δεκέμβριο του 2009 και τον Ιανουάριο του 2010 το Android 2.1 ή Éclair MR1, στο σχήμα 5 παρουσιάζεται το λογότυπο της έκδοσης 2.0. Στις αλλαγές που ήρθαν μαζί του είναι και οι εξής [3][4]: Ανανέωση Πληκτρολογίου Νέα διεπαφή browser και υποστήριξη HTML5 Κλάση MotionEvent για την καλύτερη ανίχνευση των πολλαπλών γεγονότων αφής Αναβάθμιση Χαρτών Google (Google Maps 3.1.2) Bluetooth 2.1 Νέα χαρακτηριστικά ημερολογίου Υποστήριξη φλας, ψηφιακό ζουμ, ισοροπία λευκού, color effect Πολλαπλοί λογαριασμοί και συγχρονισμός επαφών. 21

22 2.3.4 Android 2.2 (Froyo) Το Android 2.2 ή Froyo (βλ. σχήμα 6) κυκλοφόρησε το Μάϊο του Σχήμα 6. Λογότυπο Android 2.2 Froyo [3] Στα νέα του χαρακτηριστικά βρίσκονται : Βελτιστοποιήσεις σε μνήμη, απόδοση, ταχύτητα Υποστήριξη Adobe Flash 10.1 Υποστήριξη για εγκατάσταση εφαρμογών στην επεκτάσιμη μνήμη Μεταφόρτωση αρχείων στο browser Αυξημένη Υποστήριξη Microsoft Exchange Support Σύνδεση USB Ενσωµάτωση στη µηχανή αναζήτησης της µηχανής Javascript του Chrome V8 Φωνητική κλήση και διαµοιρασµός επαφών µε Bluetooth Ανανεωµένη εφαρµογή Αγοράς (Market) µε αυτόµατη ανανέωση 22

23 2.3.5 Android 2.3 (Gingerbread) Σχήμα 7. Λογότυπο Android 2.3 Gingerbread [3] Η επόμενη έκδοση Android 2.3 ή Gingerbread (βλ. σχήμα 7) κυκλοφόρησε το Δεκέμβριο του 2010 και έχει τις εξής επανεκδόσεις, Android (Φλεβάρη 2011), Android (Μάιος 2011), Android (Ιούλιος 2011), Android 2.3.6, Android [2][3][4]. H νέα έκδοση περιελάμβανε: Βελτιωμένη διεπαφή χρήστη (UI) για απλότητα και ταχύτητα Νέο πληκτρολόγιο για ταχύτερη εισαγωγή κειμένου Υποστήριξη βίντεο κλήσης Υποστήριξη πρωτοκόλλου WebM για αναπαραγωγή βίντεο και του ΑΑC για εγγραφή ήχου Νέος Download Manager Επιλογή λέξεων για λειτουργίες αντιγραφή /επικόλληση με ένα κλικ Βελτιώσεις στο λογισμικό κάμερας (Android 2.3.5) Βελτιώσεις στην απόδοση της μπαταρίας (Android 2.3.5) 23

24 2.3.6 Android 3.0 (Honeycomb) Σχήμα 8. Λογότυπο Android 3.0 Honeycomb [3] Στις 22 Φεβρουαρίου 2011 κυκλοφόρησε η επόμενη έκδοση Android 3.0, στο σχήμα 8 παρουσιάζεται το λογότυπο της έκδοσης. Αυτή η έκδοση αφορούσε περισσότερο τα tablet pcs και τις συσκευές με μεγαλύτερες οθόνες [3]. Μερικά από τα χαρακτηριστικά αυτής της έκδοσης είναι [2]: Υποστήριξη διπύρηνων και τετραπύρηνων επεξεργαστών Καλύτερη υποστήριξη για tablets Αναβαθμισμένο 3D UI Βίντεο μέσω του Google Talk Ιδιωτική περιήγηση 24

25 2.3.7 Android 4.0 (Ice Scream Sandwich) Σχήμα 9. Λογότυπο Android 4.0- Ice Scream Sandwich [3]. H νεότερη έκδοση και τελευταία μέχρι τη στιγμή της συγγραφής αυτής της διπλωματικής εργασίας, είναι η Android 4.0 (βλ. σχήμα 9). Δίνεται η δυνατότητα στους προγραμματιστές να χρησιμοποιήσουν μία πλατφόρμα και ένα ενοποιημένο API που τους επιτρέπει να αναπτύξουν και να λανσάρουν την εφαρμογή τους σε όλες τις συσκευές, εφόσον όμως αυτές τρέχουν την ίδια έκδοση λογισμικού [5]. Αυτό δείχνει την προσπάθεια της εταιρείας για ενιαίο λειτουργικό σύστηµα για όλες τις συσκευές. Τα χαρακτηριστικά της έκδοση αυτής είναι: Αναγνώριση προσώπου που επιτρέπει το ξεκλείδωμα της συσκευής (Face Unlock), Εφαρμογή Android Beam για μεταφορά δεδομένων μέσω ΝFC Καλύτερη αναγνώριση φωνής (λειτουργία Voice Typing) Browser (επιτρέπει έως 16 καρτέλες περιήγησης) Βελτιστοποίηση ταχύτητας και απόδοσης Εικονικά κουμπιά στη διεπαφή χρήστη Ανάλυση χρήσης δεδομένων Νέες εφαρμογές ημερολογίου και mail Το σχήμα 10, παρουσιάζει την κατανομή των εκδόσεων του Android στις συσκευές σύμφωνα με την τελέυταία μέτρηση που έγινε με βάσει την επισκεψιμότητα στο Google Play το τελευταίο δεκαπενθήμερο τον Απρίλιο του 2012 [6]. 25

26 Σχήμα 2. Κατανομή εκδόσεων Android. Όπως φαίνεται (βλ. σχήμα 10) το Gingerbread και συγκεκριμένα η έκδοση είναι εγκατεστημένη στις περισσότερες συσκευές Android, καταλαμβάνοντας ποσοστό 63.9 %. 2.4 Μηχανική Μάθηση Τι είναι η Μηχανική Μάθηση Η Μηχανική Μάθηση είναι ο προγραμματισμός των υπολογιστών με σκοπό να βελτιστοποιηθεί το κριτήριο απόδοσης χρησιμοποιώντας δεδομένα από παραδείγματα και εμπειρία παρελθόντος [7]. Χρειαζόμαστε τη μάθηση σε περιπτώσεις που μας είναι δύσκολο να γράψουμε ένα πρόγραμμα για τη λύση ενός δοθέντος προβλήματος, αλλά χρειαζόμαστε τα δεδομένα και την εμπειρία. Έχουμε διάφορες περιπτώσεις όπου η μηχανική μάθηση μας είναι απαραίτητη, παραδείγματος χάριν, στην περίπτωση όπου δεν υπάρχει ανθρώπινη εμπειρία ή και αν υπάρχει δεν μπορεί να εξηγηθεί. Ένα τέτοιο παράδειγμα είναι με την αναγνώριση της φωνής, όπου όλοι οι άνθρωποι το κάνουν ασυναίσθητα, αλλά κανένας δεν μπορεί να εξηγήσει πώς ακριβώς συμβαίνει. Η προσέγγιση για τη φωνητική αναγνώριση γίνεται με το να συλλέξουμε μια μεγάλη ποσότητα από δείγματα προφοράς και στη συνέχεια να αντιστοιχίσουμε τις προφορές με τις σωστές λέξεις. Μια άλλη περίπτωση είναι όταν 26

27 το πρόβλημα αλλάζει μέσα στο χρόνο ή εξαρτάται από τις διάφορες συνιστώσες ενός περιβάλλοντος. Αυτό που είναι θεμιτό, είναι να έχουμε γενικά συστήματα που να μπορούν να τροποποιηθούν για τις διάφορες συνιστώσες, από το να γραφτεί εκ νέου ένα διαφορετικό πρόγραμμα για κάθε ειδική περίπτωση [7]. Μέχρι στιγμής υπάρχουν πολλά τέτοια συστήματα μηχανικής μάθησης σε διάφορους τομείς. Μερικές τέτοιες περιπτώσεις είναι οι εξής: Οι επιχειρήσεις αναλύουν τα δεδομένα πωλήσεων με σκοπό να καταλάβουν τη συμπεριφορά των πελατών τους, με στόχο τη βελτίωση του μάνατζμεντ. Στη ρομποτική, η μάθηση χρησιμοποιείται με στόχο τη χρήση των λιγότερων πηγών για την εκτέλεση μιας διεργασίας. Στη βιοπληροφορική, ο τεράστιος όγκος από τα δεδομένα μπορεί να αναλυθεί και να προκύψει γνώση χρησιμοποιώντας μόνο υπολογιστές. Χωρίς αμφιβολία ο τομέας της μηχανικής μάθησης έχει ακόμα πάρα πολλά να προσφέρει καθώς βρίσκεται σε ένα πρώιμο στάδιο Μηχανική Μάθηση και Παιχνίδια Οι σχέσεις μεταξύ μηχανών, παιχνιδιών και σκέψης ήταν πάντα στο επίκεντρο των συζητήσεων. Με τη λειτουργία του ψηφιακού ηλεκτρονικού υπολογιστή το 1951 αυτές οι συζητήσεις ξεφεύγουν πια από το καθαρά θεωρητικό επίπεδο [9]. Τα παιχνίδια είναι μία περιοχή που ενδείκνυται για έρευνα, γενικότερα πάνω στην τεχνητή νοημοσύνη αλλά και ειδικότερα στη μηχανική μάθηση. Παραδοσιακά το κομμάτι της περιοχής των παιγνίων που συγκέντρωνε τις μελέτες για την εξόρυξη γνώσης ήταν αυτό με τα παιχνίδια στρατηγικής όπως σκάκι, τάβλι, Οθέλλο κλπ. [8]. Το γεγονός όμως ότι οι υπολογιστές έχουν γίνει αναπόσπαστο κομμάτι της καθημερινής μας ζωής έχει στρέψει την προσοχή μας στα video και computer games. Επίσης, μέσω της συμμετοχής ενός ανθρώπου σε κάποιο παιχνίδι, έχει παρατηρηθεί ότι μπορούμε να καταλάβουμε πολλά για το χαρακτήρα του. Αυτό είναι αλληλένδετο με το γεγονός ότι ο παίκτης σε οποιοδήποτε παιχνίδι θα πρέπει να λαμβάνει κάποιες αποφάσεις, και αυτή η λήψη αποφάσεων δείχνει την ικανότητα των παικτών να εκτελούν μια ενέργεια η οποία ακολουθεί κάποια συνειδητή τακτική ή μια στρατηγική επιλογή. Ο κύριος στόχος επομένως από τον καθορισμό και την εξέταση των πιθανών σεναρίων του παιχνιδιού είναι να βρεθούν καλές στρατηγικές ως λύση 27

28 του παιχνιδιού. Η λύση είναι μία σύσταση στους παίκτες για το πώς να παίξουν το παιχνίδι μέσα από διάφορες στρατηγικές. Αυτό είναι που δημιούργησε την περιοχή ερευνών game-playing, που χρησιμοποιείται στην επιστήμη των υπολογιστών και μελετάται από την Τεχνητή Νοημοσύνη. Στο game-playing ο αριθμός των παικτών πρέπει να είναι μεγάλος, συγχρόνως όμως να είναι πεπερασμένος και γνωστός. Ακόμα θα πρέπει οι επιλογές του παίκτη να είναι περισσότερες της μιας, διαφορετικά δεν υπάρχει στρατηγική στην επιλογή του παίκτη και συνεπώς δεν υπάρχει αλλαγή στο αποτέλεσμα του παιχνιδιού[10]. Τώρα πια, χάρις στις προσπάθειες των ερευνητών της Τεχνητής Νοημοσύνης, οι υπολογιστές έχουν καταφέρει να έχουν υψηλές δυνατότητες ειδικά στον τομέα του game-playing. Οι υπολογιστές μπορούν να παίζουν σκάκι και άλλα παιχνίδια στο μεγαλύτερο επίπεδο δυσκολίας, συν το γεγονός ότι πολλά άλυτα προβλήματα λύθηκαν από τους υπολογιστές [10] Οι προκλήσεις της Μηχανικής Μάθησης στο χώρο του Game-playing Οι εφαρμογές στο χώρο του Game-Learning προσφέρουν αρκετές προκλήσεις για τη Μηχανική Μάθηση. Μια ποικιλία από τεχνικές μάθησης έχουν χρησιμοποιηθεί για την αντιμετώπιση αυτών των προβλημάτων. Στις επόμενες υποενότητες παρατίθενται συνοπτικά οι συγκεκριμένες προκλήσεις [8] Learning of Evaluation Functions Το σημαντικότερο ίσως πρόβλημα μάθησης είναι αυτό της αυτόματης ρύθμισης των βαρών μιας συνάρτησης αξιολόγησης. Πρακτικά η κατάσταση έχει ως εξής: o προγραμματιστής έχει δώσει στο πρόγραμμα βιβλιοθήκες με ρουτίνες οι οποίες και υπολογίζουν τη σημαντικότητα των στοιχείων από την τρέχουσα θέση. Αυτό όμως που δεν είναι γνωστό είναι πώς να συνδυάσεις αυτά τα στοιχεία και πώς να αξιολογήσεις τη μεταξύ τους σπουδαιότητα. Αρκετά συχνά, αυτές οι παράμετροι συνδέονται μεταξύ τους γραμμικά, έτσι ώστε η διαδικασία της μάθησης πρέπει να ρυθμίσει το βάρος τους μέσα από ένα συνολικό βάρος [8] Learning Search Control Μια άλλη πρόκληση, η οποία δεν έχει μελετηθεί έως τώρα επαρκώς, είναι αυτή του αυτόματου συντονισμού των διαφόρων παραμέτρων που ελέγχουν την αναζήτηση στα προγράμματα του game-playing. Αυτοί οι παράμετροι για παράδειγμα επηρεάζουν το πόσο επιθετικός είναι ο αλγόριθμος αναζήτησης στο να αφήνει εκτός 28

29 τα μη-υποσχόμενα κομμάτια του δέντρου αναζήτησης καθώς επίσης και ποιες γραμμές θα μελετηθούν σε μεγαλύτερο βάθος. Το πρόβλημα εδώ είναι ότι αυτές οι παράμετροι είναι αλληλένδετες με τον αλγόριθμο αναζήτησης και δεν μπορούν να βελτιστοποιηθούν ανεξάρτητα, γεγονός που κάνει την όλη διαδικασία κουραστική και επίπονη [8] Opening Book Learning Οι άνθρωποι ως παίκτες δεν έχουν απλά τη δυνατότητα να αξιολογούν την έκβαση κάθε κίνησης τους, αλλά συχνά μπορούν να κάνουν τις βασικές κινήσεις ενστικτωδώς. Αυτό είναι αποτέλεσμα προετοιμασίας, μηχανικής μάθησης κινήσεων και των παραλλαγών τους. Κάπως έτσι κι ο υπολογιστής, καθώς δεν ξεχνάει, θα μπορούσε να κάνει χρήση τέτοιων «open books» και να είχε καλύτερα αποτελέσματα. Ωστόσο η κατασκευή τέτοιων βιβλίων είναι αρκετά επίπονη, και ακόμα πιο δύσκολο είναι να τα κρατάς συνέχεια ενημερωμένα [8] Pattern Discovery Η πιο απλή μαθησιακή ενέργεια που μπορεί να γίνει είναι να εκπαιδευτεί ο ταξινομητής (classifier) ώστε να μπορεί να διακρίνει πότε μια συγκεκριμένη θέση μέσα στο παιχνίδι είναι θέση νίκης ή θέση ήττας. Αυτό όμως σε πολλές περιπτώσεις δεν είναι επαρκές, καθώς δεν αρκεί απλά να γίνονται κινήσεις που να αποφεύγουν τον αντίπαλο, για τον απλό λόγο ότι έτσι δεν πρόκειται να νικήσεις ποτέ (π.χ. σε μία παρτίδα σκάκι). Οι περισσότερες βάσεις λοιπόν, περιέχουν τον αριθμό κινήσεων που χρειάζεται για να κερδηθεί μια θέση στο παιχνίδι, αλλά η πρόβλεψη για τη νίκη του παιχνιδιού είναι μια πολύ πιο δύσκολη και άλυτη διαδικασία [8] Player Modeling Η διαδικάσια της μοντελοποίησης παίκτη είναι πολύ σημαντική και μπορεί να προσφέρει σε πολλούς τομείς. Ο στόχος της μοντελοποίησης του αντιπάλου είναι να βελτιστοποιηθούν οι ικανότητες του παίκτη της μηχανής για να διαβάζει τον αντίπαλο και να εκμεταλλεύεται τις αδυναμίες του. Ακόμα και όταν η λύση ενός παιχνιδιού θεωρητικά είναι γνωστή, ένα σύστημα με την ικανότητα να μοντελοποιείται σύμφωνα με τη συμπεριφορά του αντιπάλου του έχει περισσότερες πιθανότητες καλύτερης αξιολόγησης [8]. Για παράδειγμα, στο παιχνίδι πέτρα, ψαλλίδι, χαρτί ο κάθε παίκτης έχει πιθανότητα 1/3 να κερδίσει αν επιλέγει τυχαία την κίνηση που θα κάνει. Στην περίπτωση όμως που ο αντίπαλος επιλέγει συνέχεια την 29

30 κίνηση «πέτρα», ο παίκτης που θα αφομειώσει την τεχνική του αντιπάλου και θα επιλέγει για επόμενη κίνηση πάντα χαρτί, θα κερδίζει συνέχεια, σε αντίθεση με εκείνον που θα συνεχίσει να επιλέγει στην τύχη την επόμενη κίνηση Commercial Computer Games Σε αντίθεση με τα κλασικά παιχνίδια στρατηγικής, οι εφαρμογές video games είναι απαιτητικότερες, καθώς οι πράκτορες σε αυτά τα παιχνίδια πρέπει να αλληλεπιδρούν με ένα μεγάλο αριθμό από συμμάχους ή πράκτορες των αντιπάλων μέσα σε ένα αρκετά δυναμικό, ρεαλιστικό περιβάλλον, χωρίς ολοκληρωμένη γνώση για το σύνολο του παιχνιδιού. Η μοντελοποίηση λοιπόν πρέπει να γίνεται για τη συμπεριφορά των παικτών συνδεδεμένων και μη, οι πράκτορες να έχουν ικανότητες για να «διαβάζουν τον αντίπαλο», να βελτιστοποιούν σχέδια και ενέργειες κλπ. Σε αυτό το χώρο οι ερευνητικές προσπάθειες βρίσκονται ακόμα στο ξεκίνημά τους [8]. 30

31 3. Λογισμικό που χρησιμοποιήθηκε Σε αυτό το κεφάλαιο θα γίνει περιγραφή των προγραμμάτων που χρησιμοποιήθηκαν στην παρούσα διπλωματική εργασία. Αυτά είναι : 1. Το Eclipse, για τη συγγραφή του κώδικα. 2. Το WEKA, εξόρυξη δεδομένων και αλγόριθμοι μάθησης. 3. Το Spite Sheet Packer, για την κατασκευή των Sprites. 3.1 Το προγραμματιστικό περιβάλλον Eclipse Στο δεύτερο κεφάλαιο περιγράφτηκε η δομή του λειτουργικού συστήματος Android. Σε αυτό το κεφάλαιο θα δούμε το λειτουργικό σύστημα Android ως πλατφόρμα ανάπτυξης εφαρμογών. Όπως αναφέραμε και σε προηγούμενο κεφάλαιο η γλώσσα προγραμματισμού που χρησιμοποιείται για την ανάπτυξη εφαρμογών Android είναι η Java, χρειαζόμαστε επομένως ένα ολοκληρωμένο περιβάλλον για να τρέχουμε τα προγράμματα μας. Στην παρούσα διπλωματική εργασία αυτό το πρόγραμμα ήταν το Eclipse. Σχήμα 3. Το περιβάλλον του Eclipse Στο σχήμα 11 παρουσιάζεται το γραφικό περιβάλλον του προγράμματος Eclipse. Πέρα από το Eclipse, απαραίτητο για την κατασκευή Android εφαρμογών είναι το 31

32 Android SDK, το οποίο και συνδέεται με το γραφικό μας περιβάλλον μέσω μιας επέκτασης που εγκαταστήσαμε (ADT Plugin), έτσι ώστε να μπορούμε να μεταγλωττίσουμε και στη συνέχεια να τρέξουμε το πρόγραμμα μας. Ακόμα ο προσομοιωτής κινητού τηλεφώνου (Android Virtual Device-AVD) μας δίνει τη δυνατότητα να έχουμε στον υπολογιστή μας έναν προσομοιωτή τόσο σε υλικό αλλά και λογισμικό ενός κινητού τηλεφώνου που να λειτουργεί με Android, (βλ. σχήμα 12). Μέσα από το ADT plugin μπορούμε να εγκαταστήσουμε τον προσομοιωτή, και ακόμα να ρυθμίσουμε και πολλές παραμέτρους του, όπως ποια έκδοση να χρησιμοποιεί, το μέγεθος της οθόνης που θα χρησιμοποιεί κλπ. Αν βέβαια υπάρχει πραγματικό κινητό τηλέφωνο, μπορούμε να τρέχουμε και να δοκιμάζουμε εκεί τις πιθανές εφαρμογές μας. Σχήμα 4. Android Emulator Να αναφέρουμε σε αυτό το σημείο ότι όλα τα προγράμματα που αναφέρθηκαν παραπάνω, είναι διαθέσιμα στο διαδίκτυο και είναι δωρεάν προς λήψη για όλους. 32

33 Παρακάτω θα αναλυθούν περισσότερο τα στοιχεία που υπάρχουν μέσα στο γραφικό περιβάλλον του Eclipse. Άλλα εργαλεία χρήσιμα για την ανάπτυξη εφαρμογών που τα περιλαμβάνει το Android SDK είναι τα εξής: Dalvik Debug Monitor Service (DDMS): επιτρέπει τη διαχείριση των διεργασιών στον εξοµοιωτή ή στη συσκευή, πιο συγκεκριµένα δίνεται η δυνατότητα port-forwarding υπηρεσιών, λήψη screenshots, εµφάνιση πληροφοριών για το σωρό και τα νήµατα (threads), logcat εµφάνιση πληροφοριών ράδιο και πληροφοριών διεργασιών, προσοµοίωση εισερχόµενων κλήσεων και µηνυµάτων, προσοµοίωση δεδοµένων θέσης κ.α. Android Debug Bridge (ADB): επιτρέπει τη διαχείριση της κατάστασης του εξοµοιωτή ή της συσκευής. Μέσω του ADB είναι δυνατή η εκτέλεση εντολών φλοιού, η διαχείριση της προώθησης θυρών και η αντιγραφή από και προς τη συσκευή ή τον εξοµοιωτή. Android Asset Packaging Tool (AAPT): δίνει τη δυνατότητα δηµιουργίας.apk αρχείων τα οποία περιέχουν τα εκτελέσιµα αρχεία και τους πόρους µιας εφαρµογής. Android Interface Description Language (AIDL): επιτρέπει τη δηµιουργία κώδικα που επιτρέπει σε δύο διεργασίες σε µια συσκευή βασισµένη στο Android να συνοµιλούν χρησιµοποιώντας διαδιεργασιακή επικοινωνία. Sqlite3: επιτρέπει την πρόσβαση στα δεδοµένα της SQLite που δηµιουργούνται από τις διάφορες εφαρµογές. Traceview: επιτρέπει τη γραφική προβολή της ανάλυσης των trace log data που δηµιουργούν οι διάφορες εφαρµογές. Mksdcard: το οποίο βοηθά στη δηµιουργία εικονικού δίσκου ο οποίος µπορεί να χρησιµοποιηθεί από τον εξοµοιωτή για την προσοµοίωση της παρουσίας εξωτερικής αποθηκευτικής κάρτας (όπως η SD card). dx tool: µετατρέπει τα αρχεία.class από java bytecode σε Android bytecode. UI/Application Exerciser Monkey: είναι ένα πρόγραµµα που τρέχει στον εξοµοιωτή και παράγει ψευδό-τυχαίες σειρές από συµβάντα χρήστη όπως clicks, touches, gestures καθώς επίσης και έναν αριθµό από συµβάντα συστήµατος. 33

34 Activitycreator: είναι ένα script που δηµιουργεί Ant build αρχεία τα οποία µπορούν να χρησιµοποιηθούν για τη µεταγλώττιση των εφαρµογών. 3.2 WEKA Το WEKA ή Waikato Environment for Knowledge Learning όπως είναι η πλήρης ονομασία του, είναι ένα πρόγραμμα που αναπτύχθηκε από το πανεπιστήμιο Waikato της Νέας Ζηλανδίας. Το WEKA υποστηρίζει πολλά διαφορετικά στάνταρ καθήκοντα στην εξόρυξη δεδομένων όπως προεπεξεργασία δεδομένων, ταξινόμηση, ομαδοποίηση, παλινδρόμηση, οπτικοποίηση και επιλογή χαρακτηριστικών. Η βασική προυπόθεση τους προγράμματος είναι να χρησιμοποιήσει μια εφαρμογή υπολογιστή που να μπορεί να εκπαιδευτεί για τεχνικές μηχανικής μάθησης και να αντλεί χρήσιμες πληροφορίες. Πρόκεται για ένα πακέτο ανοιχτού λογισμικού υλοποιημένο σε γλώσσα προγραμματισμού JAVA, αρχικά είχε γραφτεί σε γλώσσα C και στη συνέχεια γράφτηκε εξολοκήρου σε JAVA. Το συγκεκριμένο πρόγραμμα επιτρέπει στους χρήστες να εντοπιζουν «κρυφές» πληροφορίες σε βάσεις δεδομένων και συστήματα αρχείων μέσω μιας εύκολης στη χρήση, διεπαφής χρήστη Το γραφικό περιβέλλον του WEKA Σχήμα 5. Περιβάλλον διεπαφής Το σχήμα 13 απεικονίζει το WEKA GUI Chooser window που είναι το πρώτο που βλέπεις κανείς όταν τρέξει την εφαρμογή. Παρατηρούμε ότι υπάρχουν 4 επιλογές: 1. Explorer: παρέχει γραφικό περιβάλλον για τις ρουτίνες του weka και τα συστατικά μέρη του, περισσότερο για εξερεύνηση δεδομένων. 34

35 2. Experimenter: Επιτρέπει τη δημιουργία πειραμάτων και στατιστικών αναλύσεων των σχημάτων που παρέχονται. 3. Knowledge Flow: Δίνει ιδέες, δυνατότητες με το experimenter σε ένα περιβάλλον drag and drop. 4. Simple CLI: Παρέχει γραμμή εντολών για τις ρουτίνες του προγράμματος και είναι περισσότερο για λειτουργικά συστήματα που δεν έχουν γραμμή εντολών. Σε αυτή την εργασία εργαστήκαμε με τον Explorer, ο οποίος παρουσιάζεται στο σχήμα 14. Σχήμα 6. Explorer Στο επάνω μέρος του παραθύρου έχουμε διάφορες καρτέλες. Κατά την εκκίνηση μόνο η πρώτη μπορεί να είναι ενεργή, διότι πριν από όλα πρέπει να ανοιχτεί κάποιο αρχείο δεδομένων. Πιο αναλυτικά οι καρτέλες είναι οι εξής: 1.Preprocess: Επιλογή και τροποποίηση των δεδομένων. 2.Classify: Εκπαίδευση και έλεγχος των learning schemes που κάνουν classification ή κάνουν regression. 3. Cluster: Εφαρμογή clustering στα δεδομένα. 35

36 4. Associate: Κανόνες για συσχέτιση δεδομένων. 5. Select attributes: Επιλογή των πιο σχετικών χαρακτηριστικών των δεδομένων. 6. Visualize: Προβολή διαδραστικών 2D διαγραμμάτων. 3.3 Sprite Sheet Packer To συγκεκριμένο πρόγραμμα χρησιμοποιήθηκε για να μπορέσουμε να φτιάξουμε τις εικόνες που χρησιμοποιούμε στην εφαρμογή μας (Sprites Sheets). Οι εικόνες έπρεπε να έχουν συγκεκριμένη μορφοποίηση (format), ώστε να έχουμε τη δυνατότητα να ελέγχουμε την κίνηση των μπαλών μέσα στο παιχνίδι. Σχήμα 7. Το γραφικό περιβάλλον του προγράμματος Sprite Sheet Packer. Στο σχήμα 15 παρουσιάζεται το γραφικό περιβάλλον της εφαρμογής. Αρχικά, εισάγαμε τρία διαφορετικά στιγμιότυπα της μπάλας ποδοσφαίρου και η εφαρμογή στη συνέχεια παρήγαγε το sprite sheet για τα γραφικά της μπάλας. Στα σχήματα 16 και 17 παρουσιάζονται οι αρχικές εικόνες για τις μπάλες του παιχνιδιού καθώς και τα τελικά sprite sheets των μπαλών. 36

37 Σχήμα 8. Η αρχική εικόνα και το spite sheet που μας έδωσε το πρόγραμμα για την μπάλα του ποδοσφαίρου. Αυτό που κάνει δηλ. η εφαρμογή είναι να βγάζει μια εικόνα με τη μορφή πίνακα για να μπορούμε αργότερα να ελέγχουμε την κίνηση. Αντίστοιχα φτιάχτηκε και η μπάλα του μπάσκετ. Σχήμα 9. Η αρχική εικόνα και το spite sheet που μας έδωσε το πρόγραμμα για την μπάλα του μπάσκετ. Σε παρακάτω κεφάλαιο θα αναφερθούμε πιο συγκεκριμένα για το κομμάτι του κώδικα που είναι υπεύθυνο για την κίνηση των μπαλών και για το πώς χρησιμοποιούνται αυτές οι εικόνες. 37

38 4.Συναφείς εργασίες (Related Work) Σε αυτό το κεφάλαιο θα γίνει αναφορά σε υπάρχουσες εργασίες μηχανικής μάθησης στο χώρο των παιγνίων. 4.1 General Game Learning using Knowledge Transfer Στην μελέτη τους, οι Banerjee και Stone [11] παρουσίασαν μια ενισχυμένη μέθοδο μάθησης για έναν παίκτη παιχνιδιού, ο οποίος μπορεί να αλληλεπιδρά με ένα σύστημα τύπου General Game playing, και να μεταφέρει γνώση από ένα παιχνίδι για να επισπεύσει τη μάθηση σε πολλά άλλα παιχνίδια. Κάνοντας χρήση της τεχνικής μεταφοράς value-function πολλά γενικά χαρακτηριστικά που προέρχονται από το χώρο καταστάσεων του προηγούμενου παιχνιδιού μεταφέρονται και συνδυάζονται με τον τελείως διαφορετικό χώρο κατάστασης του νέου παιχνιδιού. Για να συλλάβουν τις βασικές ομοιότητες των διαφορετικών χώρων καταστάσεων που προκύπτουν από τα διαφορετικά παιχνίδια, χρησιμοποίησαν μια δομή δέντρου αναζήτησης lookahead για τα χαρακτηριστικά. Δείχνουν ότι η συγκεκριμένη δυνατότητα μεταφοράς μαθαίνει γρηγορότερα τις ανώτερες πολιτικές από ότι ένας πράκτορας ενισχυμένης μάθησης χωρίς μεταφορά γνώσης. Ακόμα, με αυτό τον τρόπο μπορούν να καταλάβουν την αντίστοιχη μέθοδο αξιολόγησης του αντιπάλου και να βρουν τα τρωτά του σημεία. Ας δούμε όμως λίγο αναλυτικότερα τη μελέτη τους. Κάθε παιχνίδι ξεκινάει με τον κάθε παίκτη να λαμβάνει ένα αρχείο GDL(Game description language) με την περιγραφή του παιχνιδιού που πρόκειται να παίξουν καθώς και το ρόλο τους σε αυτό. Έπειτα υπάρχει κάποιος χρόνος αναμονής για να εξοικειωθούν οι παίκτες με το παιχνίδι και στη συνέχεια ο μάνατζερ του παιχνιδιού δίνει τη δυνατότητα στον πρώτο παίκτη για την κίνηση του, αν για κάποιο λόγο ο πρώτος παίκτης δεν πραγματοποιήσει κάποια κίνηση διαλέγει ο μάνατζερ μία στην τύχη, και το λόγο έχει ο επόμενος παίκτης, και ούτω καθεξής. Όταν ο μάνατζερ αντιληφθεί μια κατάσταση τερματισμού, δίνει τον αντίστοιχο βραβείο στον παίκτη και τερματίζει το παιχνίδι. Για να μετρήσουν την επίδοση της μάθησης, ο «μαθητής» τους παίζει ξανά και ξανά μια σειρά από παιχνίδια του ίδιου παιχνιδιού με συγκεκριμένο αντίπαλο και σημειώνει το μέσο από τα βραβεία που έχει πάρει. Οι υπολογισμοί για τη μεταφορά 38

39 γνώσης καθώς και οι αναβαθμίσεις για την κάθε κατάσταση που επισκέφτηκε γίνονται στο χρόνο αναμονής του καινούριου παιχνιδιού. Στη μελέτη τους λοιπόν παρουσιάζουν έναν Transfer Learner που χρησιμοποιεί αυτόματη ανακάλυψη χαρακτηριστικών σε συνδυασμό με Reinforcement Learning για τη μεταφορά γνώσης μεταξύ δύο τελείως διαφορετικών παικτών, εναλλακτικής κίνησης, πλήρεις πληροφορίες παιχνιδιών μέσα στο πλαίσιο του GGP. Το κλειδί για την κατασκευή ήταν η lookahead αναζήτηση του δέντρου του παιχνιδιού. Η έρευνα τους αυτή δείχνει ότι τα ανεξάρτητα χαρακτηριστικά ενός παιχνιδιού μπορούν να χρησιμοποιηθούν για τη μεταφορά πληροφορίας από το ένα παιχνίδι στο άλλο, καλύτερα από την lookahead minimax αναζήτηση, ειδικά όταν ο αντίπαλος είναι χειρότερος. Με την έρευνα τους απέδειξαν ότι η μεταφορά γνώσης δίνει μια απλούστερη εναλλακτική στο περίπλοκο έργο κατασκευής ενός κατάλληλου Heuristic για την lookahead αναζήτηση. 4.2 A Machine Learning in Playing Ayo Game O κύριος στόχος στην εύρεση και στη μελέτη των διαφόρων σεναρίων των παιχνιδιών είναι να βρεθούν καλές στρατηγικές ως λύσεις για το εκάστοτε παιχνίδι. Μια πιθανή λύση, είναι μια σύσταση προς τους παίκτες για το πώς να παίξουν το παιχνίδι, η οποία παρουσιάζεται ως στρατηγική μέσα στις πολλές επιλογές που έχει διαθέσιμες ο παίκτης. Αυτές οι επιλογές υποχρεώνουν τους παίκτες να εκτελούν μια ενέργεια σύμφωνα με μια συνειδητή τακτική. Στην μελέτη τους οι Akinyemi, Adebiyi και Longe [10], προτείνουν μια βελτίωση με βάση το heuristic, ως μια τεχνική για τη μηχανική μάθηση στη διαδικασία των αποφάσεων στο παιχνίδι Ayo. Το αποτέλεσμα έδειξε ότι η τεχνική τους είναι περισσότερο προσαρμόσιμη και ανταποκρίνεται καλύτερα στη λήψη αποφάσεων από ότι ο ανθρώπινος νους. Η τεχνική τους έχει το πλεονέκτημα ότι διεξάγεται σε ένα ρηχό, οριζόντιο δέντρο αναζήτησης. Στα επόμενα αναλύουμε τα κυριότερα χαρακτηριστικά της μελέτη τους. Η μηχανική μάθηση είναι ένα κομμάτι της τεχνητής νοημοσύνης που μελετά μεθόδους μάθησης για να δημιουργηθούν έξυπνα συστήματα. Αυτά τα συστήματα εξασκούνται με τη χρήση ενός αλγόριθμου μάθησης για ένα συγκεκριμένο πρόβλημα ή διεργασία. Γενικά, η αναζήτηση minimax (ελάττωση των πιθανών απωλειών) είναι το κυρίαρχο σενάριο για την απόκτηση λύσης στα προβλήματα των παιχνιδιών. 39

40 Ωστόσο, υπάρχουν και κάποιοι περιορισμοί σχετικοί με αυτού του είδους την αναζήτηση: 1. Ακατάλληλος σχεδιασμός ενός κατάλληλου εκτιμητή για τις κινήσεις πριν αυτές γίνουν. 2. Αδυναμία επιλογής σωστής απόφασης χωρίς την παραδοχή ότι οι παίκτες θα παίξουν καλύτερα. Στη μελέτη τους, οι Akinyemi, Adebiyi και Longe, πιστεύουν ότι περιορίζοντας αυτούς τους περιορισμούς της αναζήτησης θα βελτιώσουν το επίπεδο διαδραστικότητας του συγκεκριμένου παιχνιδιού. Για παράδειγμα, ένας παίκτης μπορεί να κάνει διάφορες παραλλαγές κινήσεων ως αποτέλεσμα της στρατηγικής μπλοφαρίσματος. Η μπλόφα είναι μια πολύ καλή στρατηγική παιχνιδιού και βασίζεται στο να γίνεται μια ενέργεια, για να δημιουργήσει στον αντίπαλό ψεύτικη εντύπωση για τις αληθινές προθέσεις ή δυνατότητές του. Μια μηχανή με νοημοσύνη υποτίθεται ότι είναι μια απομίμηση της ανθρώπινης νοημοσύνης, και ως εκ τούτου δεν απαιτείται η ακριβής λύση σε ένα πρόβλημα όταν η προσέγγιση είναι εξίσου καλή. Επομένως η συμπλήρωση της Minimax αναζήτησης «στα ρηχά» μαζί με την τεχνική μηχανικής μάθησης δίνει μια καλή προσέγγιση μιας βαθύτερης αναζήτησης. Τεχνικές μηχανικής μάθησης όπως νευρωτικά δίκτυα, αναζήτηση κοντινότερου γείτονα και αιτιολόγηση κατά περίπτωση είναι μερικά σημαντικά εργαλεία βελτίωσης που χρησιμοποίησαν στην έρευνα τους για να καταφέρουν το επίπονο έργο της πρόβλεψης. Η ιδέα του Minimax αλγόριθμου σχετίζεται με τη βελτιστοποίηση διαδικασιών. Ο max προσπαθεί για το καλύτερο δυνατό αποτέλεσμα, ενώ o min προσπαθεί να περιορίσει την μέγιστη αξία καθώς και οι δύο παίκτες παίζουν για το καλύτερο αποτέλεσμα. Στην έρευνα τους λοιπόν, έχουν έναν αλγόριθμο minimax με μια μέθοδο βελτίωσης που έχει τρία κύρια χαρακτηριστικά: (1) το χτίσιμο του δέντρου για το παιχνίδι, (2) τον υπολογισμό της αξίας του παιχνιδιού και (3) βελτίωση πιθανών κινήσεων. Στην εργασία τους κατάφεραν να προσομοιώσουν τη διαδικασία της ανθρώπινης λήψης αποφάσεων μέσα στο παιχνίδι, η οποία μπορεί να είναι βέλτιστη ή σχεδόν βέλτιστη, και μπορεί να διατηρεί αυτές τις αποφάσεις με την πάροδο του χρόνου με λίγη ανθρώπινη βοήθεια. Ο αλγόριθμος που χρησιμοποιείται από το παιχνίδι είναι υπολογιστικά αποτελεσματικός και έχει την τάση να ενσωματώνει νέες στρατηγικές 40

41 με μορφές διδασκαλίας και καθίσταται περισσότερο ευαίσθητος σε λάθη και αδυναμίες. 4.3 Search and Learning (SAL) Στη διδακτορική έρευνα που έκανε ο Cherrity [9], παρουσιάζει το SAL που πρόκειται για μια εφαρμογή game-learning. Το συγκεκριμένο πρόγραμμα αναπτύχθηκε με σκοπό να δοκιμαστούν κάποιες ιδέες για το πώς μπορεί να σχεδιαστεί ένα τέτοιο πρόγραμμα. Αποτελείται από δύο κύρια μοντέλα, έναν ανεξάρτητο πυρήνα και από μία γεννήτρια κινήσεων (move generator). O πυρήνας περιλαμβάνει τις ρουτίνες αναζήτησης και μάθησης και δεν τροποποιείται για τα διάφορα παιχνίδια. Οι κανόνες των παιχνιδιών που πρόκειται να παιχτούν δίνονται στο πρόγραμμα μέσω της γεννήτριας κινήσεων, η οποία είναι απαραιτήτως διαφορετική για κάθε διαφορετικό παιχνίδι. Τα παιχνίδια που δοκιμάστηκαν ήταν τα tic-tac-toe, connect-four και σκάκι. Για την εν λόγω εφαρμογή σχεδιάστηκε και εφαρμόστηκε μια τροποποιημένη έκδοση της αναζήτησης συνέπειας του Beal (consistency search). Για κάθε θέση στην οποία το πρόγραμμα γυρνάει, ένα πλήρους πλάτους δέντρο παράγεται, μια βαθμιαία αναζήτηση συνέπειας γίνεται για να καθορίσει ποιος κόμβος πρέπει να επεκταθεί περισσότερο. Οι κόμβοι που αποκόπτονται από τον αλγόριθμο δεν λογίζονται για επέκταση. Το δέντρο αναζήτησης επιλεκτικά επεκτείνεται και το κ-επίπεδο της αναζήτησης αυξάνει έως ότου ο επόμενος κόμβος είναι σταθερός. Μια κίνηση επιλέγεται με βάση τα αποτελέσματα μιας ολοκληρωμένης αναζήτησης στο υψηλότερο επίπεδο. Το SAL, χρησιμοποιεί δύο συναρτήσεις αξιολόγησης, μια για τον παίκτη που παίζει πρώτος και μια για αυτόν που παίζει δεύτερος. Οι θέσεις που βρίσκεται ο πρώτος παίκτης χρησιμοποιούνται για να πειραματιστεί η συνάρτηση του πρώτου και κατά αντιστοιχία και του δεύτερου παίκτη. Έτσι, κάνοντας χρήση δύο συναρτήσεων έχει τη δυνατότητα να μάθει και από μη-συμμετρικά παιχνίδια, και όχι μόνο από συμμετρικά.. Τα αποτελέσματα από τα τεστ δείχνουν ότι η επίδοση στα παιχνίδια tic-tac-toe και connect-four ήταν η αναμενόμενη, τα αποτελέσματα για το σκάκι αν και θετικά είναι μη ολοκληρωμένα λόγω των υπολογιστικών περιορισμών (ανάπτυξη του δέντρου μέχρι τον 100-στο κόμβο). 41

42 4.4 Data Mining for Player Modeling in Videogames Στην έρευνα που πραγματοποίησαν οι συγγραφείς στο [16], προτείνουν μια μέθοδο μοντελοποίησης για παίκτη βιντεοπαιχνιδιού (videogame), η οποία βασίζεται στην ομαδοποίηση των δεδομένων που συλλέγονται κατά τη διάρκεια του παιχνιδιού. Σύμφωνα με το ρυθμό και τους μηχανισμούς του παιχνιδιού, προσδιόρισαν δύο τύπους παικτών, τον παίκτη δράσης και τον παίκτη τακτικής. Ας αναλύσουμε όμως τη μεθοδολογία που χρησιμοποιήσαν. Ένα πολύ λεπτομερές σετ δεδομένων για τη συμπεριφορά του παίκτη συλλέχθηκε κατά τη διάρκεια που εκείνος έπαιζε το παιχνίδι. Με ομαδοποίηση αυτών των δεδομένων κατάφεραν να καταλάβουν τι τύπος παίκτη ήταν ο χρήστης, πράγμα το οποίο μπορεί να χρησιμοποιηθεί για να ρυθμιστεί η δυσκολία του παιχνιδιού σε μετέπειτα στάδιο. Το παιχνίδι που χρησιμοποίησαν για την έρευνα τους ήταν μια παραλλαγή του Space Invaders, όπου στη δική τους έκδοση οι αντίπαλοι (εξωγήινοι) ήταν δύο (ένας δυνατός αλλά αργός εχθρός και ένας γρήγορος αλλά περισσότερο ευάλωτος). Στο τέλος, ο παίκτης έπρεπε να αντιμετωπίσει και το διαστημόπλοιο τους, το οποίο ήταν το πιο ανθεκτικό. Το ζητούμενο από τον παίκτη ήταν να αντισταθεί στους αντιπάλους του. Ο χρήστης είχε στη διάθεση του 4 όπλα και μπορούσε να χρησιμοποιήσει οποιοδήποτε συνδυασμό από αυτά. Ο μηχανισμός του παιχνιδιού επέτρεπε στους παίκτες την ανάπτυξη δύο συγκεκριμένων τακτικών ως ακολούθως: 1. Καταστροφή των σκαφών των αντιπάλων ευθέως με τη χρήση των όπλων 2. Την κατάρηψη των σκαφών με χρήση αστεροειδών. Οι συγγραφείς στηρίχθηκαν στις επιλογές στρατηγικής των παικτών και παρουσίασαν δύο τύπους: Παίκτης δράσης, που δίνει έμφαση στα περισσότερο εύχρηστα όπλα παρά στην αποδοτικότητα. Παίκτης τακτικής, που δίνει έμφαση στην αποδοτικότητα των όπλων παρά στο πόσο εύχρηστα αυτά είναι. 42

43 Τα δεδομένα που συλλέγησαν κατά τη διάρκεια του παιχνιδιου ήταν: ο χρόνος για να τερματίσει ο χρήστης την πίστα, η ακρίβεια των βολών του, πόσες επιθέσεις απέφυγε, πόσο χρησιμοποίησε τα όπλα κλπ. Ως μέθοδο εξόρυξης δεδομένων χρησιμοποίησαν το Clustering (ομαδοποίηση) όπου σε αντίθεση με το classification (ταξινόμηση) τα δεδομένα των clusters δεν είναι προκαθορισμένα. Αυτό σημαίνει ότι δεν υπάρχουν αρχικά παραδείγματα που να χαρακτηρίστηκαν εκτός του αλγορίθμου ότι ανήκουν σε συγκεκριμένη κλάση. Σύμφωνα με τις μετρήσεις που πραγματοποίησαν συμπέραναν ότι ο αλγόριθμος CURE ανταποκρινόταν στις απαιτήσεις τους. Αξιοποιώντας πληροφορίες σχετικά με το κέντρο βάρους της κάθε ομάδας και σε συνδυασμό με τον αλγορίθμο CURE, μπόρεσαν να κατανοήσουν τις αρχές του κάθε μοντέλου-παίκτη και καταφέραν να διατηρήσουν το επίπεδο του ενδιαφέροντος για κάθε παίκτη σε υψηλά επίπεδα είτε με την εισαγωγή περισσότερων χαρακτηριστικών που ευνοούν τον παίκτη τακτικής ή χαρακτηριστικών που ευνοούν τον παίκτη δράσης. 43

44 5. Αρχιτεκτονική της εφαρμογής 5.1 Εισαγωγή Στο παρόν κεφάλαιο περιγράφεται η εφαρμογή που αναπτύχθηκε καθώς και όλες οι δυνατότητες που αυτή προσφέρει στο χρήστη. Στη συνέχεια αναλύεται η δομή της εφαρμογής, δηλαδή τα αρχεία που την αποτελούν καθώς και ποια ακριβώς είναι η χρήση του κάθε αρχείου. 5.2 Περιγραφή Ο κύριος στόχος της εφαρμογής είναι η κατασκευή ενός παιχνιδιού, το οποίο δίνει τη δυνατότητα στο χρήστη να παίξει σε τρεις διαφορετικές πίστες, έχοντας πρώτα δημιουργήσει λογαριασμό. Κατά τη διάρκεια του παιχνιδιού συλλέγονται δεδομένα για τον κάθε χρήστη που δημιουργεί λογαριασμό στην εφαρμογή. Τα δεδομένα αυτά χρησιμοποιούνται στη συνέχεια για εξόρυξη γνώσης, με στόχο όταν ο παίκτης θα συνδεθεί στο παιχνίδι για να παίξει το «αυτόματο επίπεδο», η μηχανή να έχει ήδη εκπαιδευτεί για το συγκεκριμένο χρήστη. 5.3 Δομή Σε αυτό το σημείο και πριν προχωρήσουμε στην ανάλυση των διαφόρων λειτουργιών της εφαρμογής, χρήσιμο είναι να κάνουμε μια συνοπτική αναφορά στη δομή της, δηλαδή σε όλα αυτά τα αρχεία που την απαρτίζουν καθώς και στη λειτουργία τους. Στο σχήμα 18 απεικονίζεται η δομή της εφαρμογής μέσα στο περιβάλλον του Eclipse. Σχήμα 10. Δομή εφαρμογής 44

45 Παρατηρούμε διάφορους φακέλους στη δομή της εφαρμογής, παρακάτω αναλύονται τα αρχεία αυτών των φακέλων. src/ Σχήμα 11. Το περιεχόμενο του φακέλου src Στο σχήμα 19 βλέπουμε ότι μέσα στο φάκελο src περιέχεται το πακέτο icsd06007.icsd06113.dipl, το οποίο και έχουμε δηλώσει στην εφαρμογή μας. Μέσα σε αυτό το πακέτο περιέχονται όλες οι κλάσεις της εφαρμογής. gen/ Σχήμα 12. Το περιεχόμενο του φακέλου gen Στο σχήμα 20 παρατηρούμε τα περιεχόμενα του φακέλου gen. Αυτός ο φάκελος περιέχει την κλάση R.java, η οποία είναι μια κλάση που κατασκευάζεται αυτόματα από το σύστημα και συνδέει όλες τις πηγές της εφαρμογής. Η συγκεκριμένη κλάση δηλώνει κάθε στοιχείο από τις εικόνες, τα γραφικά στοιχεία, τα αλφαριθμητικά, τα θέματα που χρησιμοποιούμε, ως μια ακέραια σταθερά με τιμή ένα μοναδικό δεκαεξαδικό αριθμό, για να μπορούμε να αναφερόμαστε σε αυτές μέσα από τις δικές μας κλάσεις σαν δημόσιες σταθερές. 45

46 Referenced Libraries Σχήμα 13. Το περιεχόμενο του φακέλου Referenced Libraries Στο φάκελο Referenced Libraries αποθηκεύονται όλες εκείνες οι βιβλιοθήκες που προστίθενται από τον προγραμματιστή, εφόσον δεν είναι εγκατεστημένες στην έκδοση του JDK που χρησιμοποιήσαμε. Στην παρούσα εργασία η βιβλιοθήκη που προσθέσαμε είναι η weka.jar και χρησιμοποιείται για την εξόρυξη δεδομένων, όπως φένεται και στο σχήμα 21. Assets/ Σε αυτό το φάκελο αποθηκεύουμε οποιοδήποτε αρχείο θέλουμε ή δημιουργούμε υποφακέλους. Λόγω του ότι κάθε application resource αποθηκεύεται σε διαφορετικό φάκελο, ο συγκεκριμένος φάκελος δεν είναι τόσο χρήσιμος στην εφαρμογή μας. Res/ Στο συγκεκριμένο φάκελο αποθηκεύονται όλα τα application resources. Πιο συγκεκριμένα στους φακέλους drawable αποθηκεύονται όλα τα αρχεία εικόνας που χρησιμοποιούνται στην εφαρμογή. Παρατηρούμε ότι υπάρχουν τρεις διαφορετικοί φάκελοι drawable και αυτό συμβαίνει επειδή υπάρχουν διαφορετικά είδη ανάλυσης. Στο φάκελο layout αποθηκεύονται όλα τα αρχεία xml, στα οποία δηλώνουμε τη διεπαφή χρήστη κάθε οθόνης. Στο φάκελο menu έχουμε δηλώσει, ένα αρχείο xml, στο οποίο είναι το περιβάλλον για το activity του μενού της εφαρμογής. Στο φάκελο values είναι δηλωμένα όλα τα strings της εφαρμογής. Στο σχήμα 22, φαίνεται όλη η δομή του φακέλου Res. 46

47 Σχήμα 14. Το περιεχόμενο του φακέλου res Ακόμα σε κάθε εφαρμογή δημιουργείται αυτόματα με το που ξεκινήσουμε καινούριο Android project, το αρχείο AndroidManifest.xml. Αυτό το αρχείο περιέχει βασικές πληροφορίες σχετικές με την εφαρμογή, τις οποίες το λειτουργικό σύστημα πρέπει να γνωρίζει προτού εκτελέσει κάποιο άλλο κώδικα. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="icsd06007.icsd06113.dipl" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="7" /> 47

48 <uses-permission android:name="android.permission.write_external_storage" > </uses-permission> <application > <activity android:name=".frontpage" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".account" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity android:name=".login" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity android:name=".auto_game" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity android:name=".main" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity android:name=".aboutus" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > <intent-filter> <action android:name="icsd06007.icsd06113.dipl.about" /> <category android:name="android.intent.category.default" /> </intent-filter> </activity> <activity android:name=".easy_game" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity 48

49 android:name=".auto" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity android:name=".normal_game" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> <activity android:name=".hard_game" android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" > </activity> </application> </manifest> 49

50 6. Ανάλυση της εφαρμογής 6.1 Εισαγωγή Η εφαρμογή είναι ικανή να εκτελείται στην πλατφόρμα 2.2 API level 8 και μεταγενέστερες. Αυτό ισχύει γιατί χρησιμοποιούμε κάποιες μεθόδους οι οποίες παρουσιάστηκαν από την έκδοση 2.2 και έπειτα όπως η public void onbackpressed() { try { Class ourclass=class.forname("icsd06007.icsd06113.dipl.main"); Intent ourintent = new Intent(HARD_GAME.this,ourclass); startactivity(ourintent); catch (Exception e) { e.printstacktrace(); Η συγκεκριμένη μέθοδος χρησιμοποιείται στον κώδικα μας αρκετές φορές ώστε να χειριζόμαστε το πλήκτρο επιστροφής της συσκευής. Επιπλέον, η εφαρμογή εκτελείται εξ ορισμού σε κατάσταση πορτρέτου, ασχέτως σε τι κατάσταση (προσανατολισμό) βρίσκεται η συσκευή εκείνη τη στιγμή (landscape or portrait). Σε κάθε activity χρησιμοποιούμε τη μέθοδο: this.setrequestedorientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); Η συγκεκριμένη μέθοδος κλειδώνει την περιστροφή της οθόνης για το συγκεκριμένο activity. Επιπλέον, προσθέτουμε στο AndroidManifest.xml σε κάθε activity μέσα στην εφαρμογή μας τον εξής κώδικα: android:configchanges="orientation keyboardhidden keyboard" android:screenorientation="portrait" Τέλος, χρησιμοποιούμε έναν περιορισμό της εφαρμογής επειδή αντιγράφει τη βάση δεδομένων μας στη sdcard της συσκευής. Αν δεν υπάρχει sdcard τότε η βάση αποθηκεύεται στη μνήμη της συσκευής. <uses-permission android:name="android.permission.write_external_storage" > </uses-permission> 50

51 6.2 Αρχική Οθόνη Επιλέγοντας το εικονίδιο της εφαρμογής (Catch the ball), στο σχήμα 23 παρατηρούμε την εγκατεστημένη εφαρμογή στο μενού της συσκευής, ο χρήστης εισέρχεται στην εφαρμογή (βλ. σχήμα 24 την αρχική οθόνη του παιχνιδιού). Σχήμα 15. Η εφαρμογή εγκατεστημένη στη συσκευή Σχήμα 16. Η Αρχική οθόνη της εφαρμογής 51

52 Σε περίπτωση που ο χρήστης βρίσκεται στην αρχική σελίδα, πατώντας το menu button της συσκευής, εμφανίζεται το παρακάτω μενού, όπως φαίνεται και στο σχήμα 25. Σχήμα 17. Εμφάνιση του μενού στο χρήστη Επιλέγοντας το κουμπί Credits εμφανίζονται οι πληροφορίες για την εφαρμογή (βλ. σχήμα 26), ενώ πατώντας το κουμπί exit η εφαρμογή τερματίζει. Σχήμα 18. Οι πληροφορίες για την εφαρμογή 52

53 Εάν ο χρήστης συνδέεται για πρώτη φορά στην εφαρμογή πρέπει να δημιουργήσει ένα λογαριασμό, συμπληρώνοντας τα πεδία όπως φαίνεται και στο σχήμα 27, και στη συνέχεια πατώντας την επιλογή CREATE ACCOUNT αυτόματα μεταφέρεται στην επόμενη οθόνη. Σχήμα 19. Δημιουργία λογαριασμού Σε περίπτωση που ο χρήστης πατήσει να συνεχίσει στην επόμενη οθόνη χωρίς να έχει συμπληρώσει ένα από τα δύο πεδία (username, password) ή δημιουργώντας ένα λογαριασμό που ήδη υπάρχει, θα δημιουργηθεί μια από τις παρακάτω εξαιρέσεις (exceptions): 1. Εξαίρεση για κενά πεδία public class Exception_Gia_Kena_Pedia extends Exception{ public String message(){ return "Ένα ή περισσότερα πεδία είναι κενά"; 2. Εξαίρεση για το αν υπάρχει το account public class Yparxei_To_Account extends Exception { public String message(){ return "Υπάρχει ήδη αυτός ο λογαριασμός, δημιουργήστε διαφορετικό"; 53

54 Επίσης, παραθέτουμε το τμήμα του κώδικα που είναι υπεύθυνο για τη διαχείριση αυτών των εξαιρέσεων: try { String onoma= name.gettext().tostring(); String kwdikos= pwd.gettext().tostring(); DBUserAdapter entry=new DBUserAdapter(ACCOUNT.this); if(onoma.equals("") kwdikos.equals("")) throw new Exception_Gia_Kena_Pedia(); entry.open(); try{ if(entry.login(onoma, kwdikos)==true) throw new Yparxei_To_Account(); entry.insertuser(onoma,kwdikos); entry.close(); Class ourclass=class.forname("icsd06007.icsd06113.dipl.main"); Intent ourintent = new Intent(ACCOUNT.this,ourclass); startactivity(ourintent); catch(yparxei_to_account e){ Toast.makeText(getApplicationContext(), e.message(), Toast.LENGTH_LONG).show(); catch (Exception_Gia_Kena_Pedia ex){ Toast.makeText(getApplicationContext(), ex.message(), Toast.LENGTH_LONG).show(); catch (Exception e) { Toast.makeText(getApplicationContext(), e.getmessage(), Toast.LENGTH_LONG).show(); Επιπλέον, στην κλάση ACCOUNT δημιουργείται μία εγγραφή στη βάση δεδομένων για κάθε νέο λογαριασμό χρήστη: DBUserAdapter entry=new DBUserAdapter(ACCOUNT.this); entry.open(); entry.insertuser(onoma,kwdikos) entry.close(); Αφού όμως πρώτα ελέγξουμε αν υπάρχει ήδη ο συγκεκριμένος λογαρισμός στη βάση: if(entry.login(onoma, kwdikos)==true) throw new Yparxei_To_Account(); 54

55 6.3 Οθόνη επιλογής επιπέδων Μετά την επιτυχημένη δημιουργία λογαριασμού χρήστη, εμφανίζεται η κύρια οθόνη (βλ. σχήμα 28) με την επιλογή των επιπέδων του παιχνιδιού. Σχήμα 20. Η επόμενη οθόνη με το που γίνει ο λογαριασμός χρήστη Σε αυτό το σημείο του παιχνιδιού, ο κώδικας ο οποίος είναι υπεύθυνος για τη διαχείριση του περιβάλλοντος σε αυτήν την οθόνη είναι η κλάση Main, η οποία χειρίζεται το ποιο κουμπί είναι διαθέσιμο κάθε φορά, ανάλογα σε ποιο επίπεδο βρίσκεται ο χρήστης. try { ad = new DBUserAdapter(Main.this); ad.open(); katastash = ad.epipedo(); ad.close(); catch (Exception s) { s.getstacktrace(); ad.close(); if (katastash == 0) { easybutton.setonclicklistener(this); normalbutton.setbackgroundcolor(color.red); normalbutton.setclickable(false); hardbutton.setbackgroundcolor(color.red); hardbutton.setclickable(false); autobutton.setbackgroundcolor(color.red); autobutton.setclickable(false); 55

56 else if (katastash == 1) { easybutton.setbackgroundcolor(color.red); easybutton.setclickable(false); normalbutton.setonclicklistener(this); hardbutton.setbackgroundcolor(color.red); hardbutton.setclickable(false); autobutton.setbackgroundcolor(color.red); autobutton.setclickable(false); else if (katastash == 2) { easybutton.setbackgroundcolor(color.red); easybutton.setclickable(false); normalbutton.setbackgroundcolor(color.red); normalbutton.setclickable(false); hardbutton.setonclicklistener(this); autobutton.setbackgroundcolor(color.red); autobutton.setclickable(false); else if (katastash == 3) { easybutton.setbackgroundcolor(color.red); easybutton.setclickable(false); normalbutton.setbackgroundcolor(color.red); normalbutton.setclickable(false); hardbutton.setbackgroundcolor(color.red); hardbutton.setclickable(false); autobutton.setonclicklistener(this); T); this.setrequestedorientation(activityinfo.screen_orientation_portrai Σημειώστε, ότι η αρχική κατάσταση είναι katastash=0, δηλαδή ο χρήστης ξεκινάει για πρώτη φορά το παιχνίδι. Αφού ο χρήστης πατήσει το κουμπί easy mode ξεκινάει η εφαρμογή στο πρώτο επίπεδο δυσκολίας. Η διεπαφή χρήστη γι αυτό το επίπεδο παρουσιάζεται στο σχήμα

57 Σχήμα 21. Η διεπαφή του παιχνιδιού στο easy mode Η οθόνη αυτή (βλ. σχήμα 29) αποτελείται από τρία στοιχεία: Το σκορ πάνω αριστερά, Το χρόνο πάνω δεξιά (ο οποίος είναι 60 δευτερόλεπτα), Τις μπάλες ποδοσφαίρου και μπάλες μπάσκετ. Υπεύθυνες κλάσεις για το παιχνίδι είναι οι: GameView, GameLoopThread, Sprite, TempSprite. Η κλάση GameView, η οποία κληρονομεί τις μεθόδους SurfaceView και η GameLoopThread κάνει extend Thread, η οποία είναι υπεύθυνη για τα στιγμιότυπα της οθόνης ανάλογα με το χρόνο. public void surfacecreated(surfaceholder holder) { createsprites(epipedo); gameloopthread.setrunning(true); gameloopthread.start(); if(epipedo!=4) time.start(); else if(epipedo==4){ time_auto.start(); Ο παραπάνω κώδικας ξεκινάει το νήμα (thread) και την αντίστροφη μέτρηση του χρόνου. 57

58 Αφού βρισκόμαστε στο πρώτο επίπεδο, η GameView δημιουργεί πέντε μπάλες ποδοσφαίρου και τρεις μπάλες μπάσκετ. if(epipedo==1){ for(int i=0;i<5;i++){ sprites.add(createsprite(r.drawable.ba)); for(int i=0;i<3;i++){ sprites_bask.add(createsprite(r.drawable.bask)); Σκοπός του χρήστη είναι να πιάσει όλες τις μπάλες ποδοσφαίρου στο δοθέντα χρόνο. Ανάλογα σε ποιο επίπεδο βρισκόμαστε οι μπάλες ποδοσφαίρου εναλλάσσονται με τις μπάλες μπάσκετ σε διαφορετικό χρονικό διάστημα, π.χ. για το επίπεδο easy αλλάζουν κάθε 20 δευτερόλεπτα. case 1: if(xron%20==0){ switch_balls(); Και για την εναλλαγή υπεύθυνη είναι η μέθοδος switchballs(), η οποία ανάλογα με το πόσες εναλλαγές έχουμε ορίσει αλλάζει τις μπάλες. for(int q=0;q<allages;q++){ try{ int a=num.nextint(sprites.size()); Sprite temp_sprites = sprites.get(a); int b=num.nextint(sprites_bask.size()); Sprite temp_sprites_bask = sprites_bask.get(b); int xtemp,ytemp; xtemp=temp_sprites.getx(); ytemp=temp_sprites.gety(); temp_sprites.setx(temp_sprites_bask.getx()); temp_sprites.sety(temp_sprites_bask.gety()); temp_sprites_bask.setx(xtemp); temp_sprites_bask.sety(ytemp); sprites.set(a,temp_sprites); sprites_bask.set(b,temp_sprites_bask); 58

59 Όπου η μεταβλητή allages στον παραπάνω κώδικα είναι ένας αριθμός που καθορίζει τις αλλαγές. Οι επιλογές του χρήστη παίζοντας το παιχνίδι είναι τρεις: (α) να πατήσει κενό, (β) να πατήσει μπάλα ποδοσφαίρου, και (γ) να πατήσει μπάλα μπάσκετ. Το ζητούμενο είναι να πατήσει μπάλες ποδοσφαίρου, και αν καταφέρει να τις πιάσει όλες τερματίζει νικηφόρα το επίπεδο. Στο σχήμα 30 παρουσιάζονται οι δύο πιθανές εκβάσεις του τερματισμού ενός επιπέδου. Σχήμα 22. Ήττα (αριστερά ) Νίκη (δεξιά) Οποιοδήποτε και να είναι το είδος του κλικ, καταχωρείται στη βάση, μαζί με τις συντεταγμένες του, το είδος του, ο χρόνος που αυτό συνέβη, αν είναι λάθος κλικ (κενό, μπάσκετ) και το σκορ. Στην περίπτωση που ο χρήστης πατήσει κενό δεν γίνεται τίποτα εκτός της καταχώρησης του κλικ. Στην περίπτωση που πατήσει μπάλα ποδοσφαίρου, αφαιρείται η μπάλα ποδοσφαίρου από τη λίστα των sprites, αυξάνεται το σκορ, και προστίθεται το γραφικό goal (βλ. σχήμα 31). for (int i = sprites.size()-1; i >= 0; i--) { Sprite sprite = sprites.get(i); if (sprite.iscollition(x,y)) { this, x, y, bmpgoal)); sprites.remove(sprite); score++; klik="podosfairou"; temps.add(new break; TempSprite(temps, 59

60 Σχήμα 23. Στιγμιότυπο του παιχνιδιού με πάτημα μπάλας ποδοσφαίρου Στην περίπτωση που πατήσει μπάλα μπάσκετ, αφαιρείται η μπάλα μπάσκετ από τη λίστα των sprites, μειώνεται το σκορ κατά ένα και προστίθεται το γραφικό Χ (βλ. σχήμα 32) Επίσης, η εφαρμογή προσθέτει τυχαία από 0 έως 4 καινούριες μπάλες ποδοσφαίρου, τις οποίες παράλληλα αφαιρεί από το σκορ. for (int i = sprites_bask.size()-1; i >= 0; i--) { Sprite sprite = sprites_bask.get(i); if (sprite.iscollition(x,y)) { this, x, y, xi)); sprites_bask.remove(sprite); score--; klik="mpasket"; temps.add(new TempSprite(temps, sprites.add(createsprite(r.drawable.ba)); score=score-f break; lathh_pou_ekanes++; for(int f=0;f<num.nextint(5);f++){ 60

61 Σχήμα 32. Στιγμιότυπο του παιχνιδιού με πάτημα μπάλας μπάσκετ. Σε περίπτωση που ο χρήστης καταφέρει να πατήσει όλες τις μπάλες ποδοσφαίρου, ολοκληρώνεται το πρώτο επίπεδο. Ο χρόνος σταματάει και εκπαιδεύουμε τον αλγόριθμο lazy_ibk με τα δεδομένα που έχουμε συλλέξει (η ανάλυση για την εκπαίδευση δίνεται στα επόμενα). Στη συνέχεια ενημερώνεται η βάση με τα δεδομένα που συλλέχτηκαν. if(sprites.isempty()){ time.cancel(); if(epipedo!=4) ibk_ekpaideush(); System.out.println(isTrainingSet.toSummaryString()); try{ entry=new DBUserAdapter(getContext()); entry.open(); String touch=""; for(int megethos=0;megethos<clicks.size();megethos+=5){ touch+=clicks.get(megethos)+" "+Clicks.get(megethos+2)+" "+Clicks.get(megethos+4)+"\n"; entry.updateuser(epipedo, xron),""+lathh_pou_ekanes,touch); entry.close(); "+Clicks.get(megethos+1)+" "+Clicks.get(megethos+3)+" ""+score,""+(60- if(epipedo!=4){ builder.settitle("έπιασες όλες τις μπάλες ποδοσφαίρου σε "+(60-xron)+" δευτερόλεπτα"); 61

62 builder.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int which) { dialog.dismiss(); ); Dialog d = builder.create(); d.show(); else if (epipedo==4){ builder.settitle("συγχαρητήρια τελειώσατε το Auto mode!"); builder.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int which) { dialog.dismiss(); ); Dialog d = builder.create(); d.show(); catch(exception e){ gameloopthread.setrunning(false); return true; Όταν ο χρήστης ολοκληρώσει το πρώτο επίπεδο (έχει πιάσει όλες τις μπάλες ποδοσφαίρου ή έχει τελειώσει ο χρόνος) πατώντας στο κουμπί της επιστροφής, επιστρέφει στο μενού των επιπέδων. Σημειώστε ότι τώρα το μόνο διαθέσιμο για επιλογή κουμπί είναι αυτό του normal mode. 62

63 Σχήμα 33. Το επόμενο level που παίζει ο χρήστης είναι το normal mode Όπως παρατηρούμε και στο σχήμα 33, ο χρήστης είναι έτοιμος να παίξει το normal mode του παιχνιδιού. Στο δεύτερο επίπεδο υπάρχουν δέκα μπάλες ποδοσφαίρου και πέντε μπάλες μπάσκετ. else if(epipedo==2){ for(int i=0;i<10;i++){ sprites.add(createsprite(r.drawable.ba)); for(int i=0;i<5;i++){ sprites_bask.add(createsprite(r.drawable.bask)); Σε αυτό το επίπεδο ο χρήστης οφείλει να πιάσει όλες τις μπάλες ποδοσφαίρου στα πλαίσια του παρεχόμενου χρόνου. Στο επίπεδο που βρισκόμαστε οι μπάλες ποδοσφαίρου εναλλάσσονται με τις μπάλες μπάσκετ κάθε 10 δευτερόλεπτα. Στο σχήμα 34 παρουσιάζεται η διεπαφή του normal mode. case 2: if(xron%10==0) switch_balls(); break; 63

64 Σχήμα 34. Η διεπαφή του παιχνιδιού στο normal mode Εφόσον ο χρήστης τελειώσει με το δεύτερο επίπεδο (έχει πιάσει όλες τις μπάλες ποδοσφαίρου ή έχει τελειώσει ο χρόνος) πατώντας το κουμπί της επιστροφής, επιστρέφει στο μενού των επιπέδων, μόνο που τώρα διαθέσιμο για επιλογή κουμπί είναι το hard mode (βλ.σχήμα 35). Σχήμα 35. To επόμενο επίπεδο που θα παίξει ο χρήστης είναι το hard mode. 64

65 Όπως παρατηρούμε και στο σχήμα 35, ο χρήστης είναι έτοιμος να παίξει το hard mode του παιχνιδιού. Στο τρίτο επίπεδο υπάρχουν είκοσι μπάλες ποδοσφαίρου και δέκα μπάλες μπάσκετ. else if(epipedo==3){ for(int i=0;i<20;i++){ sprites.add(createsprite(r.drawable.ba)); for(int i=0;i<10;i++){ sprites_bask.add(createsprite(r.drawable.bask)); Όπως και στα προηγούμενα επίπεδα έτσι και σε αυτό, το ζητούμενο από το χρήστη είναι να καταφέρει να πιάσει μέσα στο δοθέντα χρόνο τις μπάλες ποδοσφαίρου. Σε αυτό το επίπεδο ο μπάλες εναλλάσσονται γρηγορότερα, αφού πρόκειται για το δυσκολότερο επίπεδο. Έτσι, εδώ έχουμε ορίσει οι αλλαγές να γίνονται κάθε πέντε δευτερόλεπτα. Στο σχήμα 36 παρουσιάζεται η διεπαφή του hard mode. case 3: if(xron%5==0) switch_balls(); break; Σχήμα 36. Η διεπαφή του παιχνιδιού στο hard mode Μόλις ο χρήστης ολοκληρώσει το επίπεδο hard, μπορεί να ξεκινήσει να παίζει το auto mode (βλ. σχήμα 37). 65

66 Σχήμα 37. Η μόνη επιλογή για το χρήστη είναι το auto mode Στο σχήμα 38 παρουσιάζεται η διεπαφή του auto mode. Σε αυτό το επίπεδο παρατηρούμε ότι έχουμε μόνο σκορ και όχι χρόνο. Το επίπεδο τελειώνει ανάλογα με τον τρόπο του παιχνιδιού του χρήστη. Σχήμα 38. Η διεπαφή του παιχνιδιού στο auto mode Σε κάθε κλικ του χρήστη γίνεται αξιολόγηση του γεγονότος, δηλαδή ο αλγόριθμος ελέγχει τι πιθανότητα έχει το κλικ να είναι σωστό ή λάθος, και αναλόγως προβαίνει σε διάφορες ενέργειες: 66

67 αν το κλικ είναι σωστό προσθέτει δύο μπάλες ποδοσφαίρου ή αυξάνει την ταχύτητα αντίθετα, αν θεωρήσει το κλικ λάθος αφαιρεί μια μπάλα ποδοσφαίρου ή μειώνει την ταχύτητα. iexample.setdataset(istrainingset); System.out.println("The instance: " + iexample); double[] fdistribution = cmodel.distributionforinstance(iexample); System.out.println("h pithanothta na einai swsto einai = "+fdistribution[0]); System.out.println("h pithanothta na einai lathos einai = "+fdistribution[1]); if(fdistribution[0]>fdistribution[1]){ int c=num.nextint(2); if(c==0) { for(int f=0;f<2;f++){ sprites.add(createsprite(r.drawable.ba)); else{ for(int f=0;f<sprites.size();f++){ sprites.get(f).aukshsh_taxythtas(); else{ int v=num.nextint(2); if(v==0){ try{ sprites.remove(0); catch(exception e){ else{ for(int f=0;f<sprites.size();f++){ sprites.get(f).meiwsh_taxythtas(); Όταν το επίπεδο ολοκληρωθεί, ο χρήστης επιλέγοντας το return button επιστρέφει στην οθόνη που έχει ως μοναδική επιλογή το auto mode, όπως παρατηρούμε και το σχήμα 39. Ξαναπατώντας το return έχει τη δυνατότητα να επιστρέψει στην αρχική οθόνη. 67

68 Σχήμα 39. Μετά το τέλος των τριών επιπέδων ο χρήστης παίζει στο auto mode Σε αυτό το σημείο ο χρήστης είναι ικανός να δημιουργήσει ένα νέο λογαριασμό είτε να πατήσει σύνδεση (login) και να παίξει. Αν επιλέξει να συνδεθεί εμφανίζεται η οθόνη για καταχώρηση στοιχείων. Υπεύθυνη για αυτήν την οθόνη είναι η LOGIN, η οποία διαχειρίζεται την εξαίρεση για τα κενά πεδία όπως και η ACCOUNT αλλά και την εξαίρεση για την αυθεντικοποίηση του χρήστη: public class Not_Authentication extends Exception{ public String message(){ return "Δημιουργήστε πρώτα έναν λογαριασμό"; Επιπλέον, αναζητά στη βάση δεδομένων αν ο λογαριασμός υπάρχει ή όχι ώστε να συνδεθεί ο χρήστης στο παιχνίδι. public void onclick(view v) { if(login_button.equals(v)){ try { String username = name.gettext().tostring(); String password = pwd.gettext().tostring(); if(username.equals("") password.equals(""))throw new Exception_Gia_Kena_Pedia(); DBUserAdapter dbuser = new DBUserAdapter(LOGIN.this); dbuser.open(); 68

69 new Not_Authentication(); try{ if(dbuser.login(username, password)==false) throw Toast.makeText(LOGIN.this, "Επιτυχημένη σύνδεση", Toast.LENGTH_LONG).show(); dbuser.close(); Class ourclass; try { ourclass = Class.forName("icsd06007.icsd06113.dipl.AUTO_GAME"); Intent ourintent = new Intent(LOGIN.this, ourclass); startactivity(ourintent); catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printstacktrace(); catch(not_authentication ex){ Toast.makeText(LOGIN.this, ex.message(), Toast.LENGTH_LONG).show(); catch(exception e){ Toast.makeText(LOGIN.this,e.getMessage(), Toast.LENGTH_LONG).show(); catch(exception_gia_kena_pedia e){ Toast.makeText(LOGIN.this, Toast.LENGTH_LONG).show(); e.message(), 6.4 Η Βάση Δεδομένων Στις προηγούμενες ενότητες του κεφαλαίου αναφέραμε πολλές φορές τη βάση δεδομένων καθώς και κάποια από τα χαρακτηριστικά του χρήστη που αποθηκεύονται σε αυτήν. Σε αυτήν την ενότητα θα περιγράψουμε αυτήν τη βάση. Αρχικά θα δούμε από ποιες στήλες αποτελείται, δηλαδή τι αποθηκεύουμε μέσα στη βάση δεδομένων της εφαρμογής. public static final String KEY_ROWID = "_id"; public static final String KEY_USERNAME = "username"; public static final String KEY_PASSWORD = "password"; public static final String KEY_EASY = "EASY"; public static final String KEY_EASY_SCORE = "easyscore"; public static final String KEY_EASY_TIME = "easytime"; public static final String KEY_EASY_FAULTS= "easylathh"; public static final String KEY_EASY_KLIKS= "easyklik"; public static final String KEY_NORMAL = "NORMAL"; 69

70 public static final String KEY_NORMAL_SCORE = "normalscore"; public static final String KEY_NORMAL_TIME = "normaltime"; public static final String KEY_NORMAL_FAULTS= "normallathh"; public static final String KEY_NORMAL_KLIKS= "normalklik"; public static final String KEY_HARD = "HARD"; public static final String KEY_HARD_SCORE = "hardscore"; public static final String KEY_HARD_TIME = "hardtime"; public static final String KEY_HARD_FAULTS= "hardlathh"; public static final String KEY_HARD_KLIKS= "hardklik"; Το κομμάτι του κώδικα που παρουσιάζεται, μας πληροφορεί για το ποιες μεταβλητές καταχωρούνται στη βάση δεδομένων. Παρατηρούμε ότι για τον κάθε χρήστη αποθηκεύουμε ένα id, το username, password, και για κάθε επίπεδο αποθηκεύουμε ξεχωριστά το σκορ, το χρόνο, τα συνολικά λάθη και τα κλικ (με τα χαρακτηριστικά τους) που έγιναν σε εκείνο το επίπεδο. db.execsql("create TABLE " + DATABASE_TABLE + " ( " + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_USERNAME + " TEXT NOT NULL," + KEY_PASSWORD + " TEXT NOT NULL," + KEY_EASY + " TEXT NOT NULL," + KEY_EASY_SCORE + " TEXT NOT NULL," + KEY_EASY_TIME + " TEXT NOT NULL," + KEY_EASY_FAULTS + " TEXT NOT NULL," + KEY_EASY_KLIKS + " TEXT NOT NULL," + KEY_NORMAL + " TEXT NOT NULL," + KEY_NORMAL_SCORE + " TEXT NOT NULL," + KEY_NORMAL_TIME + " TEXT NOT NULL," + KEY_NORMAL_FAULTS + " TEXT NOT NULL," + KEY_NORMAL_KLIKS + " TEXT NOT NULL," + KEY_HARD + " TEXT NOT NULL," + KEY_HARD_SCORE + " TEXT NOT NULL," + KEY_HARD_TIME + " TEXT NOT NULL," + KEY_HARD_FAULTS + " TEXT NOT NULL," + KEY_HARD_KLIKS + " TEXT NOT NULL);"); Για τις ανάγκες της εφαρμογής χρησιμοποιήθηκε η SQLite. Εισάγοντας τις αντίστοιχες βιβλιοθήκες στον κώδικα, ο Eclipse παρέχει τη δυνατότητα να γίνει χρήση της SQLite. Παρακάτω παρατίθενται οι βιβλιοθήκες που προστέθηκαν στην εφαρμογή. import android.database.cursor; import android.database.sqlexception; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; 70

71 7. Ανάλυση Δεδομένων Σε αυτό το κεφάλαιο θα περιγραφεί η διαδικασία της ανάλυσης των δεδομένων που συλλέχτηκαν κατά τη διάρκεια χρήσης της εφαρμογής και αποθηκεύτηκαν στη βάση δεδομένων της συσκευής. Αυτό έχει ως στόχο να βρεθεί ο καταλληλότερος αλγόριθμος μηχανικής μάθησης, ο οποίος και στη συνέχεια εφαρμόστηκε στην υπάρχουσα εφαρμογή. Για το λόγο αυτό δώσαμε σε δεκαπέντε συμμετέχοντες που δεν είχαν ξανά έρθει σε επαφή με το παιχνίδι να πειραματιστούν με το κομμάτι των τριών επιπέδων δυσκολίας. Καθώς οι χρήστες αλληλεπιδρούσαν με την εφαρμογή, στη βάση αποθηκεύονταν τα δεδομένα για καθένα από αυτούς. Στη συνέχεια τους δώσαμε να συμπληρώσουν ένα ερωτηματολόγιο, το οποίο παρατίθεται σε παράρτημα της διπλωματικής (Παράρτημα ΙΙ). Τονίζουμε ότι τα αποτελέσματα του ερωτηματολογίου δεν επηρέασαν τα πειράματα μας και τη συμπεριφορά του παιχνιδιού, αλλά χρησιμοποιήθηκαν ως μια πρώτη κριτική για την εφαρμογή και της διάθεσης του χρήστη να παίξει. Όπως αναφέρθηκε και σε προηγούμενο κεφάλαιο αυτά τα δεδομένα στη συνέχεια μελετήθηκαν μέσω του προγράμματος WEKA και συγκεντρώσαμε κάποια αποτελέσματα. 7.1 Αλγόριθμοι μηχανικής μάθησης Σε αυτή την ενότητα περιγράφονται οι αλγόριθμοι που επιλέχθηκαν για να εκτελεστούν τα πειράματα στο περιβάλλον του weka. Ibk (k-nn) algorithm Στην αναγνώριση προτύπων, ο αλγόριθμος k-nn (nearest neighbor) είναι μία μέθοδος για την ταξινόμηση των αντικειμένων με βάση το πλησιέστερο παράδειγμα εκπαίδευσης στο χώρο των χαρακτηριστικών. Ο k-nn είναι τύπου instance based learning ή lazy-learning, όπου όλη η διαδικασία περιορίζεται τοπικά και ο συνολικός υπολογισμός αναβάλλεται μέχρι την ταξινόμηση. Ο συγκεκριμένος αλγόριθμος είναι από τους πιο απλούς αλγόριθμους της μηχανικής μάθησης: ένα αντικείμενο χαρακτηρίζεται από την πλειοψηφία των γειτόνων του, με το αντικείμενο να υπάγεται στην κλάση που είναι πιο συχνή μεταξύ των k-γειτόνων (k θετικός ακέραιος). Αν το k=1 τότε το αντικείμενο έχει ανατεθεί στην κατηγορία του κοντινότερου γείτονα. 71

72 Random Forest Ο Random Forest είναι ένα σύνολο από δέντρα απόφασης, και παράγει ως έξοδο την κλάση, η οποία είναι η πιο διαδεδομένη κλάση που παράγεται από τα ανεξάρτητα δέντρα. Έχει πολύ καλή φήμη στο χώρο της μηχανικής μάθησης ως ένας ευέλικτος αλγόριθμος που παράγει ακριβείς ταξινομητές για πολλούς τύπους δεδομένων. Το generalization error για ένα σύνολο από δέντρα ταξινομητές εξαρτάται από τη δύναμη των μεμονωμένων δέντρων και της συσχέτισης μεταξύ τους. Radial Basis Function (RBF Network) Ο RBF είναι ένας τύπος Τεχνητών Νευρωνικών Δικτύων, που χρησιμοποιεί radial basis functions, που είναι πραγματικές συναρτήσεις όπου η τιμή τους εξαρτάται μόνο από την απόσταση από την πηγή, με εφαρμογή σε προβλήματα με πλήρη επίβλεψη. Ο RBF πρόκειται για ένα single hidden layer feed-forward network με γραμμική έξοδο των λειτουργιών μεταφοράς πάνω στους κόμβους κρυφών επιπέδων. Μπορεί να εφαρμοστεί σε πολλά προβλήματα παλινδρόμησης, ταξινόμησης και χρονικών προβλέψεων. BF Tree Ο συγκεκριμένος αλγόριθμος αναζήτησης εξερευνά τον πιο πολλά υποσχόμενο κόμβο. Η κλάση χρησιμοποιεί δυαδική διάσπαση τόσο για τις ονομαστικές όσο και για τις αριθμητικές τιμές. 7.2 Test Options Εκτός όμως από τους αλγόριθμους που επιλέγησαν για να γίνουν τα πειράματα, έπρεπε να επιλεγεί και με ποια μέθοδο θα γίνουν. Πιο συγκεκριμένα το WEKA μας παρέχει τέσσερις πιθανές επιλογές. Αυτές είναι: Use Training Set Supplied test set Cross-validation. Percentage Split Η μέθοδος που επιλέχτηκε είναι η Percentage Split. Αυτό που κάνει η συγκεκριμένη μέθοδος είναι να: χωρίζει τυχαία το σύνολο των δεδομένων σε δύο κατηγορίες: 72

73 training set και testing set. H training set χρησιμοποιείται για να εκπαιδεύσει τον ταξινομητή, ενώ η test set χρησιμοποιείται για να υπολογίσει το ποσοστό λάθους στον εκπαιδευμένο ταξινομητή. Τα λάθη που γίνονται, υπολογίζονται προκειμένου να παραχθεί ο μέσος όρος των λαθών. 7.3 Πειράματα στο WEKA Αφού λοιπόν αναφέρθηκαν οι αλγόριθμοι που θα χρησιμοποιηθούν, σε αυτήν την ενότητα θα περιγραφούν όλα τα υπόλοιπα στοιχεία από το αρχείο.arff έως και τα αποτελέσματα από τους αλγορίθμους Το αρχείο.arff Σχήμα 40. Το arff αρχείο ενός χρήστη Προκειμένου να είμαστε ικανοί να εκτελέσουμε τα πειράματα μας στο WEKA μεταφέραμε τα δεδομένα κάθε χρήστη από τη βάση δεδομένων της συσκευής σε ξεχωριστά αρχεία.arff που υποστηρίζονται από το WEKA. Όταν πραγματοποιήθηκε αυτή η διεργασία και για τους δεκαπέντε χρήστες, συλλέχθηκαν τα αποτελέσματα τρέχοντας τους αλγορίθμους. Στην εγγραφή που παρουσιάζεται στο σχήμα 40 παρουσιάζονται τα στοιχεία που θα επεξεργαστούμε με τους αλγορίθμους. Στην ίδια εγγραφή στη στήλη klassi θεωρήσαμε ότι ένα κλικ παίρνει την τιμή 0 όταν είναι 73

74 αποτυχημένο, δηλαδή, κενό ή μπάλα μπάσκετ, ενώ παίρνει την τιμή 1 όταν το κλικ είναι επιτυχημένο, δηλαδή μπάλα ποδοσφαίρου. Πίνακας 1. Μέσοι όροι για τα αποτελέσματα με όλα τα δεδομένα. Στον πίνακα 1 παρατηρούμε τους μέσους όρους των ποσοστών όλων των χρηστών για τα πειράματα με όλα τα δεδομένα. Πίνακας 2. Μέσοι όροι για όλα τα δεδομένα χωρίς το είδος. Στον πίνακα 2 παρατηρούμε τους μέσους όρους των ποσοστών όλων των χρηστών για τα πειράματα με όλα τα δεδομένα εκτός από το είδος. Τα πειράματα σε αυτούς τους δύο πίνακες μας δείχνουν το σημαντικότατο ρόλο που έχει το είδος του κλικ. Αυτό το παρατηρούμε από το πόσο το ποσοστό επιτυχίας μειώνεται στο δεύτερο πίνακα με την αφαίρεση αυτού του χαρακτηριστικού. 74

75 Πίνακας 3. Μέσοι όροι για τα χαρακτηιριστικά κλικ,χ,ψ, είδος. Στον Πίνακα 3 παρατηρούμε τους μέσους όρους των ποσοστών όλων των χρηστών για τα πειράματα με τα συγκεκριμένα χαρακτηριστικά που φαίνονται και στον πίνακα. Πίνακας 4. Μέσοι όροι μόνο για το είδος Στον πίνακα 4 παρατηρούμε τους μέσους όρους των αλγορίθμων για όλους τους χρήστες για το χαρακτηριστικό «είδος». Στον ίδιο πίνακα παρατηρούμε και το μεγαλύτερο ποσοστό επιτυχίας που προέκυψε από τα πειράματα μας. Στη συνέχεια κατασκευάσαμε και ένα ενιαίο αρχείο.arff για τον πληθυσμό των χρήστών, το οποίο έχει τη μορφή που παρουσιάζεται στο Σχήμα

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.

Διαβάστε περισσότερα

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης ΠΜΣ Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Διπλωματική Εργασία Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης Ονοματεπώνυμο: Βλάχος Αθανάσιος Επιβλέπων

Διαβάστε περισσότερα

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

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

Διαβάστε περισσότερα

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android Ιωάννης Γιαννόπουλος, ΑΜ: 0430 Γεώργιος Δούρος, ΑΜ: 0686 Επιβλέπων: Γεώργιος Ασημακόπουλος Σεπτέμβριος 2014

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη εφαρμογής ασφαλείας για τον έλεγχο, περιορισμό και διαχείριση της διεπαφής χρήστη σε περιβάλλον Android.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη εφαρμογής ασφαλείας για τον έλεγχο, περιορισμό και διαχείριση της διεπαφής χρήστη σε περιβάλλον Android. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη εφαρμογής ασφαλείας για τον έλεγχο, περιορισμό και διαχείριση της διεπαφής χρήστη σε περιβάλλον Android Σπουδάστρια Παρασκευή Μπαράκου ΑΜ-9100 Επιβλέπων Καθηγητής Ιωάννης Τσούλος

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning Βόλτσης Βαγγέλης Α.Μ. 2011030017 Η παρούσα εργασία πραγματοποιήθηκε στα πλαίσια του μαθήματος Αυτόνομοι Πράκτορες και σχετίζεται με λήψη αποφάσεων

Διαβάστε περισσότερα

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών Digital Academy Εισαγωγή στην ανάπτυξη Android Εφαρμογών Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΕΝΟΤΗΤΑ 1 ΠΡΩΤΗ ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ ANDROID... 4 1.1 ΕΙΣΑΓΩΓΗ... 4 1.2 ΠΗΓΕΣ ΓΝΩΣΗΣ... 4 1.3 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ... 5 1.4

Διαβάστε περισσότερα

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

ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα : ΥΛΟΠΟΙΗΣΗ ΞΕΝΟΓΛΩΣΣΗΣ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΛΑΤΦΟΡΜΑ ANDROID Όνοματεπώνυμο : Στέκας Ιγνάτιος Επιβλέπων : Σωτήριος Κοντογιάννης Ημερομηνία

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010 Python και Python και Νίκος Νοδαράκης 17 Μαΐου 2010 Python και Τι είναι το ; Περιγραφή του Ορισµός Το είναι µια στοίβα λογισµικού για ϕορητές συσκευές που περιλαµβάνει ένα λειτουργικό σύστηµα, middleware

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Linux Terminal Server Project

Linux Terminal Server Project Linux Terminal Server Project Ένα κεντρικό σύστημα διαχείρισης των τερματικών κοινού της Βιβλιοθήκης & Κέντρου Πληροφόρησης του Πανεπιστημίου Μακεδονίας Κολοβός Φίλιππος filippos@uom.gr Ευάγγελος Μπάνος

Διαβάστε περισσότερα

"Εφαρμογή Android για λήψη ανακοινώσεων" ("Android application for receiving announcements") Πτυχιακή Εργασία. Κρουσταλάκης Νικόλαος

Εφαρμογή Android για λήψη ανακοινώσεων (Android application for receiving announcements) Πτυχιακή Εργασία. Κρουσταλάκης Νικόλαος "Εφαρμογή Android για λήψη ανακοινώσεων" ("Android application for receiving announcements") Πτυχιακή Εργασία Κρουσταλάκης Νικόλαος Επιβλέπων Καθηγητής: Παπαδάκης Νικόλαος Ηράκλειο, Απρίλιος 2015 2 "Εφαρμογή

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογής Ταξίμετρου σε Android

Ανάπτυξη Εφαρμογής Ταξίμετρου σε Android 2014 Ανάπτυξη Εφαρμογής Ταξίμετρου σε Android Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μεταπτυχιακό Πρόγραμμα Σπουδών: «Ψηφιακές Επικοινωνίες και Δίκτυα» Ανάπτυξη Εφαρμογής Ταξίμετρου σε πλατφόρμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

Διαβάστε περισσότερα

Slalom Race Computer Game on Scratch

Slalom Race Computer Game on Scratch Slalom Race Computer Game on Scratch Μπογιατζή Ελισάβετ ¹, Μεταξά Παυλίνα², Νεστοροπούλου Ευσεβεία³, Μαρόγλου Ευαγγελία 4 1 boelisabet@gmail.com 2 pavlinamet2@gmail.com 3 makis.nestoro@hotmail.com 4 euaggeliam2000@gmail.com

Διαβάστε περισσότερα

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

Διαβάστε περισσότερα

Πώς το λένε Computer game στο Scratch

Πώς το λένε Computer game στο Scratch Πώς το λένε Computer game στο Scratch Μιχαηλία Γκαλλέ¹, Χριστόδουλος Σατραζέμης², 1 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου mixaelagalle@gmail.com 2 Μαθητής Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου linosatra@gmail.com

Διαβάστε περισσότερα

Κοινοποίηση ανώνυμων δεδομένων στη Lenovo. Περιεχόμενα. Harmony

Κοινοποίηση ανώνυμων δεδομένων στη Lenovo. Περιεχόμενα. Harmony Κοινοποίηση ανώνυμων δεδομένων στη Lenovo Περιεχόμενα Κοινοποίηση ανώνυμων δεδομένων στη Lenovo... 1 Harmony... 1 Lenovo Companion 3.0... 2 Lenovo Customer Engagement Service... 3 Lenovo Experience Improvement

Διαβάστε περισσότερα

Ταχύτητα, Απλότητα & Αξιοπιστία

Ταχύτητα, Απλότητα & Αξιοπιστία Ταχύτητα, Απλότητα & Αξιοπιστία Αρχιτεκτονική Μηχανισμοί Αυτοελέγχου Συνδεσιμότητα Περιβάλλον Εργασίας Πληροφορίες Σχήματος Report Builder Import Manager Αρχιτεκτονική Real Time Multithreading Σταθερότητα

Διαβάστε περισσότερα

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου Διπλωματική Εργασία Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου Ποτσίκα Ηλιάνα

Διαβάστε περισσότερα

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος Παρουσίαση

Διαβάστε περισσότερα

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

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). ΙΔΡΥΜΑ ΝΕΟΛΑΙΑΣ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Καλαμάτα, 2015 Το Διαδίκτυο Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). Πρόκειται

Διαβάστε περισσότερα

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. QEMS TUTORIAL CRM Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. ΕΚΔΟΣΗ 1.0.1 + 26/6/2014 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 2 LOGIN... 3 δικαιωματα ΕΦΑΡΜΟΓΗς... 4 ΙΔΙΟΚΤΗΤΗΣ... 4 ADMIN / MANAGER... 4 ΥΠΑΛΗΛΟΣ...

Διαβάστε περισσότερα

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση. Οδηγίες βήμα προς βήμα για την εφαρμογή Με την εφαρμογή αυτή μπορείτε να χρησιμοποιήσετε ψηφιακά βιβλία (e-books) σε μορφή «Adobe Digital Editions epub» και «Adobe Digital Editions PDF», αρχεία ήχου (e-audios),

Διαβάστε περισσότερα

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

Διαβάστε περισσότερα

Πτυχιακή Εργασία Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Η Ασύρματη Επικοινωνία, χρησιμοποιώντας

Πτυχιακή Εργασία Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Η Ασύρματη Επικοινωνία, χρησιμοποιώντας Βασικές Έννοιες Πτυχιακή Εργασία 2015 Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping). Η Ασύρματη Επικοινωνία, χρησιμοποιώντας το πρωτόκολλο WiFi.

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων

Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Μηχανισμοί Μάθησης και η Χρήση τους στην Επικύρωση της Ποιότητας Νέων Παιγνίων Γκεζερλής Σπύρος Επιβλέπων Δημήτριος Καλλές Εξεταστική Επιτροπή Δημήτρης Καλλές Λοΐζος Μιχαήλ Αρτίκης Αλέξανδρος Παρουσίαση

Διαβάστε περισσότερα

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα «Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα Σεμινάριο 8: Χρήση Μηχανικής Μάθησης στην Εξαγωγή Πληροφορίας Ευάγγελος Καρκαλέτσης, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων & Λογισμικού, Ινστιτούτο

Διαβάστε περισσότερα

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

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

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΣΤΟΧΟΙ: 1. Λογισμικό 2. Λογισμικό Λειτουργικού Συστήματος 3. Προσαρμοστικό Γραφικών Χρήστη 4. Λογισμικών Εφαρμογών 5. Διαφορά Μεταξύ Λογισμικού Λειτουργικού Συστήματος Και

Διαβάστε περισσότερα

Οδηγίες για αξιολόγηση στο πλαίσιο ομότιμης συνεργατικής μάθησης

Οδηγίες για αξιολόγηση στο πλαίσιο ομότιμης συνεργατικής μάθησης Οδηγίες για αξιολόγηση στο πλαίσιο ομότιμης συνεργατικής μάθησης Τι είναι το PeLe; Το PeLe είναι ένα διαδικτυακό περιβάλλον που ενθαρρύνει την αξιολόγηση στο πλαίσιο της ομότιμης συνεργατικής μάθησης και

Διαβάστε περισσότερα

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP) ΤΜΗΜΑ ΦΥΣΙΚΗΣ Α.Π.Θ. ΕΡΓΑΣΤΗΡΙΟ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP) Κ. Παρασκευόπουλος Αναπλ. Καθηγητής Θεσσαλονίκη 2004 1. Μερικά κλασσικά ερωτήματα

Διαβάστε περισσότερα

Κοινωνική Αλληλεπίδραση

Κοινωνική Αλληλεπίδραση Κοινωνική Αλληλεπίδραση Τεχνολογία Σύγχρονης Επικοινωνίας Dirk Sommermeyer, IAQ e.v. Θέματα Τύποι Επικοινωνίας Προδιαγραφές σε μηχανήματα Υπολογιστών (hardware) Προδιαγραφές σε λογισμικό (software) Διαδικασίες

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη mobile εφαρμογής διεπαφής χρήστη, για τις υπηρεσίες

Διαβάστε περισσότερα

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5 A. EVANS, K. MARTIN, M. A. POATSY Εισαγωγή στην πληροφορική Θεωρία και πράξη 2 η έκδοση Κεφάλαιο 5 Λογισμικό συστημάτων: Το λειτουργικό σύστημα, τα βοηθητικά προγράμματα και η διαχείριση αρχείων Τα βασικά

Διαβάστε περισσότερα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

Διαβάστε περισσότερα

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΤΟ

Διαβάστε περισσότερα

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΕΡΕΥΝΑΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΕΠΙΧΕΙΡΗΣΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ «ΑΝΤΑΓΩΝΙΣΤΙΚΟΤΗΤΑ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ» ΚΑΙ ΠΕΡΙΦΕΡΕΙΩΝ ΣΕ ΜΕΤΑΒΑΣΗ ΕΘΝΙΚΟ ΣΤΡΑΤΗΓΙΚΟ ΠΛΑΙΣΙΟ

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Δρ. Βασίλειος Σάλτας 1, Αλέξης Ηλιάδης 2, Ιωάννης Μουστακέας 3 1 Διδάκτωρ Διδακτικής Μαθηματικών, Επιστημονικός Συνεργάτης ΑΣΠΑΙΤΕ Σαπών coin_kav@otenet.gr

Διαβάστε περισσότερα

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ 5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ 5.1 Εισαγωγή Το πρακτικό κομμάτι της πτυχιακής μας εργασίας αφορά την δημιουργία μιας λειτουργικής ιστοσελίδας με την χρήση της πλατφόρμας του Weebly, που αποτελεί μια σύγχρονη

Διαβάστε περισσότερα

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services

Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Εφαρµογές πλοήγησης για φορητές συσκευές µε τη χρήση Web Services Γεώργιος Σταυρουλάκης gstavr@dblab.ece.ntua.gr ιπλωµατική εργασία στο Εργαστήριο Συστηµάτων Βάσεων Γνώσεων και εδοµένων Επιβλέπων: Καθηγητής

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE... 2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ... 3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ... 4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)... 5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ... 6 Κεντρικό

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ Σχεδίαση Διεπαφής Χρήστη (user interface) για Διαδραστική Εφαρμογή Αναζήτησης Πλοίων σε Τοπική Εμβέλεια, για Κινητές Συσκευές με

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

ηλικία Android 4.1.1 Το Αληθινό Εκπαιδευτικό Tablet για Παιδιά

ηλικία Android 4.1.1 Το Αληθινό Εκπαιδευτικό Tablet για Παιδιά Εκπαιδευτικές Εφαρµογές ειδικά σχεδιασµένες στα ελληνικά για το Clempad, προσφέρουν την απόλυτη εµπειρία παιχνιδιού και µάθησης Γονικός Έλεγχος διαχείριση περιεχοµένου Ασφαλές Internet έλεγχος µε ρυθµίσεις

Διαβάστε περισσότερα

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών Παρουσίαση πτυχιακής εργασίας Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών Επιβλέπων Καθηγητής: Αθανάσιος Πανταζόπουλος Φοιτητής: Στράτος Παντατζόγλου Περιγραφή Σκοπός της πτυχιακής εργασίας

Διαβάστε περισσότερα

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

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

Με την ολοκλήρωση της διαδικασίας μπορούμε αν θέλουμε να επιλέξουμε να ανοίξει ή όχι η εφαρμογή που έχει εγκατασταθεί. Πώς φτιάχνω Εφαρμογές για Android με το App Inventor Τι χρειάζεται για να ξεκινήσουμε; Η λειτουργία του App Inventor είναι κυρίως διαδικτυακή. Για να ξεκινήσει κανείς δηλαδή δεν απαιτείται ούτε κάποιο

Διαβάστε περισσότερα

αντίστοιχο γεγονός. Όταν όντως το κουμπί

αντίστοιχο γεγονός. Όταν όντως το κουμπί Εισαγωγή στην αλληλεπίδραση Τα έργα που έχουμε αναπτύξει έως τώρα τρέχουν ένα σενάριο και σταματούν. Τα αντικείμενά μας αλλάζουν θέση και ενδυμασίες, παίζουν διαφορετικούς ήχους και ζωγραφίζουν διάφορα

Διαβάστε περισσότερα

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

Διαβάστε περισσότερα

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα METROPOLIS Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα Ενσωματωμένα συστήματα Ορίζονται ως ηλεκτρονικά συστήματα τα οποία χρησιμοποιούν υπολογιστές και ηλεκτρονικά υποσυστήματα για να εκτελέσουν

Διαβάστε περισσότερα

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417 ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Δημητρίου Σωτήρης 6417 Παιχνίδια διάχυτου υπολογισμού Τεχνολογίες Σχεδιασμός Υλοποίηση Αξιολόγηση Προοπτικές Ένα παιχνίδι διάχυτου υπολογισμού είναι ένα παιχνίδι που έχει ένα ή περισσότερα

Διαβάστε περισσότερα

Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch

Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch Επαρκές Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: Ουρανία Καλαντζή ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ

Διαβάστε περισσότερα

APP INVENTOR ΟΔΗΓΟΣ 8 Οκτωβρίου 2018

APP INVENTOR ΟΔΗΓΟΣ 8 Οκτωβρίου 2018 Πώς φτιάχνω Εφαρμογές για Android με το App Inventor Έχετε μια ιδέα για μια mobile εφαρμογή, αλλά δεν ξέρετε πώς να την υλοποιήσετε; Το App Inventor είναι ένα χρήσιμο εργαλείο για κάθε αρχάριο προγραμματιστή

Διαβάστε περισσότερα

Χρήση του Office 365 σε τηλέφωνο Android

Χρήση του Office 365 σε τηλέφωνο Android Χρήση του Office 365 σε τηλέφωνο Android Οδηγός γρήγορης εκκίνησης Έλεγχος ηλεκτρονικού ταχυδρομείου Ρυθμίστε το τηλέφωνο Android για αποστολή και λήψη ηλεκτρονικού ταχυδρομείου από το λογαριασμό του Office

Διαβάστε περισσότερα

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055) 1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό

Διαβάστε περισσότερα

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής Μάθημα 7ο Πολυμέσα 7.Α.1 Παρουσιάσεις Οι παρουσιάσεις είναι μια εφαρμογή που χρησιμεύει στην παρουσίαση των εργασιών μας. Αποτελούν μια συνοπτική μορφή των εργασιών μας. Μέσω δημιουργίας διαφανειών, μορφοποιήσεων

Διαβάστε περισσότερα

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE...2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ...3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ...4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)...5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ...6 Κεντρικό μενού

Διαβάστε περισσότερα

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διαχείριση Διεργασιών Ένα σημαντικό εργαλείο

Διαβάστε περισσότερα

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Βερονίκης Σπύρος Τμήμα Αρχειονομίας- Βιβλιοθηκονομίας, Ιόνιο Πανεπιστήμιο spver@ionio.gr Stoica Adrian Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Tank Rescue Computer Game σε Scratch

Tank Rescue Computer Game σε Scratch Tank Rescue Computer Game σε Scratch Μπέλτσος Νικόλαος 1, Παναγιωτόπουλος Ευάγγελος 2, Παπαδόπουλος Βασίλης 3, Παπουδάρης Κωνσταντίνος 4 1 sokin2@yahoo.gr 2 vaggelispan@yahoo.gr 3 papadopoulos_vasilis@yahoo.gr

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

Διαβάστε περισσότερα

Browsers. Λειτουργικότητα και Παραμετροποίηση

Browsers. Λειτουργικότητα και Παραμετροποίηση Browsers Λειτουργικότητα και Παραμετροποίηση 1 Πίνακας περιεχομένων Γενική περιγραφή... 3 Γενικά... 3 Ποιο αναλυτικά τα μέρη ενός browser... 4 Φίλτρα αναζήτησης... 4 Σενάρια αναζήτησης... 4 Όψεις εμφάνισης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα 6ο Πανελλήνιο Συνέδριο των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη» Σύρος 6-8 Μαϊου 2011 Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά

Διαβάστε περισσότερα

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

Διαβάστε περισσότερα

ΑΝΑΠΑΡΑΓΩΓΗ ΜΑΘΗΣΙΑΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ ΦΩΤΟΔΕΝΤΡΟ ΜΑΘΗΣΙΑΚΑ ΑΝΤΙΚΕΙΜΕΝΑ. Οδηγίες για Java

ΑΝΑΠΑΡΑΓΩΓΗ ΜΑΘΗΣΙΑΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ ΦΩΤΟΔΕΝΤΡΟ ΜΑΘΗΣΙΑΚΑ ΑΝΤΙΚΕΙΜΕΝΑ. Οδηγίες για Java ΑΝΑΠΑΡΑΓΩΓΗ ΜΑΘΗΣΙΑΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ ΦΩΤΟΔΕΝΤΡΟ ΜΑΘΗΣΙΑΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Οδηγίες για Java ΙΝΣΤΙΤΟΥΤΟ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΕΚΔΟΣΕΩΝ ΔΙΟΦΑΝΤΟΣ Φεβρουάριος 2018 Οι υπηρεσίες αναπτύχθηκαν από το ΙΤΥΕ

Διαβάστε περισσότερα

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Γνωριμία με την Open eclass

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Γνωριμία με την Open eclass Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass Εισαγωγή στην Open eclass Ταυτότητα της πλατφόρμας Η πλατφόρμα Open eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και

Διαβάστε περισσότερα

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος Κεφάλαιο 2: Λογισμικό (Software) 1 2.1 Λογισμικό Συστήματος και Λογισμικό Εφαρμογών Λογισμικό Συστήματος: διαχειρίζεται το υλικό του υπολογιστή και αποτελεί τη βάση πάνω στην οποία αναπτύσσεται και εκτελείται

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Πρακτική εφαρμογή στην ειδικότητα: Λογισμικό για τη δημιουργία εργασίας εξαμήνου

Πρακτική εφαρμογή στην ειδικότητα: Λογισμικό για τη δημιουργία εργασίας εξαμήνου Το SketchUp αρχικά ήταν ένα πρόγραμμα της εταιρείας @Last Software σχεδιασμένο για αρχιτέκτονες, πολιτικούς μηχανικούς, σκηνοθέτες, παραγωγούς video-games και ξεκίνησε να γίνεται γνωστό ως ένα γενικής

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ταξιδιωτικός οδηγός της Θεσσαλονίκης για Android

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ταξιδιωτικός οδηγός της Θεσσαλονίκης για Android ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ταξιδιωτικός οδηγός της Θεσσαλονίκης για Android Των φοιτητών Γιακουμή Ζαχαρία Επιβλέπων καθηγητής Κεραμόπουλος Ευκλείδης Αρ. Μητρώου: 073232 Παζαρλόγλου Ευαγγελία Αρ. Μητρώου: 073244

Διαβάστε περισσότερα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

Διαβάστε περισσότερα

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς Εργασία-3: Παρουσίαση Εργασίας Ομάδα Α. Προετοιμασία Αναφοράς Αρκετοί πιστεύουν πως η επιτυχία μιας παρουσίασης είναι δεδομένη εάν ο παρουσιαστής κατέχει το θέμα που πρόκειται να παρουσιάσει και είναι

Διαβάστε περισσότερα