Κατανεμημένα Υπολογιστικά Συστήματα και Εφαρμογές (ΠΛ8)

Από Wiki Τμήματος Μαθηματικών

Γενικά

Σχολή Σχολή Θετικών Επιστημών
Τμήμα Τμήμα Μαθηματικών
Επίπεδο Σπουδών Μεταπτυχιακό
Κωδικός Μαθήματος ΠΛ8
Εξάμηνο 1
Τίτλος Μαθήματος ΚΑΤΑΝΕΜΗΜΕΝΑ ΥΠΟΛΟΓΙΣΤΙΚΑ ΣΥΣΤΗΜΑΤΑ KAI ΕΦΑΡΜΟΓΕΣ
Αυτοτελείς Διδακτικές Δραστηριότητες Διαλέξεις (Εβδομαδιαίες Ώρες Διδασκαλίας: 3, Πιστωτικές Μονάδες: 7.5)
Τύπος Μαθήματος Μάθημα Ειδίκευσης
Προαπαιτούμενα Μαθήματα
Γλώσσα Διδασκαλίας και Εξετάσεων Ελληνική
Το Μάθημα Προσφέρεται σε Φοιτητές Erasmus Ναι (στην Αγγλική γλώσσα)
Ηλεκτρονική Σελίδα Μαθήματος (URL) Δείτε το eCourse, την Πλατφόρμα Ασύγχρονης Εκπαίδευσης του Πανεπιστημίου Ιωαννίνων.

Μαθησιακά Αποτελέσματα

Μαθησιακά Αποτελέσματα Στα πλαίσια του μαθήματος ο μεταπτυχιακός φοιτητές θα κατανοήσει τις βασικές έννοιες των ψηφιακών συστημάτων, βασικές έννοιες των συστημάτων αυτομάτου ελέγχου και της λειτουργίας ενεργοποιητών και αισθητήρων. Θα ασχοληθεί με προγραμματισμό ARM κινητών συσκευών μικροεπεξεργαστών και ATMEL AVR μικροελεγκτών σε γλώσσες προγραμματισμού υψηλού επιπέδου όπως η Python, C/C++ και η Qt για Γραφικές διεπαφές. Θα κατανοήσει έννοιες ενσύρματων, ασύρματων Δικτύων-πρωτοκόλλων διασύνδεσης και μεταφοράς και θα ασχοληθεί με υλοποίηση αλγορίθμων και προγραμματισμό πρωτοκόλλων εφαρμογής πάνω σε Κατανεμημένα Υπολογιστικά Συστήματα.
Γενικές Ικανότητες
  • Αναζήτηση, ανάλυση και σύνθεση δεδομένων με χρήση τεχνολογιών πληροφορικής
  • Λήψη αποφάσεων
  • Προγραμματιστικός σχεδιασμός και υλοποίηση - Εμπέδωση
  • Αυτόνομη Εργασία

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

  • Το Διαδίκτυο των αντικειμένων και ελεγκτών δεδομένων-αισθητήρων (Internet of Things) και οι επεκτάσεις του σε διάφορες πτυχές της καθημερινότητάς: Τις πόλεις (smart cities, houses), τον πρωτογενή τομέα (smart farming), τον τουρισμό (Cultural IoT-Virtual Reality driven), τον ίδιο των άνθρωπο (smart wearable devices). Παρουσίαση βασικών εννοιών στα Ψηφιακά Συστήματα, Δυαδική Λογική, Συνδυαστική και Ακολουθιακή λογική.
  • Αριθμητικά Συστήματα και Αρχιτεκτονικές Υπολογιστών, Είσοδος-Έξοδος και Διαχείριση και προσπέλαση μνήμης. Σύνθετα πρωτόκολλα εισόδου-εξόδου μικροϋπολογιστών SPI και Ι2C, Διακοπές και χειρισμός διακοπών. Παρουσίαση των βασικών στοιχείων του μικροεπεξεργαστή ARM και του μικροελεγκτή ATMega328P και των διεπαφών τους εισόδου εξόδου και GPIO.
  • Εισαγωγή στα συστήματα αυτομάτου ελέγχου, έλεγχος ανοιχτού και κλειστού βρόγχου, οι ελεγκτές P/PI/PD/PID.
  • Παρουσίαση των ενσύρματων και ασύρματων πρωτοκόλλων της IEEE 802.x, βασικές έννοιες ασύρματων δικτύων, Αρχιτεκτονική του πρωτοκόλλου TCP/IP/UDP/ICMP, Βασικές Δικτυακές υπηρεσίες εφαρμογών που εξυπηρετούν το ΙοΤ (HTTP/CoAP/MQTT/ReST/SOAP/SNMP) και την μεταφορά υπολογιστικών δεδομένων.
  • Παρουσίαση του Arduino IDE για προγραμματισμό του ΑΤΜega328P υπολογιστικού συστήματος, Παραδείγματα με χρήση εργαστηριακού εξοπλισμού. Παρουσίαση της Wi-Fi βιβλιοθήκης, Ι2C και SPI βιβλιοθήκης, προγραμματιστικός χειρισμός μετρητών, αναλογικών εισόδων (A2D) και PWM εξόδων και γεγονότων. Διασύνδεση με το Arduino καθώς και υλοποίηση πρωτοκόλλων εφαρμογής μετάδοσης δεδομένων.
  • Παρουσίαση και προγραμματισμός του GPIO interface του μικροϋπολογιστή RPi (BCM2837), PWM έξοδοι για ενεργοποιητές και γεγονότα, με χρήση Python και C++. Πρακτικές εφαρμογές με χρήση εργαστηριακού εξοπλισμού.
  • Προγραμματισμός TCP/UDP client-server υπηρεσιών σε Python και C++. Προγραμ-ματισμός ΗΤΤP αιτήσεων για CoAP και ReST υπηρεσίες. Σχεδίαση και υλοποίηση πρωτοκόλλων εφαρμογής μετάδοσης δεδομένων και ελέγχου. FSM, κωδικοποιητές-αποκωδικοποιητές. Πρακτικές εφαρμογές πάνω στον BCM2837.
  • Διασύνδεση εισόδου-εξόδου, ελεγκτή, Διαδικτυακού πρωτοκόλλου εφαρμογής, Εξυπηρετητή εφαρμογής (Application service). Ενεργειακή αποτίμηση μικροϋπολογιστικών συστημάτων.
  • Προγραμματιστικές εφαρμογές σχεδίασης πρωτοκόλλων εφαρμογής, προγραμματισμού ελεγκτών και πελατών-εξυπηρετητών αποστολής λήψης δεδομένων.
  • Εισαγωγή στον προγραμματισμό γραφικών διεπαφών για ενσωματωμένα μικροσυστήματα και κινητές συσκευές σε C++/Qt. Παρουσίαση της Qt και του εργαλείου ανάπτυξης IDE (QtCreator).
  • Παρουσίαση των QWidgets, Μηχανισμός signal-slots και γεγονότα. Κανονικοποιημένη μορφή αντικειμενοστρέφειας.
  • Προγραμματισμός απλών UI διεπαφών που λαμβάνουν δεδομένα από κατανεμημένα μικροϋπολογιστικά συστήματα και αισθητήρες.
  • Προχωρημένος προγραμματισμός UI διεπαφών σε Qt, Προγραμματισμός Qt για ARM μικροϋπολογιστές συσκευές, Qt Containers και υλοποίηση πρωτοκόλλων εφαρμογής πάνω στη γραφική διεπαφή.

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παράδοσης Στην τάξη
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών Χρήση Εργαστηρίου Μικροϋπολογιστών
Οργάνωση Διδασκαλίας
Δραστηριότητα Φόρτος Εργασίας Εξαμήνου
Διαλέξεις 39
Αυτοτελής Μελέτη 78
Επίλυση Ασκήσεων- Εργασίες 70.5
Σύνολο Μαθήματος 187.5
Αξιολόγηση Φοιτητών Εξαμηνιαία εργασία και γραπτή εξέταση.

