Service-Oriented Architectures and Mobile Computing

Learning Outcomes

This course provides an in-depth understanding of the design, implementation, and management of modern service-oriented information systems and mobile applications. It covers key topics such as user interface design, data management, network connectivity, and performance optimization.

 

Upon successful completion of this course, students will be able to:

  • Identify the principles and components of Service-Oriented Architecture (SOA) and leverage modern tools and frameworks to develop service-oriented information systems.
  • Develop, deploy, and manage serverless applications and microservices using cloud computing infrastructure.
  • Understand Android application architecture and identify the core features of a typical Android app, including layouts and navigation.
  • Design functional and user-friendly interfaces for mobile devices.
  • Implement data storage and retrieval techniques within a mobile application.
  • Leverage service-oriented platforms and services (e.g., Firebase, Push Notifications, Crashlytics, Object Storage, Functions as a Service) to build modern, interactive mobile applications.
  • Evaluate and optimize the performance and usability of a mobile application.

General Competences

  • Search for, analysis and synthesis of data and information by the use of appropriate technologies
  • Development of free, creative and inductive thinking
  • Decision-making
  • Individual/Independent work
  • Group/ Team work

Course Contents

  • Introduction to Service-Oriented Architecture (SOA) (definition and basic concepts, advantages and challenges)
  • Basic elements of Service-Oriented Architecture (services, service contracts, service composition, discovery and service registry)
  • Advanced concepts of Service-Oriented Architecture (event-driven architecture, microservices and their relationship with SOA)
  • Understanding the principles and practices of backend as a service and the development and deployment of serverless applications using Cloud Computing infrastructures, microservices, and Functions as a Service.
  • Methodologies and techniques for developing applications for portable devices (smartphones, smartwatches, sensors, etc.).
  • Study of the basic features of a typical Android application (Layouts, Navigation).
  • Development of applications that utilize device capabilities and interfaces, such as camera, GPS, sensors, etc.
  • Use of service libraries and backend applications for data management, user authentication, two-way communication, and synchronization.
  • Creation of advanced user interfaces (UI/UX).
  • Management of access rights, data security, and privacy.
  • Architecture of smart mobile applications (application architecture, data storage – SQLite – Firebase, displaying lists, internet connection, background tasks)
  • Use of modern frameworks for application development such as React Native and Flutter.

Suggested Bibliography

  • Έλληνας Iωάννης- Έλληνας Νικόλαος (2023): Εισαγωγή στον Προγραμματισμό Android
  • Κυπριανός Χ. (2022): Να ένα android…
  • Peter Späth (2019): Learn Kotlin for Android Development, The Next Generation Language for Modern Android Apps Programming, Apress, ISBN: 9781484244678.
  • Ted Hagos (2018): Learn Android Studio 3 with Kotlin, Efficient Android App Development. Apress, ISBN: 9781484239070.

Final Year Project

The final year project is carried out under the supervision of one of the faculty members and involves – at a first stage – the identification of the subject/ technological problem to be addressed and  the associated data collection. The output of the project, namely the description of the problem formulation, the solution definition and implementation and the illustration of results and final conclusions, is presented in the final year project thesis.

The final year project aims to

  • Exercise and extend the student’s academic skills, by enabling in depth understanding of the context of (a part of) a discipline. This may be achieved by exploiting particular skills or knowledge acquired from taught courses.
  • Exercise and extend professional skills by testing the student’s ability to research, organise, report and present the results if his/her work and develop initiative and independent thinking.

Student Placement

Students can choose it only once during undergraduate studies (either the 7th or the 8th semester).

Educational Digital Systems

Learning Outcomes

With the completion of the course, the student will be able:

  • to know and understand the key concepts of exploiting digital technologies in teaching, learning and assessment of learning in K12 School Education.
  • to analyse, assess, select and justify a pedagogically appropriate educational technologies to support different teaching strategies in K12 School Education.
  • to design and create pedagogically grounded technology-supported teaching and learning scenarios for the K12 education.

The learning objectives of the course are aligned to the Greek State qualification framework for a teaching licence in K12 school education.

