Available courses

Το μάθημα είναι οργανωμένο σε 6 ενότητες. Προβλέπεται ωστόσο ενδιάμεση on-line επικοινωνία με σκοπό την υποστήριξη της μαθησιακής διαδικασίας.

Ενότητα 1. WorkShop επάνω στο αντικειμενοστραφές μοντέλο. Πιο συγκεκριμένα, σε εύλογο χρονικό διάστημα πριν την διεξαγωγή του μαθήματος, θα δοθεί μια άσκηση στους σπουδαστές της οποίας η λύση ενσωματώνει τα βασικά χαρακτηριστικά του αντικειμενοστραφούς μοντέλου και άλλα σύγχρονα πρότυπα, όπως lambda expressions, streaming, functional programming, κά. Κατά την διάρκεια του μαθήματος σε συνεργασία με τους σπουδαστές και υπο την καθοδήγηση του διδάσκοντος θα γίνει ανάλυση του προβλήματος (κειμένου), θα σχεδιαστούν οι κλάσεις και θα προχωρήσει έως ένα βαθμό η υλοποίηση. Διάρκεια Ενότητας: 4 ώρες.

Ενότητα 2. Κατά την χρονικό διάστημα από την διδασκαλία της ενότητας 1 μέχρι την διδασκαλία της ενότητας 2, θα υπάρχει συνεχής on-line επικοινωνία μεταξύ διδάσκοντος και σπουδαστών ώστε οι σπουδαστές να υποστηριχθούν επαρκώς στην προσπάθεια τους να υλοποιήσουν την άσκηση που τους ανατέθηκε στο πλαίσιο της ενότητας 1. Κατά την διάρκεια της διάλεξης της ενότητας 2, θα παρουσιαστούν οι λύσεις, τόσο στο framework της Java όσο και στο πλαίσιο της Python. Θα διευκρινιστούν όλα τα σχετικά θεωρητικά ζητήματα. Διάρκεια Ενότητας: 4 ώρες.

Ενότητα 3: Θα παρουσιαστούν οι βασικές αρχές σχεδίασης και ανάπτυξης διεπαφής χρήστη με το πλαίσιο JavaFX. Θα παρουσιαστεί και αναλυθεί ολοκληρωμένη παραθυρική εφαρμογή που ενσωματώνει τον αλγόριθμο τεχνητής ευφυίας MiniMax. Σε αυτό το πλαίσιο θα αναλυθεί σε βάθος και η αναδρομή(Recursion) ως τεχνική που αξιοποιείται ευρέως σε εφαρμογές τεχνητής ευφυίας. Διάρκεια Ενότητας: 4 ώρες.

Ενότητα 4: Θα παρουσιαστούν και θα εφαρμοστούν με την συμμετοχή των σπουδαστών μέθοδοι μεταφοράς της παραθυρικής εφαρμογής της ενότητας 3 σε όλες τις κύριες πλατφόρμες κινητών (Android, iOs, Windows). Διάρκεια ενότητας : 3 ώρες.

Ενότητα 5:  Θα παρουσιαστούν και θα εφαρμοστούν με την συμμετοχή των σπουδαστών μέθοδοι μετεξέλιξης της παραθυρικής εφαρμογής της ενότητας 3 σε Εμπλουτισμένη Εφαρμογή Διαδικτύου (RIA). Διάρκεια ενότητας : 3 ώρες.

Ενότητα 6: Θα συζητηθούν σύγχρονα σχεδιαστικά πρότυπα, όπως properties, concurrent collections, event handling, javafx css, κά. Επίσης, οι σπουδαστές θα παρουσιάσουν τις εργασίες τους, θα συγκεντρώσουν σχόλια και παρατηρήσεις επάνω σε αυτές τα οποία θα ενσωματώσουν πριν την τελική παράδοση των εργασιών τους. Διάρκεια ενότητας : 3 ώρες.


Συνοπτική Περιγραφή του μαθήματος:

α) Σύντομη κριτική επισκόπηση και ανάλυση των υφιστάμενων αυτόνομων ρομπότ, καθώς και εδραίωση και επέκταση των γνώσεων σε εφαρμογές ρομποτικής. Συνοπτική παρουσίαση των διαφορετικών ενοτήτων του μαθήματος και επαφή με τα διαφορετικά αντικείμενα που σχετίζονται με τα κινούμενα ρομπότ. Ανάθεση βιβλιογραφικών εργασιών. (3 ώρες)

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

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

