Distributed Computing Systems and Applications (ΠΛ8)

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

General

School School of Science
Academic Unit Department of Mathematics
Level of Studies Graduate
Course Code ΠΛ8
Semester 1
Course Title Distributed Computing Systems and Applications
Independent Teaching Activities Lectures (Weekly Teaching Hours: 3, Credits: 7.5)
Course Type Specialized general knowledge
Prerequisite Courses -
Language of Instruction and Examinations

Greek

Is the Course Offered to Erasmus Students Yes (in English)
Course Website (URL) See eCourse, the Learning Management System maintained by the University of Ioannina.

Learning Outcomes

Learning outcomes

Within this course the graduate students will understand the basic concepts of computational systems, micro-computing systems and IoT, digital systems, basic concepts of automatic control systems and the operation of actuators and sensors. The student will extend his programming skills with distributed microcomputers programming, ARM microprocessor programming and ATMEL AVR microcontrollers, using high level programming languages such as Python, C / C ++ and Qt for the development of Graphical User Interfaces. The student will understand concepts of wired, wireless Networks-Interconnection and transport-application protocols used by grid and distributed systems and will deal with algorithms and application protocols design and implementation on Distributed computing infrastructures.

General Competences
  • Data search, analysis and synthesis using Information Technologies
  • Decision making
  • Project design and implementation
  • Working independently

Syllabus

  1. Internet of Things and its extensions to different aspects of everyday life: smart cities, houses, smart farming, tourism (Cultural IoT-Virtual Reality driven), smart wearable devices. Presentation of basic concepts of digital systems, binary logic, combinational and sequential logic
  2. Computer numerical systems and architectures, Input-Output, memory management and access. Advanced SPI and I2C Microcomputer Input / Output protocols, Interrupts and Interrupt handling. Presentation of the basic parts of the ARM microcomputer and ATMega328P microcontroller and their input and output-GPIO interfaces
  3. Introduction to automatic control systems, open and closed loop control, P / PI / PD / PID controllers
  4. Presentation of IEEE 802.x wired and wireless protocols, basic wireless networking protocols suite: TCP / IP / UDP / ICMP. Basic Application Services Serving the IoT (HTTP / CoAP / MQTT / ReST / SOAP / SNMP) and transfer computational data
  5. Presentation of the Arduino IDE and C++ programming of the ATMega328P computing system, Examples using laboratory equipment. Presentation of the Wi-Fi library, I2C and SPI library, programmable cash handling, analog inputs (A2D) and PWM outputs and triggered events. Interfacing with Arduino as well as implementation of data transmission application protocols
  6. Presentation and programming of the GPIO microcomputer RPi (BCM2837), PWM outputs for actuators and interrupts, using Python and C ++. Practical applications using laboratory equipment
  7. Programming TCP / UDP client-server services in Python and C++. Programming HTTP requests for CoAP and ReST services. Design and implementation of data transmission and control application protocols. FSM, encoders-decoders. Practical applications on BCM2837.
  8. Design and development of applications and application protocols, computational microcomputer systems programming and client-server data transfers
  9. Introduction to Graphical Interface Programming for microsystems and mobile devices in C++/Qt. Presentation of Qt and IDE development tool (QtCreator)
  10. Presentation of QWidgets, signals-slots mechanism and events. Normalized Object Orientation method
  11. Programming simple graphical user interfaces that receive data from distributed computational systems and sensors
  12. Advanced GUI programming. Programming for ARM micro devices using Qt, Qt Containers, and implementation of application protocols included in the GUI interface

Teaching and Learning Methods - Evaluation

Delivery

Classroom

Use of Information and Communications Technology

Use of Micro-computers Laboratory

Teaching Methods
Activity Semester Workload
Lectures 39
Working Independently 78
Exercises - Homework 70.5
Course total 187.5
Student Performance Evaluation

Semester work and written examination

Attached Bibliography

  • 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