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.

Big Data Programming

Learning Outcomes

The course teaches data management methods and programming techniques suitable for big data. The goal of the course is to familiarize students with solving problems that require the processing and storage of different types of data (structured, semi-structured and unstructured), the efficient programming of parallel processing solutions, the design and implementation of scalable algorithms that operate on distributed data collections. Modern big data processing technologies and systems are covered.

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

  • to understand the basic concepts related to big data
  • to understand the problems associated with managing large collections of diverse data
  • to solve practical problems of modeling, storing, processing and analyzing big data
  • to use tools and programming techniques for big data
  • to understand the principles of parallel processing (data sharing, load balancing, scalability, fault tolerance)
  • to design algorithms suitable for parallel processing of big data
  • to implement algorithms for processing big data in an efficient and scalable manner

General Competences

  • Search for, analysis and synthesis of data and information by the use of appropriate technologies,
  • Adapting to new situations,
  • Decision-making,
  • Individual/Independent work,
  • Critical thinking,
  • Introduction of innovative research,
  • Development of free, creative and inductive thinking.

Course Contents

  • Modeling of big data, definitions, 6Vs -Volume, Variety, Velocity, Veracity, Validity and Volatility, modeling techniques related to big data, requirements for big data management platforms, the process of big data analysis, challenges related to big data.
  • Data storage in cloud computing infrastructures, columnar file storage formats, data compression, selective access to subsets of records.
  • Distributed File Systems (DFS), the Hadoop distributed file system, the concept of HDFS blocks, increased availability through replication, characteristic advantages of HDFS.
  • Principles of distributed and parallel data management, local and global indexes, partitioning techniques (round-robin, hash-based, range-based), distributed query processing, distributed query optimization, load balancing.
  • The MapReduce programming model, map and reduce phases, designing MapReduce jobs, simple and more complex jobs, aggregations, efficient parallel processing, optimization.
  • The Hadoop ecosystem for batch processing, implementing MapReduce jobs in Hadoop, programming with Java, programming with Python, creating custom data types.
  • Managing data in distributed main memory, the concept of Resilient Distributed Datasets, immutability, Apache Spark.
  • Introduction to Spark Dataframes, learning the Dataframe API, declarative processing of big data, the SparkSQL language, execution plans, optimization.
  • Real-time processing, basic data flow concepts, data stream management systems, stateful and stateless processing, windowing mechanisms, data stream processing.

Suggested Bibliography

  • Παπαδόπουλος Απόστολος, Καρακασίδης Αλέξανδρος, Κολωνιάρη Γεωργία, Γούναρης Αναστάσιος (2024):  Τεχνολογίες επεξεργασίας και ανάλυσης μεγάλων δεδομένων. ΚΑΛΛΙΠΟΣ: https://repository.kallipos.gr/handle/11419/14277
  • Anand Rajaraman, Jeffrey David Ullman (2020): Mining Massive Datasets, 3rd Edition, Cambridge University Press.
  • Raghu Ramakrishnan and Johannes Gehrke (2012): Database Management Systems, 3rd Edition, McGraw-Hill. ISBN: 978-0072465631.
  • M. Tamer Özsu, Patrick Valduriez (2011): Principles of Distributed Database Systems, Third Edition. Springer, ISBN 978-1-4419-8833-1, pp. I-XIX, 1-845.
  • Tom White (2015): Hadoop: The Definitive Guide – Storage and Analysis at Internet Scale, 4th Edition. O’Reilly Media. ISBN: 9781491901632.
  • Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia (2015): Learning Spark: Lightning-fast big data analysis. O’Reilly Media. ISBN: 9781449358624.
  • Martin Kleppmann (2017): Designing data-intensive applications. O’Reilly Media. ISBN: 9781491903100.

Big Data Programming