δ) Αντίληψη από κινούμενα ρομπότ. Παράσταση αβεβαιότητας. Στατιστική παράσταση τυχαίου σφάλματος, διάδοση σφάλματος. Παρουσίαση των βασικών εννοιών που σχετίζονται με μετρήσεις από αισθητή­ρες που χρησιμοποιούνται από κινούμενα ρομπότ και εξέταση των χαρακτηριστικών των πιο βασικών αισθητήρων. Συζήτηση των προβλημάτων που εμφανίζουν οι αισθητήρες κατά τη χρήση τους και μέθοδοι αντιμετώπισης των προβλημάτων αυτών. Συνοπτική παρουσίαση εννοιών και μεθόδων που σχετίζονται με την όραση μηχανών. Ανάθεση εργασιών ανάλυσης και ανάπτυξης που σχετίζεται με μεθόδους εντοπισμού θέσης, χαρτογράφησης, σχεδιασμού διαδρομής, αποφυγής εμποδίων, πλοήγησης. (3 ώρες)

ε) Οδομετρία με ρομπότ διαφορικής οδήγησης. Παρουσίαση διαφορετικών προσεγγίσεων αναπαρά­στασης χάρτη. Βασικοί ορισμοί και έννοιες από τη θεωρία πιθανοτήτων. Εντοπισμός της θέσης ενός κινούμενου ρομπότ ακολουθώντας πιθανοτική ή μη πιθανοτική προσέγγιση. Συνοπτική παρουσίαση μεθόδων ταυτόχρονου εντοπισμού της θέσης και χαρτογράφησης (SLAM). Ανάθεση εργασιών ανάλυσης και ανάπτυξης που σχετίζεται με μεθόδους εντοπισμού θέσης, χαρτογράφησης, σχεδια­σμού διαδρομής, αποφυγής εμποδίων, πλοήγησης. (3 ώρες)

στ) Παρουσίαση διαφορετικών προσεγγίσεων για τη δημιουργία διαδρομής ενός κινούμενου ρομπότ. Μελέτη διαφορετικών αλγόριθμων για την αποφυγή εμποδίων από ένα ρομπότ και συζήτηση για τα πλεονεκτήματα και τα μειονεκτήματά τους. Παρουσίαση διαφορετικών προσεγγίσεων αρχιτεκτο­νικών πλοήγησης. (3 ώρες)

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

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

Ανάπτυξη Εφαρμογών Κινητών και Παιχνιδιών

Το μάθημα περιλαμβάνει 2 ενότητες, ανάπτυξη σε Android και ανάπτυξη διαπλατφορμικών 2D/3D παιχνιδιών με C# και Unity. Πρόκειται για 2 παράλληλα αντικείμενα. Ακολουθεί η αναλυτική περιγραφή.

 

Ανάπτυξη εφαρμογών Android

Σκοπός: Σε αυτή την ενότητα οι εκπαιδευόμενοι μέσα από απλά παραδείγματα και πρακτική εξάσκηση θα αποκτήσουν τις βασικές δεξιότητες προγραμματισμού σε Android.

Ειδικότερα μετά το πέρας του μαθήματος οι εκπαιδευόμενοι θα είναι σε θέση να

·       δουλεύουν στο περιβάλλον ανάπτυξης εφαρμογών Android Studio,

·       αναπτύσσουν απλές εφαρμογές Android

·       αποσφαλματώνουν εφαρμογές μέσω του συστήματος του Android Studio

·       κατανοούν τον τρόπο δημιουργίας διεπαφών Android Εφαρμογών

·       κατανοούν  και να διαχειρίζονται τον κύκλο ζωής των εφαρμογών

·       διατηρούν πληροφορίες ενός Android Activity

·       δημιουργούν διαδραστικά κουμπιά και μενού

·       κατανοούν τη βασική αρχιτεκτονική μίας Android εφαρμογής

·       διαχειρίζονται μία βάση δεδομένων

·       χρησιμοποιούν υπηρεσίες γεωεντοπισμού

·       ανακτούν πληροφορίες για ανάπτυξη εφαρμογών Android

·       δημιουργούν μία ολοκληρωμένη εφαρμογή Android

 

Περιεχόμενα:

