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.
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
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
- Basic principles of evaluating the quality of educational interventions
- Formative
- Holistic-Summative
- Principles of Monitoring and Assessing Students’ Performance
- Known techniques for evaluating the performance of trainees
- Categories of assessment tools
- Quiz-tests
- Rubrics
- Mindmaps
- Learning Analytics
- Computational Thinking Assessment tools
- Quality Evaluation Techniques for Learning Resources and Learning Systems
- Process of creation and application of evaluation techniques and tools.
Suggested Reading
- A. Tomlinson & T. R. Moon (2013). Assessment and Student Success in a Differentiated Classroom, Association for Supervision & Curriculum Development, ISBN 1416616179 (ISBN13: 9781416616177)
-
Cowie, B., Moreland, J. and Otrel-Cass, K. (2013). Expanding Notions of Assessment for Learning. Dordrecht: Springer.
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
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.
Learning Outcomes
The purpose of the course is to highlight the concept of privacy, especially in relation to personal and / or sensitive data exchanged through open public networks, such as the Internet, in the context of various electronic services. Existing privacy enhancing technologies are introduced and special reference is made to the privacy problems faced by specific categories of applications. The proposed treatment mechanisms are also presented.
In this context, the learning outcomes of the course, after its successful completion, are that the students will be able:
- to understand the basic concepts of privacy and personal data protection as well as how to recognize and analyze privacy requirements.
- to know the basic privacy requirements that need to be taken into account when designing, and to be satisfied in the implementation, of an information system.
- to analyse, evaluate and justify alternative technologies / mechanisms to protect privacy and meet the requirements.
- to design systems that protect the privacy of its users
Course Contents
- Definition of Privacy.
- Legal Framework for the Protection of Personal Data.
- Attacks on Privacy and Subjectivity of Impact in case of Privacy violation incidents.
- Requirements for anonymity, unlinkability, undetectability and unobservability.
- Pseudo-anonymity.
- Identity Management.
- Privacy Enhancing Technologies (Anonymizer, LPWA, Onion Routing, Crowds, MixNets, etc.).
- Privacy protection in Ubiquitous Computing (RFIDs, Positioning Services), Internet Telephony, Health Information Systems, etc.
- The Greek Framework for Digital Authentication and the Unique Citizen Identification Number for Electronic Services Offered by Government Bodies.
- Privacy Economics
Recommended Readings
- A. Acquisti, S. Gritzalis, C. Lambrinoudakis, S. De Capitani di Vimercati (Eds) (2008) Digital Privacy, Theory, Technology and Practices., Auerbach Publications.
Associated scientific Journals
- IEEE Security and Privacy Magazine, IEEE
- International Journal of Information Security, Springer
- Computers and Security, Elsevier
- Requirements Engineering, Springer
- IEEE Transactions on Software Engineering, IEEE
- Security and Communication Networks, Wiley
Learning Outcomes
This course is the basic introductory course for the perception, representation and management of digital media through computational methods.
The course material focuses on the introduction of the students to the basic concepts and algorithms for the representation, processing and interaction with digital audiovisual media. Moreover, the course material refers to the description of the correlation between computational techniques and human perception in media environments.
The course seeks to make students understand the ways with which is possible the development and management of media sources in coomputational systems.
With the successful completion of the course the student will be capable of:
- understanding the basic and important features of the computational representation, processing and interaction with digital audiovisual media.
- knowing the major features of the tools and development methods of digital audiovisual environments and applications.
Course Contents
- Definition and classification of multimedia technologies.
- Audio and visual perception.
- Audio processing.
- Image and video processing.
- Design and development of multimedia systems.
Learning Outcomes
The course pertains to the modeling and solving of operational research problems via linear programming, integer programming and related optimization models. In this context, the theoretical foundations of these optimization models are developed; solving algorithms are presented, for global optimization (e.g., the Simplex method, Branch-and-Bound), as much as the design and analysis of heuristic methods, inclusively of local search and approximation algorithms.
Upon successful completion of the course, the students will be in position:
- to develop the formal/abstract mathematical representation of an operational optimization problem, given its description in natural language along with the problem’s parameters and input data.
- to choose appropriate solving methods for a given mathematical model of an operational optimization problem.
- to program a mathematical optimization model in an appropriate programming language, while using relevant software for solving the model.
- to assess and evaluate the solution to a mathematical optimization model, along with the performance of the chosen solving method.
- to discriminate between computationally tractable and hard mathematical models for operational research problems.
Course Contents
- Modeling Problems through Linear Programming.
- Linear Programming Theory, Duality.
- The Simplex Algorithm.
- Integer Linear Programming, Branch and Bound Method.
- Transportation and Assignment Problems.
- Network Optimization (paths, trees, flows, matchings, cuts).
- Computationally Hard Optimization Problems.
- Introduction to Approximation Algorithms.
- Local Search Methods.
Recommended Readings
- F. S. Hillier, G. J. Lieberman. Introduction to Operations Research. McGraw-Hill Higher Education, 2004.
- J. Kleinberg, E. Tardos. Algorithm Design. Pearson, 2013.
Learning Outcomes
This course introduces students to theoretical and applied research of collaborative learning (CSCL/W) depending in social cognition and social constructivism learning theories (situated learning – cognitive apprenticeship).
On completion of the course, the students will be able:
- to demonstrate knowledge in designing CSCL/W in educational and business settings.
- to choose and critically evaluate the perspectives of social & dialectical constructivism:
- to realize how CSCL/W can facilitate sharing and distributing of knowledge and expertise among community members.
- to synthesize projects in the context of socio-cognitive and social constructivism models in a CSCL/W.
- to create CSCL project in schooling, training/vocational environments.
- to realize the added value of collaboration in global society (multicultural awareness).
Course Contents
- CSCL/W in educational and working environments for peers in shared/collaborative settings.
- Socio-Cognitive approaches of learning.
- The social & dialectical constructivism: CSCL theories, principles, strategies, roles, artifacts/activities.
- The Vygotskian theory, situated learning, cognitive flexibility theory, cognitive apprenticeship, problem/project-based learning, self-regulated learning, self-directed learning, communities of practice.
- Shared and distributed knowledge and expertise with peers and community members (community of practices).
- Authentic assessment in collaborative learning on digital systems related to school/training/vocational environments.
Recommended Readings
Dillenbourg P., Fischer F., Kollar I., Mandl H. & Haake J.M. (2007): Scripting Computer-Supported Collaborative Learning, Springer.
Kobbe L. (2006): Framework on multiple goal dimensions for computer-supported scripts, Kaleidoscope.
Recommended Readings
Barkley, E & Major, C. H. & Cross, K.P. (2016) Collaborative Learning Techniques: A Handbook for College Faculty 2nd Edition, Jossey-Bass.
Goggins, S.P., Jahnke, I. & Wulf, V. (2013). Computer-Supported Collaborative Learning at the Workplace: CSCL@Work, Elesevier.
Sharratt, L.D. & Planche B. M. (2016). Leading Collaborative Learning: Empowering Excellence, Corwin.
Learning Outcomes
This course analyses the five main components of an Information System, the different types of IS and issues associated with the implementation and application of IS. With the completion of the course, the student will be in position:
- to understand and become familiar with the key concepts and principles of information systems, addressing both architectural and implementation aspects.
- to know the main characteristics of the programming languages used to implement information systems, as well as the key principles for the interconnection of different application components of an information system.
- to implement IS projects using various programming techniques and methodologies, including modern tools for code generation and low/no-code development.
- to incorporate modern methodologies and techniques like DevOps and CI/CD into the development process.
to assure the quality of large-scale software and systems in a production environment.
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.
- Working in an interdisciplinary environment.
- Project planning and management
- Critical thinking.
- Development of free, creative and inductive thinking.
Course Contents
- Introduction to the field of Information Systems (IS) and a presentation of their basic concepts and structural components. The basic principles of systems theory, the life cycle of an Information System, and the IS-organization relationship will be examined (software, hardware, processes, and human resources).
- Special emphasis will be given to business processes, as their automation via computers is the most significant reason for the adoption of IS by organizations. The study of business processes, their modeling, and their improvement will be covered.
- Analysis of the main categories of modern information systems development methodologies (evolutionary, agile, etc.) for different project types, and a study of the most popular methodologies (AGILE, Waterfall, Spiral, Rapid Application Development – RAD, Rational Unified Process – RUP, etc.), as well as of the related tools and techniques.
- To make IS development more understandable, practical methods like the critical path method are expected to be used. Subsequently, factors influencing IS adoption will be studied, along with issues related to the organizational changes brought about by IS development.
- Study of DevOps methodologies and techniques and creation of continuous integration/continuous delivery (CI/CD) processes, automated testing, and operational monitoring.
- Application of software quality assurance processes and operation of large-scale systems in a production environment.
- In parallel, the socioeconomic impacts of information technology and IS will be studied, as well as their strategic role.
Suggested Bibliography
- Βασιλακόπουλος Γ.: “Πληροφοριακά Συστήματα” 2η έκδοση, Εκδόσεις Τσότρα, 2018.
- David Avison, Guy Fitzgerald, “Information Systems Development”, McGraw-Hill Education, 2002
- Laudon K.C. & Laudon J.P.: “Management Information Systems”, 14th edition, Pearson Education (US). 2022.
Related scientific journals
- Information Systems Journal, Wiley. https://onlinelibrary.wiley.com/journal/13652575
- Information Systems Frontiers, Springer. https://link.springer.com/journal/10796
- IEEE Transactions on Software Engineering. https://www.computer.org/csdl/journal/ts