Course Contents

  • 1. Technology-Supported and Technology-Enhanced Teaching and Learning in School Education: Theoretical Underpinnings
  • 2. Integrating Technology in School Education (teaching, learning and assessment of learning): Models and Practice
  • 3. Taxonomy of Educational Technologies in School Education
  • 4. Educational Technologies for supporting different teaching and learning strategies
    • 4.1. Tutorials
    • 4.2. Drill and Practice
    • 4.3. Problem solving
    • 4.4. Modeling
    • 4.5. Virtual Labs and Simulations
    • 4.6. Inquiry-based Learning
    • 4.7. Collaborative Learning
    • 4.8. Assessment of Learning
    • o 4.9. Educational Games
  • 5. Digital School Infrastructure
    • 5.1. Interactive Boards
    • 5.2. ICT School Laboratory

Recommended Readings

  • Textbook in Greek (provided for free)
  • Additional Open Access Educational Resources available through the course management system

Design and Optimization of Networks

Learning Outcomes

The course presents principles and methodologies on the design, evaluation and optimization of networks and services, complementing the basic knowledge of architecture, protocols and functions of communication networks.

Upon successful completion of the course, the students will be in position to:

  • follow and utilize the approach of top-down network design, that is most commonly encountered on medium to large scale networking projects
  • understand and evaluate alternative design options at every stage of data networks design, (e.g. requirement and specification definition, logical and physical design, selection of appropriate technologies and protocols, addressing and naming of network devices, implementation, testing and optimization)
  • select and propose proper architectures, network technologies, protocols and politics, depending on the design, upgrade and/or optimization of the network at hand
  • implement, control and readjust solutions on new or redesign existing network projects
  • run and operate routing protocols simulation software and packet sniffing software

Course Contents

  • Introduction to the design and performance evaluation of networks and services.
  • Modelling and topological design of communication networks.
  • Modelling of network services traffic and work load.
  • Top-down network design under service requirements and various constraints.
  • Selection of most appropriate link, network and transport layer protocols.
  • Selection of most appropriate network architecture and network devices.
  • Network optimization techniques and algorithms, network reliability.
  • Performance measures.
  • Quality of service assurance.
  • Theoretical exercises and network design projects.

Recommended Readings

  1. Spiros Arsenis, “Network Design and Implementation”, Kleidarithmos Publications.
  2. Priscilla Oppenheimer, “Top-Down Network Design”, 2nd Edition, Cisco Press.
  3. James D. McCabe, “Network Analysis, Architecture and Design”, 2nd Edition, Morgan Kaufmann Publishers Inc.
  4. Thomas Robertazzi, “Planning Telecommunication Networks”, IEEE Press.

e-Learning Systems

Learning Outcomes

Upon successful completion of the course the students will be able:

  • to know and understand the key concepts of digital teaching and learning
  • to analyse, assess, select and justify pedagogically appropriate e-learning methods and tools for digital teaching and learning innovations.
  • to design and create pedagogically grounded online courses.

Course Contents

  • Online Teaching and Learning: Theoretical Underpinnings
  • Educational Design for Online Teaching and Learning
  • An hierarchical Open Access to Online Education framework: Elements (Open Educational Resources, Learning Activities and Lesson Plans, Online Courses, Digital Learning Spaces). Tools and Key Roles (Online Education Instructional Designers, e-Tutors, e-Learning Systems Administrators, Managers)
  • Open Educational Resources: Learning Objects, Educational Metadata, Repositories of Learning Objects. Case Studies: the National Repositories of Learning Objects
  • Learning Activities and Lesson Plans: Authoring Tools for Learning Activities and Lesson Plans, Repositories of Learning Activities and Lesson Plans. Case Studies: the National Repositories of Learning Activities and Lesson Plans
  • Design, Development and Delivery of Online Courses: Methodology for Designing Online Courses. Authoring Tools for Developing Online Courses. Course Management Systems. Case Study: Open edX, MOODLE
  • Digital Learning Spaces: 3D Virtual Classrooms and Laboratories

Recommended Readings

  • Textbook in Greek (provided for free)
  • Additional Open Access Educational Resources available through the course management system

Ιntelligent Agents and Multiagent Systems

Learning Outcomes

Upon successful completion of this course, students should be able to

 

Know principles, paradigmatic architectures and methods for developing single agent and multi agent systems, have a critical and informed view of strengths and limitations regarding agents and multi agent systems, towards designing and delivering such systems.

 