The course teaches data management methods and programming techniques suitable for big data. The goal of the course is to familiarize students with solving problems that require the processing and storage of different types of data (structured, semi-structured and unstructured), the efficient programming of parallel processing solutions, the design and implementation of scalable algorithms that operate on distributed data collections. Modern big data processing technologies and systems are covered.

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

  • to understand the basic concepts related to big data
  • to understand the problems associated with managing large collections of diverse data
  • to solve practical problems of modeling, storing, processing and analyzing big data
  • to use tools and programming techniques for big data
  • to understand the principles of parallel processing (data sharing, load balancing, scalability, fault tolerance)
  • to design algorithms suitable for parallel processing of big data
  • to implement algorithms for processing big data in an efficient and scalable manner

Course Contents

• Modeling of big data, definitions, 6Vs -Volume, Variety, Velocity, Veracity, Validity and Volatility, modeling techniques related to big data, requirements for big data management platforms, the process of big data analysis, challenges related to big data.
• Data storage in cloud computing infrastructures, columnar file storage formats, data compression, selective access to subsets of records.
• Distributed File Systems (DFS), the Hadoop distributed file system, the concept of HDFS blocks, increased availability through replication, characteristic advantages of HDFS.
• Principles of distributed and parallel data management, local and global indexes, partitioning techniques (round-robin, hash-based, range-based), distributed query processing, distributed query optimization, load balancing.
• The MapReduce programming model, map and reduce phases, designing MapReduce jobs, simple and more complex jobs, aggregations, efficient parallel processing, optimization.
• The Hadoop ecosystem for batch processing, implementing MapReduce jobs in Hadoop, programming with Java, programming with Python, creating custom data types.
• Managing data in distributed main memory, the concept of Resilient Distributed Datasets, immutability, Apache Spark.
• Introduction to Spark Dataframes, learning the Dataframe API, declarative processing of big data, the SparkSQL language, execution plans, optimization.
• Real-time processing, basic data flow concepts, data stream management systems, stateful and stateless processing, windowing mechanisms, data stream processing.

Suggested Bibliography

  • Παπαδόπουλος Απόστολος, Καρακασίδης Αλέξανδρος, Κολωνιάρη Γεωργία, Γούναρης Αναστάσιος (2024):  Τεχνολογίες επεξεργασίας και ανάλυσης μεγάλων δεδομένων. ΚΑΛΛΙΠΟΣ: https://repository.kallipos.gr/handle/11419/14277
  • Anand Rajaraman, Jeffrey David Ullman (2020): Mining Massive Datasets, 3rd Edition, Cambridge University Press.
  • Raghu Ramakrishnan and Johannes Gehrke (2012): Database Management Systems, 3rd Edition, McGraw-Hill. ISBN: 978-0072465631.
  • M. Tamer Özsu, Patrick Valduriez (2011): Principles of Distributed Database Systems, Third Edition. Springer, ISBN 978-1-4419-8833-1, pp. I-XIX, 1-845.
  • Tom White (2015): Hadoop: The Definitive Guide – Storage and Analysis at Internet Scale, 4th Edition. O’Reilly Media. ISBN: 9781491901632.
  • Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia (2015): Learning Spark: Lightning-fast big data analysis. O’Reilly Media. ISBN: 9781449358624.
  • Martin Kleppmann (2017): Designing data-intensive applications. O’Reilly Media. ISBN: 9781491903100.

 

 

Student Placement

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

Privacy on the Internet

Learning Outcomes

Within the framework of the course, students will be able:

  • To fully understand the concepts of privacy, territorial privacy, privacy of the person and especially informational privacy
  • To realise the privacy threats environment and related requirements
  • To understand the concept of privacy framework
  • To realise the legal requirements of privacy by design and privacy by default
  • To conduct data protection impact assessment surveys for public and private bodies
  • To study all privacy issues rised in modern public clouds
  • To know critical technological tools for privacy enhancement
  • To understand national and European regulations regarding informational privacy protection and personal data protection
  • To understand the challenges posed by the evolving dynamics of the combination of the cognitive fields of cyber security, privacy protection, and Artificial Intelligence and the way they create social, cultural, political, and financial issues, as well as ethical issues in modern societies
  • To possess state-of-the-art specialized scientific knowledge in the subjects of the course as a basis for original thinking and research activities.