Συνιστώμενη Βιβλιογραφία

  • Programming the Raspberry Pi, Second Edition: Getting Started with Python, S. Monk, Mc Graw Hill, ISBN: 978-1-25-958740-5, 2015.
  • Aνάπτυξη Εφαρμογών με το Arduino, Π. Παπάζογλου, Σπ. Π. Λιώνης, Εκδόσεις Τζιόλα, ISBN: 978-960-418-459-0, Kωδικός Ευδόξου 41954966, 2014.
  • C++ GUI programming with Qt 4, Second Edition, J. Blanchette and M. Summerfield, Prentice Hall, ISBN: 978-0132354165, 2008.
  • Mastering Qt 5, G. Lazar and R. Penea, Packt, ISBN 978-1-78646-712-6, 2016.
  • TCP/IP Illustrated Vol 1: The protocols, W. R. Stevens, Addison-Wesley, 1994, ISBN 0-201-63346-9.
  • Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition), W.R. Stevens, B. Fenner and A.M. Rudoff, Addison-Wesley, ISBN: 978-0131411555, 2010
  • Mastering Python Networking, E. Chou, Packt, ISBN:978-1-78439-700-5, 2017
  • Σχεδίαση Λογικών Κυκλωμάτων και Υπολογιστών 5η Έκδοση, Μ. Mano, K. Charles and M. Tom, Εκδόσεις Τζιόλα, ISBN: 978-960-418-641-9, Κωδικός Ευδόξου 59384943, 2017
  • Foundations of Python Network Programming, 2nd Edition, B. Rhodes and J. Goerzen, APress, ISBN: 978-1430230038, 2010