1.       Βασικά στοιχεία Android Εφαρμογών

Android Developers Site, Εγκατάσταση και παραμετροποίηση Android Studio – Εξοικείωση με το περιβάλλον, Δημιουργία απλής εφαρμογής Android, Αρχιτεκτονική προγράμματος Android, Εγκατάσταση εικονικής συσκευής (Android Virtual Device - AVD), Εκτέλεση εφαρμογής σε πραγματική συσκευή, Συστατικά Εφαρμογών, Δημιουργώντας ένα Activity, Πολλαπλά Activities και Intents

2.       Layout

Δημιουργία διεπαφής χρησιμοποιώντας το Android Studio Designer Tool, Δημιουργία διεπαφής χρησιμοποιώντας κώδικα, Android Grid Layout, List Views, Adapters

3.       Kύκλος ζωής των Activities

Διαχείριση της κατάστασης ενός Android Activity, Αποθήκευση και ανάκτηση πληροφοριών από ένα Android Activity

4.       Άλλα στοιχεία

Εvent handling, fragments, Μενού, Intents, Grangle, Debugging

5.       Δημιουργία ολοκληρωμένης εφαρμογής (Project)

 

 

Ανάπτυξη διαπλατφορμικών 2D/3D παιχνιδιών με C# και πλατφόρμας Unity

Σκοπός

Ο στόχος του μαθήματος είναι να καταστήσει τους φοιτητές ικανούς να κατανοήσουν την σημαντικότητα της αντικειμενοστραφής γλώσσας προγραμματισμού C# σε προηγμένες απαιτήσεις και των ειδικών πακέτων λογισμικού που αναφέρονται ως μηχανές παιχνιδιών (game engines) για την υλοποίηση διαπλατφορμικών (cross-platform) παιχνιδιών (2Δ και 3Δ), χρησιμοποιώντας μία ενιαία ολοκληρωμένη πλατφόρμα υλοποίησης και προγραμματίζοντας μια φορά για όλα τα συστήματα. Οι φοιτητές θα αποκτήσουν εμπειρία και τεχνογνωσία σε συστήματα και τεχνολογίες 2Δ και 3Δ παιχνιδιών και θα γνωρίσουν τη διαδικασία ανάπτυξης παιχνιδιών ή εφαρμογών μέσω εργασιών (projects) στην πλατφόρμα Unity.

Περίγραμμα

1.       Εισαγωγή στον κόσμο των παιχνιδιών (ηλεκτρονικά, βιντεοπαιχνίδια, σοβαρά παιχνίδια κλπ.)

2.       Εισαγωγή στις τεχνολογίες 3Δ γραφικών (rendering, mesh, physics, effects, particle system, κλπ.)

3.       Επισκόπηση διαφόρων πλατφορμών για υλοποίηση παιχνιδιών

4.       Γραφικό περιβάλλον διεπαφής της πλατφόρμας Unity

a.       Τι είναι η σκηνή (Scene), τα αντικείμενα (Objects) και τα στοιχεία αντικειμένων (Components)

b.      Δυναμικότητα και διαδραστικότητα αντικειμένων

c.       Διεπαφή μέσω των συστημάτων εισόδου (ποντίκι, πληκτρολόγιο κ.λπ.)

d.      Έτοιμες βιβλιοθήκες (Assets)

e.       Πηγές αναφοράς των εργαλείων και των βιβλιοθηκών Unity, και η συμβολή τους στην κατανόηση του μηχανισμού του συστήματος

f.        Δυνατότητες πλατφόρμας Unity και των διαπλατφορμικών εφαρμογών

5.       Προγραμματισμός με χρήση της γλώσσας προγραμματισμού C#

a.       Συναρτήσεις διαχείρισης συμβάντων στη ροή μιας προσομοίωσης

b.      Μετατροπή στατικών αντικειμένων σε δυναμικά/διαδραστικά αντικείμενα

6.       Σχεδιασμός και ανάπτυξη συστήματος διεπαφής του χρήστη (User Interface)

7.       Ανάπτυξη παιχνιδιών πρώτου και τρίτου προσώπου με την πλατφόρμα Unity και με χρήση C#

8.       Συστήματα ρεαλισμού: ήχος, φωτισμός σκηνής και βελτίωση γραφικών του παιχνιδιού

