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.

 

 

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 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

Digital Communications

Learning Outcomes

The aim of the course is to study digital modulation and demodulation techniques in baseband and bandpass telecommunication systems. It presents the detection theory of transmitted communication signals using the method of matched filtering and correlation. The course also covers the analytical evaluation of the performance of digital modulations in additive white Gaussian noise (AWGN) channels in terms of symbol error and bit error probabilities. Finally, an introduction to OFDM multi-carrier transmission and reception is given.

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

  • Understand the detection theory of digital transmission for baseband and bandpass communication systems.
  • Understand the modulation techniques of ASK, FSK, M-FSK, PSK, DPSK, M-PSK, M-QAM and OFDM.
  • Obtain analytical expressions for the probability of symbol error of various digital modulations in AWGN channel.
  • Understand the pros and cons of various digital modulations in terms of achievable bit rate, error performance, and spectral efficiency.
  • Understand the need of using OFDM in multipath channels.
  • Make simulation models in Matlab/octave in order to evaluate the symbol and bit error probability performance of digital modulations in AWGN.

Course Contents

  • Baseband transmission methods and probability of error for matched filter detection in AWGN.
  • Binary passband modulations: ASK, FSK, and PSK.
  • M-ary signalling: M-FSK, M-PSK, and M-QAM.
  • Demodulation techniques for digital passband modulations and symbol error performance in AWGN channel.
  • Spectral efficiency of digital modulations.
  • Digital filters for zero intersymol interference at the receiver.
  • Noise figure, composite noise figure and noise temperature, calculation of effective receiver temperature.
  • Link budget analysis.
  • Channel coding, convolutional codes and Viterbi algorithm.
  • OFDM transmission and detection.

Recommended Readings

  • Proakis J. & Salehi M. (2001): Communication Systems Engineering, 2nd Edition, Prentice Hall.
  • Sklar B. & Harris F. (2020): Digital Communications: Fundamentals and Applications (Communications Engineering & Emerging Technology Series from Ted Rappaport), 3rd edition, Pearson.

Artificial Intelligence

Learning Outcomes

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

  • Explain fundamental concepts including agents, problem & state/action/ spaces, problem solving via search as a model of thinking, heuristics, knowledge representation and reasoning using logic.
  • Select algorithms for problem solving based on problems characteristics, and characteristics of problem & state/action spaces.
  • Evaluate usefulness, advantages and limitations of various algorithms and methods towards increasing computational effectiveness of problem solving
  • Modelling problems as constraint satisfaction problems, or as problems in logic.

Course Contents

  • Introduction to artificial intelligence, goals, advances, prospects, limitations, and basic notions regarding agents and problem solving.
  • Blind search algorithms
  • Informed search algorithms and proofs of finding optimal solutions
  • Heuristic functions and their construction and selection
  • Local search using hill climbing, simulated annealing, local beam search, genetic algorithms.
  • Constraint problem solving: depth first, depth first with various forms of backtracking, forward checking, arc consistence, maintaining arc consistency, min conflicts.
  • Knowledge representation and reasoning in logic: Propositional logic, entailment, , resolution, satisfiability, DPLL, local search for satisfiability.

Recommended Readings

  • Stuart Russel and Peter Norvig. Artificial Intelligenc­e: A Μodern Approach, Prentice Hall, 2nd edition (2003). http://aima.cs.berkeley.edu/. Το βιβλίο έχει εκδοθεί στα Ελληνικά από τις εκδόσεις Κλειδάριθμος με τον τίτλο «Τεχνητή Νοημοσύνη: Μια σύγχρονη προσέγγιση».http://aima.uom.gr/.
  • Ι. Βλαχάβα, Π. Κεφαλά, Ν. Βασιλειάδη, Φ. Κόκκορα και Η. Σακελαρίου. Τεχνητή Νοημοσύνη. Εκδοτικός οίκος «Β. Γκιούρδας Εκδοτική – Μονοπρόσωπη ΕΠΕ».http://aibook.csd.auth.gr.

Security Policies and Security Management

Learning Outcomes

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

  • To understand information and systems security problems for public and private bodies
  • To realise the necessity of information security management system ISMS according to ISO 27001:2022
  • To conduct risk management actions according to ISO 27005:2022, starting with risk assessment process and continue with risk treatment process, using software tools
  • To select suitable technological controls, organizational controls, physical controls and people controls, according to ISO 27002:2022
  • To effectively design ISMS and information security polices
  • 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

  • Information and systems security terminology and ISO 27000:2018
  • Information Security Management System – ISMS: Basic principles and ISO 27001:2022
  • Controls/safeguards: technological controls, organizational controls, physical controls, and people controls according to ISO 27002:2022
  • Information Security Risk management and ISO 27005:2022: assets, threats, vulnerabilities, controls
  • Risk assessment: risk identification, risk analysis, risk evaluation
  • Risk treatment: risk modification, risk retention, risk avoidance, risk sharing
  • Statement of applicability
  • Software for conducting the risk management process
  • Information security organizational framework: Security policies, policies hierarchy, thematic policies, policies life cycle, responsibilities for the development of security policies