Specifically, students know and acquire the abilities to develop

  • Architectures of single and multi-agent systems
  • Methods for agents coordination, collaboration and competition in specific settings and paradigmatic environments and problems
  • Agents’ communication methods and protocols

Via the critical view of agents technology and experience in developing such systems.

Course Contents

  • Agents: Principles, architectures and application examples
  • Deliberation vs Reaction: Architectures
  • Mental attitudes, states and their representation
  • Multi-agent Systems: Interactions and dependencies
  • Multiagent organizations and communication
  • Cooperation and collaboration
  • Agents communication
  • The JASON framework and Agent Speak language

Recommended Readings

  • Michael Wooldridge, Introduction to MultiAgent Systems, 2008.
  • Yoav Shoham, Kevin Leyton-Brown Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations, Cambridge University Press, 2009.
  • Gerhard Weiss, Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence, MIT Press, 2000.
  • John Miller Scott Page, Complex Adaptive Systems: An Introduction to Computational Models of Social Life (Princeton Studies in Complexity), Princeton University Press, 2007.
  • David Easley, Jon Kleinberg, Networks, Crowds, and Markets: Reasoning About a Highly Connected World, Cambridge University Press 2010.
  • JASON, https://github.com/jason-lang/jason

Systems Simulation

Learning Outcomes

he course presents simulation techniques with particular emphasis on discrete event simulation and applications in computer computational systems and communication networks.

Upon successful completion of the course, the students will be in position to:

  • design system models with the required details level that serves better the problem at hand
  • develop simulation programs in general purpose programming language (e.g C++) to simulate and evaluate the behavior of simpler systems
  • use more sophisticated simulation software for the study and performance evaluation of more complex communication networks and computational systems (e.g network simulator ns3 and CloudSim for cloud computing systems)
  • design experiments, collect measurements and interpret and evaluate simulation results

Course Contents

  • Introduction to dynamic discrete event systems.
  • Development of discrete system models, event-advance design, time-advance design, activity-based design.
  • Pseudorandom number generation, random variables generation.
  • Overview of simulation languages and platforms.
  • Development of simulation programs using general purpose programming languages.
  • Measurement techniques, traffic load and experiment design.
  • Statistical analysis of simulation experiments, transient and steady state, data collection, confidence intervals, variation reduction techniques.
  • Simulation exercises and examples of data networks and cloud computing systems. Theoretical results verification.

Recommended Readings

  1. Roumeliotis and Souravlas, “Simulation Techniques”, Epikentro Publications.
  2. Kouikoglou and Konstantas, “Simulation of Discrete Event Systems”, Disigma Publications, 2016.
  3. Harry Perros, “Computer Simulation Techniques – The Definitive Introduction”, free download from https://people.engr.ncsu.edu/hp/files/simulation.pdf
  4. Averill M. Law and W. David Kelton, “Simulation Modeling and Analysis”, McGraw-Hill, Inc.
  5. NS manual and tutorials, https://www.nsnam.org/documentation/

Advanced Topics in Data Analytics

Learning Outcomes

The students after the successful completion of the course will be able:

  • to model and analyze data with appropriate analysis techniques, assess the quality of input
  • to choose the appropriate exploratory and/or inferential method for analyzing data, and interpret the results contextually.
  • to use supervised and unsupervised learning techniques for solving many analysis problems such as prediction, classification, segmentation.
  • to apply methods for the evaluation of the data analysis results.

Course Contents

  • Collection, preparation and representation of data for analysis
  • Linear, logistic regression
  • Classification Techniques (probabilistic classification, decision trees, support vector machines)
  • Predictive analytics and neural networks
  • Recommender systems
  • Graph analysis (applications on social networks)
  • Text mining – sentiment analysis
  • Evaluation of data analysis results

Recommended Readings

  • Mohammed J. Zaki, Wagner Meira Jr. (2018): Data Mining and Analysis Fundamental Concepts and Algorithms, Cambridge University Press.
  • Jure Leskovec, Anand Rajaraman, Jeffrey David Ullman (2014): Mining massive datasets, Cambridge University Press.
  • Top of Form.
  • Bottom of Form.