Course Contents

  • Privacy: The citizens and public & private bodies viewpoint. Territorial privacy, privacy of the person, informational privacy
  • Personally identifiable information PII and personal data
  • Threats and privacy requirements
  • The privacy paradox
  • Legal and regulatory frameworks for personal data protection: The EU GDPR General Data Protection Regulation
  • Privacy framework and ISO 29100:2024
  • Controls and best practices for privacy protection according to ISO 29151:2017
  • Privacy by design and ISO 31700-1: 2023
  • Privacy information management system and ISO 27701:2019
  • Data protection impact assessment and ISO 29134:2023
  • Privacy in public clouds and ISO 27018:2019
  • Privacy Enhancing Technologies: Data obfuscation tools (anonymization, pseudonymization, synthetic data, differential privacy, zero knowledge proofs), Encrypted data processing tools (homomorphic encryption, multiparty computation, trusted execution environments), Federated and distributed analytics (federated learning, distributed analytics), Data accountability tools (accountable systems, threshold secret sharing, personal information management systems)
  • Privacy protection and AI systems: The Artificial Intelligence Act

Suggested Bibliography

  • Acquisti, S. Gritzalis, C. Lambrinoudakis, S. De Capitani di Vimercati (Eds) (2008), Digital Privacy, Theory, Technology and Practices, Auerbach Publications
  • Tamo-Larrieux (2018), Designing for Privacy and its Legal Framework: Data Protection by Design and Default for the Internet of Things, Springer
  • Bart van der Sloot, A. de Groot, (2018) The Handbook of Privacy Studies, Amsterdam University Press

Scientific Journals

Educational Technology

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

  • to know and understand the key concepts of educational design for technology-supported and technology-enhanced educational innovations (including flipped classroom for blended learning and Massive Open Online Courses).
  • to analyse and critique the basic elements of the ADDIE educational design process when applied to design, develop and evaluate technology-supported and technology-enhanced educational innovations (including flipped classroom for blended learning and Massive Open Online Courses).
  • to design and implement pedagogically grounded technology-supported and technology-enhanced educational innovations focusing to flipped classroom for blended learning and Massive Open Online Courses.

Course Contents

  • Educational Design for Technology-supported and Technology-enhanced Educational Innovations
    • What is Educational design? Definitions – Basic Principles – Models
    • The ADDIE Model: Analysis of each Phase
    • Analyse Learners and Learning Context
    • Educational Objectives and Assessment of Learning and/or Performance
    • Strategies for Teaching and Learning
  • Digital Media in Education and Training
    • Educational Videos
    • Interactive Digital Textbooks
    • Educational Games and Gamification
    • Educational Mobile Apps
    • Educational Web 2.0 Application
    • Educational Augmented Reality and 3D Virtual Worlds in Education & Training
  • Case Studies
    • Blended Learning: the Flipped Classroom model
    • Massive Open Online Courses (MOOCs)

Recommended Readings

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

Assessment in Digital Learning

Goal and Learning Outcomes

The course seeks to both conceptualize and redefine the purpose and objectives of the 21st century assessment for learning, as well as to outline modern and easy-to-use techniques and tools used by teachers in modern formal and informal learning environments.

After the successful completion of the course, the students will be able to:

  • State the modern forms of educational evaluation, utilizing educational technologies
  • Understand methodological issues regarding the organization and conduct of quality assessment of the educational process.
  • Utilize modern tools and techniques to evaluate trainees’ performance.
  • Apply a variety of techniques for systematic evaluation of instructional process.

 

Contents

  1. Basic principles of evaluating the quality of educational interventions
  • Formative
  • Holistic-Summative
  1. Principles of Monitoring and Assessing Students’ Performance
  2. Known techniques for evaluating the performance of trainees
  3. Categories of assessment tools
  • Quiz-tests
  • Rubrics
  • Mindmaps
  • Learning Analytics
  • Computational Thinking Assessment tools
  1. Quality Evaluation Techniques for Learning Resources and Learning Systems
  2. Process of creation and application of evaluation techniques and tools.

Suggested Reading

  1. A. Tomlinson & T. R. Moon (2013). Assessment and Student Success in a Differentiated Classroom, Association for Supervision & Curriculum Development, ISBN 1416616179 (ISBN13: 9781416616177)
  2. Cowie, B., Moreland, J. and Otrel-Cass, K. (2013). Expanding Notions of Assessment for Learning. Dordrecht: Springer.