Suggested Bibliography

  • R. Anderson, Security Engineering, J. Wiley & Sons, 3rd edition, 2020
  • D. Gollmann, Computer Security, J. Wiley & Sons, 3rd edition, 2011

Scientific Journals

Broadband Networks

Learning Outcomes

The objective of this course is to provide an introduction to broadband technologies and their applications and familiarize students with broadband networks and relevant protocols.

At the end of this course, students will have acquired advanced/in depth knowledge in the field of Broadband Communications Systems, with particular emphasis on baseband processing physical layer techniques, and Medium Access Control design as well as Broadband Networks design and architectures.

The students will be capable of performing numerical calculations of various broadband network parameters, stochastic modelling of transceivers, signal processing algorithm analysis and design and performance assessment by means of analytical evaluations and simulations.

The students will also be capable of comprehending the design principles of a number of Broadband technologies.

Course Contents

  • Introduction to broadband networks, main concepts: bandwidth, transmission basics, switching, multiplexing, spread spectrum, transmission media.
  • Integrated services networks, access networks, core networks, Integrated services networks: integrated services digital networks (ISDN), broadband integrated services digital networks (B-ISDN).
  • Wireline Access networks/technologies: public switched telephone networks (PSTN), digital subscriber line (DSL), wireless-access (broadcasting, mobile, fixed-wireless access–FWA), fiber to the curb/home (FTTX).
  • Core networks/technologies: Ethernet, ethernet wide area networks, optical technologies, synchronous optical networks (SONET), wave division multiplexing (WDM), passive optical networks (PONs).
  • Wireless wide are broadband technologies:  3G (WCDMA), 4G (LTE, LTE-Advanced), 5G.
  • Wireless Local Area Networks: WiFi- IEEE 802.11
  • Internet of Things network infrastructures

Recommended Readings

  • Behrouz A. Forouzan, “Data Communications and Networking”, Fourth edition, McGraw-Hill, 2007
  • W Stallings, Wireless Communciations and Networks, Pearson, 2004.
  • D. Tse, P. Viswanath, Fundamentals of Wireless Communciations, 2005.
  • T. S. Rappaport, Wireless communications – Principles and practices, Pearson, 2002.
  • Russell Τ. (1997): Telecommunication Protocols (McGraw-Hill Education).
  • Cajetan M. Akujuobi, Matthew N.O. Sadiku (1997): Introduction to Broadband Communication Systems, Chapman & Hall/CRC
  • Andrea Goldsmith, Wireless Communications, Cambridge University Press, 2005.

Cloud Computing

Learning Outcomes

The main objective of this course is to introduce concepts related to the analysis, design and implementation of computation and storage clouds. With the completion of the course, the student will be in position:

  • to understand the necessary theoretical background for computing and storage clouds environments.
  • to know the methodologies and technologies for the development of applications that will be deployed and offered through cloud computing environments.
  • to be able to realize cloud infrastructures by using IaaS software, while also developing cloud applications by utilizing PaaS software.

Course Contents

  • Introduction to cloud computing.
  • Objectives, challenges, application domains, advantages.
    • Computational and storage cloud architectures
    • Service level agreements, service lifecycle management
  • Infrastructure deployment, federation and management models.
    • Cloud service model, service provisioning and access models
    • Elasticity and scalability techniques
    • Information, account and billing management
  • Implementation and operation / management of computational clouds.
    • Software as a Service layer
    • Platform as a Service layer
    • Infrastructure as a Service layer
    • Virtualization and resource management
  • Implementation and operation / management of storage clouds.
    • Distributed object storage clouds
    • Data storage and retrieval based on content
    • Computational tasks execution in storage clouds
  • Quality of service approaches.
    • Requirements and parameters classification
    • Monitoring and control mechanisms
    • Quality of service guarantees
  • Laboratory exercises.
    • Google AppEngine
    • OpenStack
    • Apache Hadoop / MapReduce

Moreover, the EVDOXOS system is utilized to provide additional useful information to the students as well as exercises that respond to the corresponding thematic topics / sessions covered by the course.

Recommended Readings

  • Α. Velte, T. Velte, R. Elsenpeter, «Cloud Computing: A practical approach»
  • T. Erl, «Cloud Computing: Concepts, Technology & Architecture»
  • B. Sosinsky, «Cloud Computing Bible»G. Reese, «Cloud Application Architectures: Building Applications and Infrastructure in the Cloud»
  • R. Buyya, J. Broberg, A. M. Goscinski, «Cloud Computing, Principles and Paradigms»