9.       Αυτόματο σύστημα περιηγήσεις στον χώρο με χρήση τεχνητής νοημοσύνης

10.   Διασύνδεση των εφαρμογών μας με βάση δεδομένων (C#, PHP και MySQL)

11.   Ανάπτυξη 2Δ παιχνιδιού με την πλατφόρμα Unity

12.   Ανάπτυξη 3Δ παιχνιδιού με την πλατφόρμα Unity

13.   H χρήση των παιχνιδιών στην εκπαίδευση, στον πολιτισμό και για εμπορικούς σκοπούς

 

Προτεινόμενη βιβλιογραφία

[1] Jeremy Gibson Bond, Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#, Addison-Wesley Professional, 2014

[2] Sue Blackman, Beginning 3D Game Development with Unity 4: All-in-one, multi-platform game development (Technology in Action), 2nd ed. Edition, 2013

[3] Joe Hocking, Unity in Action: Multiplatform Game Development in C# with Unity 5, 1st Edition, 2015

[4] Alex Okita. Learning C# Programming with Unity 3D, 2015

 


Η επιστήμη των δεδομένων είναι ένα τεράστιο πεδίο, μέρος της οποίας φιλοδοξούμε να καλύψουμε με αυτό το μάθημα. Αν επιχειρήσουμε έναν απλοϊκό χωρισμό της ανάλυσης των δεδομένων στα αντικείμενα της δημιουργίας υποθέσεων και του ελέγχου των υποθέσεων, τότε σίγουρα αυτό το μάθημα έχει προσανατολισμό στο πρώτο κομμάτι, τη δημιουργία υποθέσεων ή αλλιώς την εξερεύνηση των δεδομένων. Θα μάθουμε πως χειριζόμαστε και αναλύουμε τα δεδομένα ώστε να μπορούμε να υποστηρίξουμε τη δύσκολη διαδικασία της έρευνας, να υποστηρίξουμε την έρευνα κατευθύνοντας τους ερευνητές προς την κατανόηση συμπεριφορών και τελικά τη διατύπωση εύστοχων ερευνητικών ερωτημάτων. Η επιστήμη των δεδομένων δεν μπορεί να νοηθεί χωριστά από προγραμματιστικά εργαλεία. Έτσι, και σε αυτό το μάθημα όλες οι διαλέξεις θα πραγματοποιούνται παράλληλα με την επίδειξη εφαρμογών στη γλώσσα R. Αναλυτικά, το πρόγραμμα των διαλέξεων θα περιλαμβάνει:

 

-       ΕΝΟΤΗΤΑ 1: ΔΙΕΡΕΥΝΗΣΗ

o   Οπτικοποίηση Δεδομένων

o   Μετατροπές Δεδομένων

o   Διερευνητική Ανάλυση Δεδομένων

-       ΕΝΟΤΗΤΑ 2: ΠΡΟΕΤΟΙΜΑΣΙΑ

o   Εισαγωγή Δεδομένων

o   Τακτοποίηση Δεδομένων και Σχεσιακά Δεδομένα

o   Χειρισμός αλφαριθμητικών, παραγόντων, και χρονοσημάνσεων

-       ΕΝΟΤΗΤΑ 3: ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ

o   Διασωλήνωση, Συναρτήσεις, Διανύσματα

o   Δομές Επανάληψης

o   Κατασκευή Μοντέλων

-       ΕΝΟΤΗΤΑ 4: ΤΕΧΝΙΚΕΣ ΑΝΑΛΥΣΗΣ

o   Ομαδοποίηση

o   Δένδρα Αποφάσεων

o   Εξόρυξη Διαδικασιών

 

Προαπαιτούμενα: Το μάθημα έχει σχεδιαστεί για να διδάσκεται χωρίς να υποθέτει κάποια προηγούμενη γνώση των φοιτητών, ωστόσο γνώσεις προγραμματισμού και ποσοτικών μεθόδων σίγουρα θα διευκολύνουν την παρακολούθηση. Για όσους φοιτητές επιθυμούν να προετοιμαστούν αποκτώντας μία επαφή με τη γλώσσα R, προτείνεται το δωρεάν σύγγραμμα https://rstudio-education.github.io/hopr/index.html

Για πιο αποτελεσματική παρακολούθηση, προτείνεται οι φοιτητές να βρίσκονται μπροστά σε υπολογιστή με εγκατεστημένο το RStudio