Compilers

Learning Outcomes

This course provides an introduction to the principles of analysis and design of programming languages as well as to the ways these principles are applied in modern programming languages. The successful completion of this course will allow students:

  • to understand the basic and important features of the design, implementation and analysis of compiler systems for modern programming languages.
  • to know the basic features of the tools and the development techniques for the creation of modern programming languages.

Course Contents

  • Introduction – Overview of Modern Programming Languages.
  • Language Definition and Design (Regular Expressions – Automata – Context-Free Grammars).
  • Programming Language Structure (Variables, Types and Scoping, Control Flow and Evaluation of Expressions, Subroutines, Iterative and Recursive Processes, Memory Management and Communication).
  • The Compiling/Interpretation Process (Lectical Analysis, Syntactic Analysis, Code Production & Optimization, Linking).

Recommended Readings

  • Scott, M. L., Programming Language Pragmatics, 2nd edition, Morgan Kaufmann, 2009
  • Instructor Notes

Digital Signal Processing

Learning Outcomes

The course introduces students to the design theory for continuous and discrete time linear systems. Based on this theory, students will be able to design analog and digital filters based on specifications in the frequency domain.

Upon successful completion of the course the student will be able to:

  • Use algorithms to design Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) digital filters.
  • Obtain transfer function of prototype analog filters based on required frequency response.
  • Obtain IIR and FIR filter implementation methods: serial and parallel structures.
  • Design FIR and IIR filters using the Matlab software tool.

Course Contents

  • Frequency response of discrete time signals
  • Finite impulse response (FIR) digital filters with linear phase.
  • FIR filter design using the window method.
  • FIR filter design using the frequency sampling method.
  • FIR filter design using the optimal method.
  • Prototypes of analogue lowpass filters: Butterworth polynomials and Chebyshev polynomials.
  • Frequency translation of ptototype analogue filters for creating analogue filters with arbitrary frequency response.
  • Design of digital infinite impulse response (IIR) filters using bilinear transformation.
  • Frequency transformation of digital filters.
  • Implementation issues and techniques for IIR and FIR digital filters
  • Telecommunication filters raised cosine.

Recommended Readings

  • Vinay Ingle & John Proakis, (2012) Digital Signal Processing using Matlab, 3rd edition, Cengage Learning
  • C. Ifeachor & B.W. Jervis, (2002): DSP A Practical Approach, 2nd edition, Prentice Hall, ISBN 0201-59619-9
  • J. Proakis & D. Manolakis, (2007): Digital Signal Processing: Principles, Algorithms and Applications, 4th Edition, Prentice Hall.

Digital Image Processing

Learning Outcomes

Digital image processing is used for two distinct purposes: (1) improving the appearance of the image so that it is easier for an observer to interpret and (2) digitally analyzing the image for the purpose of describing, identifying and interpreting the content of an image. image. The course will present the basic algorithms and methodologies for both purposes in the field of space and in the field of frequencies.

Students, upon successful completion of the course, will be able to:

A) Understand basic methodologies and basic knowledge of designing and developing image processing systems

B) Know the stages of digital image processing and analysis (optical sensors, image capture, digitization, transformation, coding, compression, transmission, segmentation, recognition)

C) Analyze problems across different application areas and select the right mechanisms for managing and processing digital images

D) Evaluate digital image processing systems and algorithms

Course Contents

  • Introduction to Digital Image Processing
  • 2-D Signals and Systems – Background Information
  • Sampling and Digitization Issues
  • Image Enhancement and Restoration
  • Binary Image Processing – Morphological Operators
  • Image Segmentation – Edge Detection
  • Image Transformations (Fourier, DCT, Hadamard, etc.)
  • Analysis in the frequency domain
  • Digital Image Compression
  • Digital Image Analysis – Computer Vision
  • Texture Analysis – Region of Interests
  • Other areas: eg Watermarking, Information Retrieval, etc.

Recommended Readings

  • Rafael C. Gonzalez & Richard E. Woods Digital Image Processing CRC Press 4th Edition