Each description shows the name of the instructor offering the course in the academic year 2025/2026 or the instructor who suggested the course for courses not offered during the academic year 2025/2026.
Course Title: Distributed Systems
Course Code: CS 601
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: Chr. Georgiou
ECTS: 8 | Lectures / week: 4 hours | Recitation / week: - | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Familiarization with fundamental concepts and principles of distributed systems in both breadth and depth. Development of capabilities of designing, analyzing and programming distributed systems and algorithms. Gaining an understanding of the possibilities they offer but also the problems faced in distributed systems.
Learning Outcomes: Upon successful completion of this class, the student is expected to be able to:
- Understand the basic concepts and principles of distributed systems.
- Demonstrate advanced ability in the design, analysis and programming of distributed systems and algorithms.
- Master the different naming, distributed file, security and fault-tolerant systems under the client-server paradigm.
- Understand the basic characteristics of Peer-to-Peer Systems as well as of Distributed Ledgers (Blockchains).
- Implement and develop distributed applications and algorithms using the ZeroMQ concurrency framework.
Prerequisites: None Required: None
Course Content: Basic concepts and principles of distributed systems. Communication, processes and synchronization. Naming. Distributed file systems, distributed operating systems and midleware. Security and cryptography in distributed systems. Distributed shared memory and its consistency. Fault-tolerance. Distributed algorithms and distributed programming. Design and development of applications in distributed environments. Case-studies of specific distributed systems (e.g., Blockchains). Practical exposition with programming project and programming exercises.
Teaching Methodology: Lectures (3 hours weekly) and Recitation (1 hour weekly), Laboratory Lecture (1.5 hours weekly).
Bibliography:
- Α. S. Tanenbaum and Μ. van Steen, Κατανεμημένα Συστήματα: Αρχές and Υποδείγματα, Εκδόσεις ΚΛΕΙΔΑΡΙΘΜΟΣ, 2005.
- G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair, Distributed Systems – Concepts and Design, 5th Edition, Pearson, 2011.
- Relevant published articles.
Assessment: Final exam, midterm exam, in-laboratory quizzes and homework (programming assignments).
Language: Greek
Course Title: Cloud Computing
Course Code: CS 602
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: M. Dikaiakos
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: This course covers topics and technologies related to Cloud Computing (CC), focusing on state-of-the-art technologies, current research and emerging issues of relevance. Students will engage in the study of basic concepts, recent literature and experimentation with acknowledged technologies. The precepts and laboratories use primarily materials and learning content by Amazon Web Services Academy, which are designed to help students prepare for AWS Certification. Students who attend this course will gain an understanding of the Cloud Computing paradigm and the technical underpinnings of Cloud services. They will be able to describe and analyze key middleware components of Cloud services, to understand the main Cloud application development paradigms, and to use state-of-the-art Cloud service offerings for Data Science-related projects. Precepts and labs will help students prepare for AWS Certification. Students will review and explore, through lectures, discussions, videos, reading and writing assignments, labs, and practice, the following modules: i) Basic Concepts and Models of CC; ii) CC Building Blocks (Data centers and software); iii) Cloud Application Programming Paradigms.
Learning Outcomes: The students who complete this course successfully will:
- Master the fundamental concepts, the main enabling technologies and the key programming and application-development paradigms of modern Cloud Computing services.
- Be able to design develop, deploy, and monitor highly scalable cloud-based applications by creating and configuring virtual machines, containers, microservices on the cloud.
- Be familiar with techniques for big data analysis in Cloud Computing environments.
- Compare, contrast, and evaluate the key trade-offs between multiple approaches to cloud system design, and Identify appropriate design choices when solving real-world cloud computing problems.
- Write comprehensive case studies analyzing and contrasting different cloud computing solutions.
- Make recommendations on cloud computing solutions for an enterprise.
Be prepared to take the AWS Certification exams.
Prerequisites: Basic knowledge in Programming and Data Structures, Operating Systems, Networking, Parallelism. Required: None
Course Content: Part I: Basic Concepts and Models
- Module 1: Fundamental concepts, terminology, Cloud Computing Evolution.
- Module 2: Cloud Computing models.
Part II: Building Blocks
- Module 3: Data centers and warehouse-scale computers.
- Module 4: Virtualization, Containers, and Resource Management.
- Module 5: Cloud Storage.
Part III: Cloud Application Programming Paradigms
- Module 6: Serverless Computing.
- Module 7: Microservices and DevOps.
Teaching Methodology: Hybrid
- Lectures with physical presence: 3 hours every week (13 x 3hrs)
- Online precept: 1 hour every week (13 x 1hr). This contains online lectures, quizzes, and exercises of the course Amazon Cloud Foundations of the Amazon Web Services Academy program.
- Lab sessions with physical presence in class (4 x 1.5 hrs) and online (9 x 1,5hr). This contains online lectures, hands-on labs, and quizzes of the course Amazon Web Services Introduction to Cloud the Amazon Web Services Academy program.
Bibliography: Readings for this class comprise chapters from books, papers from the scientific literature, and notes from AWS Academy. Required and additional readings will be posted on the course outline web page. In particular, we will use material from the following books:
- Barroso, L. A., Holzle, U. & P. Raganathan (2018) The data center as a Computer. An Introduction to the Design of Warehouse-Scale Machines. Third Edition. In Synthesis Lectures on Computer Architecture (Vol. 2, Issue 1). Morgan & Claypool Publishers.
- Marinescu, D. (2017) Cloud Computing: Theory and Practice. Morgan Kaufmann.
- Foster I. and Gannon Dennis B. (2017) Cloud Computing for Science and Engineering. The MIT Press.
- Peterson, Baker, Bavier, Williams and Davie (2022) Edge Cloud Operations: A Systems Approach. version v0.2.
- Jeff Nickoloff and Stephen Kuenzli (2019) Docker In Action. Manning.
Assessment: Student progress is evaluated continuously through class participation and the assessment of in-class presentations, writing assignments, group project deliverables, and final exam.
Language: English
Course Title: Using Software Architectures to Design and Implement Software Systems
Course Code: CS 603
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: G. Papadopoulos
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: The fundamental concepts, principles and modern methods in the use of Software Architectures in the design and implementation of modern software systems will be taught. The role of Software Architectures in Software Engineering will be understood, with an emphasis on Software Reuse issues.
Learning Outcomes: Understanding of the basic concepts of Software Architectures and related Architecture Description Languages. Design and implementation of modern software systems using a specific Architecture Description Language. Correlating the modeling phase with this implementation through the use of modern middleware platforms and software application development environments (Javabeans, .Net, Eclipse, etc.).
Prerequisites: Undergraduate course in Software Engineering Required: None
Course Content: Basic concepts. Architectural Design. Connectors. Modeling. Visual Representation. Architectural Standards. Analysis and Implementation. Non-functional properties. Security and trust. Standards. The human factor. Specific application areas.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- Taylor, R., Medvidovic, N., Dashofy, E., Software Architecture: Foundations, Theory, and Practice, 2010, Wiley
- Bass, L., Clemens, P., Kazman, R., Software Architecture in Practice, 4th Edition, 2022, Pearson
Assessment: Midterm and Final exam, lab exercises and group project.
Language: Greek (or English)
Course Title: Artificial Intelligence
Course Code: CS 604
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: Y. Dimopoulos, Chr. Christodoulou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: This course covers specialized topics in Artificial Intelligence, such modeling and solving constraint satisfaction problems, symbolic learning, learning with various forms of neural networks including deep learning, and reinforcement learning.
Learning Outcomes: Understand different methods of solving constraint satisfaction problems, such as finite domain solving, propositional satisfiability, and answer set programming. Learning in various types of Neural Networks including supervised and deep learning, unsupervised learning, as well as reinforcement learning. Familiarize with software systems for modeling and solving practical problems in reasoning and learning.
Prerequisites: None Required: None
Course Content: Introduction to Artificial Intelligence. Topics in Constraint Satisfaction. Satisfiability and Optimization in Logic. Answer Set Programming. Topics in Machine Learning, Data Mining, and Reasoning under Uncertainty. Introduction to Artificial Neural Networks. Single layer and Multi layer Perceptrons. Backpropagation learning algorithm. Deep Learning and Convolutional Neural Networks. Recurrent Neural Networks. Self-organizing Maps. Radial-basis Function Networks. Reinforcement Learning. Hopfield Neural Networks and Boltzmann Machines as well as Restricted Boltzmann Machines.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, Second Edition, Prentice Hall, 2002.
- S. Haykin, Neural Networks and Learning Machines, Third Edition, Pearson Education, 2009.
Assessment: Final exam, midterm exam and homework.
Language: Greek
Course Title: Advanced Computer Architecture
Course Code: CS 605
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: Y. Sazeides / H. Volos
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Introduction to advanced principles of organization, operation and performance analysis of modern computer systems
Learning Outcomes:
- Familiarization with computer technology trends
- Performance measurement and analysis for modern computer systems
- Understanding for techniques used to improve the instruction level parallelism of cores found sin modern central processing units
- Learn advanced techniques to improve memory hierarchy performance
- Microarchitectural Security, transient and non-transient attacks
- Familiarization with thread level parallelism, parallel architectures with shared memory, and the problems of memory coherence and memory consistency
- Introduction to techniques used for the organization of modern graphic processing units and to data level parallelism
- Domain Specific Architecture for Machine Learning
- Appreciation of the architecture of large scale computing systems (compute farms)
- Familiarization with methods for measuring dependability of computer systems
- Read and critique of research papers
Prerequisites: Undergraduate course equivalent to the CS221 (Computer Organization and Assembly Programming) and undergraduate course equivalent to the CS222 (Operating Systems). Required: None
Course Content: Performance evaluation and comparison, as well as benchmarking programs; Basic microarchitecture concepts of modern processors; Pipelining, instruction-level parallelism, prediction, speculation, and static/dynamic instruction scheduling; memory hierarchy; micrοarchitectural security; vector processors, simd, gpus, fine-grain-multithreading; multiprocessors, coherency, consistency; tpus, systolic arrays; case studies of modern processors; Current research trends in the area of computer architecture.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- J. Henessy and D. Patterson, Computer Architecture: A Quantitative Approach, 6th Edition, Morgan Kaufmann, 2020.
- Επιλεγμένα ερευνητικά άρθρα από τη Bibliography.
Assessment: Final exam, homework, class participation and paper review/discussion .
Language: Greek
Course Title: Computer Networks and the Internet
Course Code: CS 606
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: V. Vassiliou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Understanding (at a graduate level) of the basic concepts and matters regarding Computer Networks and the Internet. Familiarization with modern views of Computer Networks and exposure to the related open research problems.
Learning Outcomes:
- Explain the following core concepts of communication networks/computer networks: networking technologies and various network topologies, network layering, protocol basics, applications and Quality of Service, new techniques in networking and network management.
- Explain the following fundamentals in computer networks: protocol suite TCP/IP, Core networking technologies such as routers, switches. Protocols at application layer, design philosophy for reliable services at the transport layer. New technologies at network layer and link layer.
- Demonstrate skills in solving networking issues and analysis of communication protocols.
- Demonstrate skills in deploying and analyzing various routing and congestion control algorithms.
- Arguing, with regard to the infrastructure of a network and evaluates based on quality and other criteria the performance of networks.
- Demonstrates ability to solve networking problems and the evaluation of various Internet protocols with regard to performance.
- Shows ability to use Internet simulators for understanding networking concept and in the design and evaluation of networks.
- Shows ability to real time network monitoring tools and data traffic and protocol analysis, with the aim of assimilation of protocols and data traffic, but also for analysis of possible errors/problems in the functioning of the network.
- To seek to continuously evaluate new improved ways and mechanisms for network protocols.
- To constantly seek and analyze new techniques and network technologies, like the Internet of Things.
Prerequisites: Undergraduate course equivalent to the CS324 (Communications and Networks) Required: None
Course Content: Introduction to Internet and Networking Technologies. TCP/IP suite of protocols, Quality of Service (QoS), New Networking Architectures. Protocols and Standards (e.g. DiffServ, IPv6, MPLS). Network Performance Evaluation (e.g. queueing theory, and simulation tools). Traffic Modeling and Traffic Engineering. Congestion Control and Resource Allocation. Network Design and Optimization.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- L. Peterson and B. Davies, Computer Networks: A Systems Approach, Sixth Edition, Morgan Kaufmann, 2020.
- J. F. Kurose and K. W. Ross, Computers Networking – A Top Down Approach to the Internet, 8th Edition, Addison-Wesley, 2020.
Assessment: Final exam and homework (Individual or Group Project and laboratory exercises)
Language: Greek
Course Title: Visual Computing
Course Code: CS 607
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: Y. Chrysanthou / A. Aristidou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Teaching the basic principles of digital image processing, mechanical vision and computer graphics. These three areas meet in a multitude of recent applications due to the developments in hardware technology and related algorithms. Emphasis on industrial and bio-medical applications as well as on virtual reality applications.
Learning Outcomes: Upon completion of the course the students will be able to apply the basic 3D graphics algorithms as well as techniques for image analysis and computer vision. To this end, knowledge and skills will be acquired on the following topics: Basic Principles of Computer Graphics:
- Representing objects in polygonal form
- Geometric Transformations
- Coordinate systems and projections
- Scene graph, camera definition, graphics pipeline
- Local and global illuminations
- Real-time image generation
Basic principles of image analysis and computer vision:
- Feature extraction in images
- Camera calibration
- Perspective projection
- Recovery 3D shape information based on multiple viewpoints
- Selected topics in Computational Photography
Prerequisites: Programming in C, Basic Linear Algebra Required: None
Course Content: Binary image processing, intensity transformations, the discrete Fourier transform, linear and nonlinear filtering, image compression, image analysis, basic principles of video processing. Basic principles of 3Dgraphics: polygonal representations, transformations, local and world coordinate system, scene graph, camera and field of view specification, orthographic and perspective projection, clipping in 2D & 3D, polygon rasterization, back face elimination, visible surface determination with the Z-byffer method and Binary Space Partitioning Trees, local illumination - flat, Phong & Gouraud shading, real-time graphics, applications.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- Watt and F. Policarpo, The Computer Image, Addison–Wesley, 1998.
- R. C. Gonzalez and R. E. Woods, Digital Image Processing, Second Edition, Addison–Wesley, 2002.
- M.Slater, A. Steed and Y. Chrysanthou, Computer Graphics and Virtual Environments: From Realism to Real-Time, Addison-Wesley, 2001.
Assessment: Final exam, Midterm Exam, Exercises and Project.
Language: Greek
Course Title: AI Entrepreneurship
Course Code: CS 622
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: M. Dikaiakos
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: -
Course Purpose and Objectives: Progress in modern economies is shaped by scientific inventions and technological innovations that provide improved products or solutions to traditional needs, disrupt traditional business models or satisfy unanticipated consumer needs opening up new markets. Entrepreneurship is the primary mechanism through which inventions and innovations are brought to global markets. In recent years, the success of global Internet platforms, the rapid advance of digitalization across numerous sectors, and the ensuing abundance of digital data available on Internet have turned Artificial Intelligence (AI) and Machine Learning (ML) into major driving forces in innovative entrepreneurship, leading to unprecedented economic, social and cultural opportunities, challenges, and global impact. This course seeks to help students explore and master key concepts and challenges of relevance to AI and Data-driven entrepreneurship. The course introduces students to the world of AI entrepreneurship through case studies that demonstrate successes, failures and challenges. The course provides also an overview of and an introduction to key steps to develop a company, design a business model, explore product-market fit, manage intellectual property, and attract investment. Students will explore acknowledged innovation-driven entrepreneurship methodologies and experiment with them and associated tools to pursue the translation of their ideas into entrepreneurial endeavors. The course examines issues faced by Startup Founders and Chief Technology Officers who need to innovate at the boundaries of AI, Ιnformation Τechnology and Βusiness by understanding all perspectives.
Learning Outcomes: After taking this course, students should be able to:
- Understand and explain the interplay between Big Data, Machine Learning and various application domains.
- Evaluate technological ideas and apply the key stages of turning an idea or invention into a commercial product.
- Apply the Business Model Canvas methodologies in Information Technology and Scientific application contexts.
- Recognize and undertake the steps of the Disciplined Entrepreneurship methodology, and manage the key activities required to bring an innovative product or service to the market: product definition and market segmentation; value proposition analysis and high-level product specification; market and competition analysis; business model definition and revenue models; customer and user acquisition; minimum viable product definition and product implementation planning.
- Understand the basics of fundraising and financing options for a startup.
- Understand the basics of incorporation and company structure.
- Understand the key challenges for attracting talent, establishing and managing a startup team.
- Apply tools for project and team management, collaboration, ideation, rapid prototyping: Trello, Slack, SimpleMind, Proto.io, Github, Google AdService, Google Cloud, Heroku, etc.
- Prepare pitch decks, and pitch in front of potential investors, an ΑΙ-related business idea/product/service.
Prerequisites: None Required: None
Course Content: The course will comprise weekly live and recorded lectures by the professor and by invited speakers on various aspects of entrepreneurship and innovation. The students will be required to establish teams and work on an idea, producing a business plan and a prototype of an MVP, and several writeups for class readings and invited lectures. Lectures will cover Case Studies in AI Entrepreneurship, Basic concepts in Entrepreneurship and Innovation, and elements of Preparatory Analysis for establishing a startup company, Setting up a company, Value Proposition, Market Analysis and Competition, Business Modeling for AI Products and Services, Customer acquisition and Sales. Module 1: Innovation, Entrepreneurship and AI
- Invention, Entrepreneurship, Innovation, Research, Start-ups, Ecosystems, Risk, Venture Capital
- Intellectual Property Elements
- Steps involved to turn an Invention to a Start-up
- Explore success stories and failures of AI entrepreneurship; discuss visions for the future
Module 2: Customer & Market Exploration
- Market segmentation – DE Step 1
- Beachhead market selection – DE Step 2
- End-user Profile Definition – DE Step 3
- Total Addressable Market Size (TAM) of Beachhead – DE Step 4
- Profile Persona development for the Beachhead – DE Step 5
- Identify your Next 10 Customers – DE Step 9
Module 3: Product & Competition
- Full Life Cycle Use Case – DE Step 6
- High-level Product Specification – DE Step 7
- Value Proposition: Definition and Quantification – DE Step 8
- Define your Core – DE Step 10
- Charting your Competitive Position – DE Step 11
Module 4: Business Modeling
- Design a Business Model – DE Step 15
- Introduction to Platform Economy, Network effects, Platform-based services
- Business Model Generation – Business Model Canvas
- Set Your Pricing Framework – DE Step 16
- Calculate Lifetime Value of Acquired Customer – DE Step 16
- Cost of Customer Acquisition (COCA) Analysis – DE Step 18
Module 5: Product Design/Prototyping
- Design and test key assumptions – DE Steps 20, 21
- Minimum Viable Business Product – DE Step 22
- Product demonstration and customer-satisfaction assessment – DE Step 23
- Lean Product Methodology Overview
Module 6: Customer acquisition/Sales
- Customer’s Decision-Making Unit Definition – DE Step 12
- Map Process to Acquire Paying Customer – DE Step 13
- Map the Process to Acquire a Customer – DE Step 18
Module 7: Fundraising
- Introduction to Start-up Financing and Fundraising
- Pitching
Module 8: Scaling Up
- Calculate TAM Size for Follow-on Markets – DE Step 14
- Develop a Product Plan – DE Step 24
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly), Team Project (all semester).
Bibliography:
- Bill Aulet, Disciplined Entrepreneurship, Wiley, 2013.
- Bill Aulet, Disciplined Entrepreneurship Workbook, Wiley, 2017.
- Alexander Osterwalder et al, Business Model Generation, Wiley, 2010.
- Ash Fontana, The AI-First Company: How to Compete and Win with Artificial Intelligence, Penguin, 2021.
- Peter Thiel and Blake Masters, Zero to One: Notes on Startups, or How to Build the Future, Virgin Books, 2015.
- Cade Metz (2021). “The Genius Makers: The Mavericks Who Brought A.I. to Google, Facebook, and the World.” Random House Business.
- Lee, Kai-Fu (2018). “AI Superpowers: China, Silicon Valley, And The New World Order.” Houghton Mifflin Harcourt Company.
- Smith, B. and Browne C.A. (2019). “Tools and Weapons. The Promise and the Peril of the Digital Age.” Penguin.
- O’Neil, C. (2016). “Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy.” Crown.
- Alexander Osterwalder et al, “Value Proposition Design: How to Create Products and Services Customers Want.” Wiley, 2014.
- Ben Horowitz, “The Hard Thing about Hard Things.” Harper Business, 2014.
- Steven G. Blank, “The Four Steps to the Epiphany. Successful Strategies for Products that Win.” Lulu, 2006.
- Clayton Christensen, “The Innovator's Dilemma: When New Technologies Cause Great Firms to Fail (Management of Innovation and Change).” Harvard Business Review Press, 2016.
- Jeff Bezos, “The Everything Store: Jeff Bezos and the Age of Amazon.” Corgi, 2014.
- Geoffrey G. Parker, Marshall W. Van Alstyne and Angeet Paul Choudary, “Platform Revolution.” W.W. Norton and Co., 2016.
- European Patent Office. Inventors’ Handbook.
- Y Combinator’s Resources, https://www.ycombinator.com/resources/
- Steve Blank, “How to build a startup?” Udacity, https://classroom.udacity.com/courses/ep245
- Sam Altman, “How to start a startup?” http://startupclass.samaltman.com/
Assessment: Group project report and presentation, writing assignments.
Language: English
Course Title: Advanced Topics in Databases
Course Code: CS 646
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: D. Zeinalipour
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: The main objectives of this graduate-level course are to provide an in-depth understanding of advanced concepts and research directions in the field of databases. The course is organized in three parts: (i) Fundamentals of Database Systems Implementation; (ii) Distributed, Web and Cloud Databases; (iii) Spatio-temporal Data Management, Sensor Data Management, and (iv) other selected and advanced topics from the recent scientific literature.
Learning Outcomes: Upon successful completion of the course, the student will be able to:
- Understand physical database design along with implementation issues and also devise appropriate ways to store and index data.
- Demonstrate understanding of issues surrounding query optimization, concurrency control, parallelism and recovery in data management.
- Develop the ability to express queries in different forms.
- Understand contemporary issues and emerging technologies such as Distributed Databases, Big Data, NoSQL, Graph Databases, On-Line Analytical Processing and Data Warehouses.
- Explain methods suitable for particular types of data such as temporal, multimedia or spatial data.
- Critically read, analyze and understand the latest research developments and results in the field of data management.
Prerequisites: Undergraduate course equivalent to the CS342 (Database Systems) Required: None
Course Content: (i) Fundamentals of modern Database Management Systems (DBMSs): storage, indexing, query optimization, transaction processing, concurrency and recovery. (ii) Fundamentals of Distributed DBMSs, Web Databases and Cloud Databases (NoSQL / NewSQL): Semi-structured data management (XML/JSON, XPath and XQuery), Document data-stores (i.e., CouchDB, MongoDB), Key-Value data-stores (e.g., BerkeleyDB, MemCached), Introduction to Cloud Computing (GFS, NFS, Hadoop HDFS, Replication/Consistency Principles), "Big-data" analytics και επεξεργασία δεδομενων (MapReduce, Apache's Hadoop, PIG), Column-stores (e.g., Google's BigTable, Apache's HBase, Apache's Cassandra, DuckDB), Graph databases (e.g., Neo4J και Kùzu) and Overview of NewSQL (Google's F1 και VoltDB). (iii) Spatio-temporal data management (trajectories, privacy, analytics) and index structures (e.g., R-Trees, Grid Files) as well as other selected and advanced topics, including: Embedded Databases (sqlite), Data Management in Strea Management, Sensor Management and Mobile Management Systems with Temporal DBs (Postgres/TimescaleDB, InfluxDB) and Spatial DBs (PostGIS), Energy and Environmentally-aware data management.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- R. Elmasri, S. Navathe, Fundamentals of Database Systems, 7th Edition, Pearson, 2016.
- R. Ramakrishnan and J. Gehrke, Database Management Systems, 3rd Edition, McGraw-Hill, 2003.
- S. Abiteboul, I. Manolescu, P. Rigaux, M.-C. Rousset, P. Senellart, Web Data Management, Cambridge University Press, 2011.
- Petrov, Database Internals: A Deep Dive into How Distributed Data Systems Work, O'Reilly Media; 1st Edition, 2019.
- Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement 2nd Edition, Pragmatic Bookshelf; 2nd edition, 2018.
- T. Özsu, P. Valduriez,, Principles of Distributed Database Systems, 3rd Edition, Springer Press, 2011.
- Selected research articles from the international bibliography.
Assessment: Midterm, final exam and homework (assignments and presentation)
Language: Greek
Course Title: Principles of Ontological Databases
Course Code: CS 649
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: A. Pieris
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 0 hours
Course Purpose and Objectives: Nowadays we need to deal with data that is very large, heterogeneous, distributed in different sources, and incomplete. At the same time, we have very large amounts of knowledge about the application domain of the data in the form of ontologies that can be used to provide end users with flexible and integrated access to data. This gave rise to ontological databases, which lie at the intersection of traditional databases, and knowledge representation and reasoning. The purpose of the course is to introduce students to the principles of ontological databases and demonstrate the importance of studying data-intensive problems in a mathematically rigorous way, as well as the implications of such studies for real-life applications.
Learning Outcomes: Upon completion of this course, the students will be able to:
- Abstract relational data and relational queries from their physical implementation and formalize them in a rigorous way.
- Analyze the complexity of querying relational data and isolate the source of complexity.
- Explain the semantics of Datalog queries, analyze the complexity of evaluating Datalog queries, and model queries in a declarative way.
- Abstract rule-based ontologies from their physical implementation and formalize them in a rigorous way.
- Explain and use the main (forward- and backward-chaining) techniques underlying ontological query answering.
- Analyze the complexity of ontological query answering and isolate the source of complexity.
Prerequisites: None Required: While there are no formal prerequisites, it is recommended that students have passed an introductory course in Databases (some familiarity with the relational model, and the main relational query languages). It is also recommended that students have some basic familiarity with computational logic (first-order logic), and complexity theory (standard complexity classes such as PTIME and NP).
Course Content: The main purpose of the course is to introduce students to the principles of ontological databases. To this end, it is vital to first cover the principles of relational databases, without taking ontologies into account, on top of which the principles of ontological databases are built. In particular, the course will cover the following topics:
- Relational Model: data model, relational algebra, relational calculus (first-order queries), first-order query evaluation, static analysis of first-order queries (satisfiability, containment, and equivalence).
- Conjunctive Queries (CQs): syntax and semantics, CQ evaluation, static analysis of CQs (satisfiability, containment, and equivalence), minimization of CQs, acyclicity of CQs, evaluation of acyclic CQs (Yannakaki’s algorithm), semantically acyclic CQs and their evaluation.
- Adding Recursion – Datalog: inexpressibility of recursive queries, syntax and semantics of Datalog, Datalog query evaluation, static analysis of Datalog queries (satisfiability, containment, equivalence, and boundedness).
- Ontological Databases: rule-based ontologies (syntax and semantics), combining relational databases with rule-based ontologies, ontological query answering (OQA), universal models, ontology-based data access.
- Ontological Query Answering: forward-chaining (the chase procedure), backward-chaining (resolution-based query rewriting), linear rule-based ontologies (tractable data complexity, intractable combined complexity, fixed-parameter tractability).
- Advanced Topics (time permitting): expressive rule-based ontology languages, chase termination (necessary and sufficient conditions), static analysis of ontological queries (containment and boundedness).
Teaching Methodology: Lectures, discuss solutions to non-trivial problems given in advance (during the weekly recitation hour), review of recent research papers.
Bibliography:
- S. Abiteboul, R. Hull, V. Vianu, Foundations of Databases, 1995
- M. Arenas, P. Barcelo, L. Libkin, W. Martens, A. Pieris, Database Theory, υπό συγγραφή – προκαταρκτική έκδοση διαθέσιμη στο σύνδεσμο https://github.com/pdm-book/community
- F. Baader, I. Horrocks, C. Lutz, U. Sattler, An Introduction to Description Logic, 2017
- L. Libkin, Elements of Finite Model Theory, 2012
Assessment: For a technical course of this type, which focuses on the mathematical side of (ontological) databases, exams do not allow us to properly evaluate the students’ knowledge of the material. For a proper evaluation, students must be presented with non-trivial problems and tasks, rather than “toy” ones that can be solved in a limited time. Therefore, the assessment of the course consists of the following three components:
- Engagement component: During the course, the students will be given 10 exercises that will cover the various topics described above. A serious attempt to solve an exercise will be awarded all the marks, no matter if the provided solution is correct. The solutions of the exercises will be discussed during the recitation hours.
- Essay and in-class presentation on the principles of databases (without ontologies): Students will choose a research paper from a given list, and present (i) a summary of the paper and (ii) analysis and critical thoughts (criticism of the paper, discussion on follow-up papers that show how the ideas of the paper under review have influenced the field, ideas for future research directions). There will be also an in-class presentation based on the essay.
- Essay and in-class presentation on the principles of ontological databases: As above.
Language: Greek
Course Title: Internet of Things
Course Code: CS 650
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: V. Vassiliou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: The main objective of the course will be to provide an overview of the building blocks of IoT such as sensors and smart devices, M2M communication, data collection and processing, and the role of people and applications.
Learning Outcomes: Upon completion of this course, students should be able to:
- Explain the definition and usage of the term “Internet of Things” in different contexts
- Understand and describe the key components that make up an IoT system
- Apply the knowledge and skills acquired during the course to build and test a complete, working IoT system involving prototyping, programming and data analysis
- Independently research the technological trends which have led to IoT
- Understand where the IoT concept fits within the broader ICT industry and recognize possible future trends
- Valuate the impact of IoT on society by analysing IoT systems with regard to sustainability, safety, integrity and ethics.
- Appreciate the role of big data, cloud computing and data analytics in a typical IoT system
Prerequisites: CS 606 Required: None
Course Content: General Principles and Architecture of IoT Systems, Devices, Detection and Response, Communication Technologies, IoT Communication Protocols, IoT Architecture, IoT Applications
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- Internet of Things: A Hands-On Approach, by Arshdeep Bahga and Vijay Madisetti, 2016
- Internet of Things (IoT): Architectures, Protocols and Standards, by Simone Cirani, Gianluigi Ferrari, Marco Picone, and Luca Veltri, Wiley 2018
- IoT and Edge Computing for Architects – Second Edition" by Perry Lea, O’Reilly, 2020
Assessment: Final exam, midterm exam and homework.
Language: English
Course Title: Computer Games Software Technology
Course Code: CS 653
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: G. Chrysanthou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Providing the necessary knowledge to design and implement an electronic game. Teaching the design of the structure of an electronic game and its parts, the virtual simulation of physical models, the use of various techniques for realistic animation and deformation of the shape of objects and characters, the application of artificial intelligence principles to the behavioral design of autonomous characters as well as methods to optimize the intended software in order to efficiently perform real-time calculations. In the lab, learning to use the above techniques together with a game engine (e.g. Unity) to implement the components of a game and the composition of the final software.
Learning Outcomes: The student who has successfully completed this course is expected to be able to:
- Design an Electronic Game
- Understand the game engine software architecture
- Κnow models for interactive cameras
- Implement algorithms for collision detection
- Implement route and route planning techniques
- Know methods for animation
- Understand what are autonomous characters with 'intelligence'
- Perform virtual simulations of physical models
- Visualize a virtual world using a game engine
- Know the basic principles of game networking
Prerequisites: Students must have basic knowledge in C or C ++ programming, and mathematics in general. Basic knowledge of computer graphics will be helpful. Required: None
Course Content: Game structure and design, computer animation, movement and deformation, interactive cameras, visual simulation of physically-basedmodels, special effects using particle systems, collision detection, articulated characters, navigation and other behavioural models for autonomous characters
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- R. Parent, Computer Animation: Algorithms and Techniques, Morgan Kaufmann, 2002.
- Watt and M. Watt, Advanced Animation and Rendering Techniques, Addison-Wesley, 1992.
- I. Millngton, Artificial Intelligence for Games, Morgan Kaufmann, 2006.
Assessment: Final exam, midterm exam and homework.
Language: Greek
Course Title: Computer Graphics: Modeling and Realism
Course Code: CS 656
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: G. Chrysanthou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: This course goes beyond the basics of digital image synthesis, looking at issues such as photo-realistic rendering, modeling and animation. A big component for this is the creation of realistic and detailed models as well as the faithful simulation of light transport. We will see how these can be applied to virtual and augmented reality. Students will acquire both the theoretical foundations as well as practical skills since a significant part of the course is the student project.
Learning Outcomes: By the end of the class, students will have an in-depth understanding of the process of creating realistic images in computer graphics. The students will understand concepts of general lighting algorithms, modelling and animation.
Prerequisites: Programming in C, Linear Algebra, Intrductiory course in Computer Graphics Required: None
Course Content: Modeling, parametric and implicit surfaces, camera specification, projections of primitives. Graphics Pipeline. Local and global illumination, shadows, ray tracing and radiosity. Real-time rendering of large environments. Acceleration techniques.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- M. Slater, A. Steed and Y. Chrysanthou, Computer Graphics and Virtual Environments: From Realism to Real-Time, Addison-Wesley, 2001.
- A. Watt, 3D Computer Graphics, Third Edition, Addison-Wesley, 2001.
Assessment: Final exam, midterm exam and homework (group project and exercises).
Language: Greek
Course Title: Wireless Networks
Course Code: CS 657
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: V. Vassiliou / P. Kolios
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Introduction to wireless networks (mobile/local/cellular/Ad-hoc/Sensor) with an emphasis on the fundamental concepts and principles of the technologies which are important for the design, application, evaluation and development of these systems. The course will also cover new architectures and topologies, existing and proposed standards, as well as open research issues.
Learning Outcomes: Students successfully completing this course should be able to:
- Explain the following fundamental concepts of wireless and mobile networks: Wireless environment. Interference in a wireless environment. Basic principles of wireless data communication, including resource allocation. Architectures and technologies of wireless networks and wireless communication. Infrastructure and Infrastructureless Wireless Topologies
- Explain the following basic issues in wireless and mobile networks: Networking technologies classifications, such as wide area networks, metropolitan area networks, local area networks, body area networks. Infrastructure and Infrastructureless Networks, such as WLANs, Sensor Networks and the Internet of Things. Mobile networks, including 5G and beyond. Security issues, technologies, and techniques for wireless networks.
- Demonstrate skills in deploying and analyzing various technologies of mobile/wireless networks.
- Demonstrates ability to solve networking problems including analysis of protocols, and sizing and design issues in wireless networks.
- Demonstrates ability in evaluating different technologies, techniques and protocols, especially through personalized project studies.
- Shows ability to use network simulators (OPNET) for the design and evaluation of networks.
- Seek continuously new improved ways and mechanisms in wireless protocols/mobile networks.
- Seek and analyze new techniques and technologies, networks such as the Internet of Things, Nanonet
Prerequisites: Undergraduate course equivalent to the CS 324 (Communications and Networks) Required: None
Course Content: Wireless environment, Interference and other problems in wireless communications, basic principles of wireless local and metropolitan area networks, and cellular wireless networks. New architectures and technologies of wireless networks and wireless communication (e.g., ad-hoc and sensor networks, VANETS). Resource management techniques, Next Generation wireless networks, design and planning of wireless networks, protocols for wireless and mobile networks. Internet/Web of Things.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- H Karl and A. Willing, Protocols and Architectures for Wireless Sensor Networks, Wiley, 2007.
- J. Schiller, Mobile Communications, Second Edition, Addison-Wesley, 2003.
- Κ. Sohraby, D. Minoli and Taieb, Wireless Sensor Networks: Technology, Protocols, and Applications, 2006.
Assessment: Final exam and homework (including Individual or Group Project and laboratory exercises).
Language: Greek
Course Title: Design on Embedded Systems
Course Code: CS 659
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: P. Kolios
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: To offer advanced knowledge for system design using embedded computers.
Learning Outcomes: Familiarity with the basic concepts and methods of developing embedded systems. Introduction to mobile computing and programming on smart mobile devices. Application development using micro devices based on ARM microcontrollers, Arduino, and Rasperry Pi.
Prerequisites: Knowledge on the subjects of Digital Systems, Computer Organization and Assembly Programming Required: None
Course Content: A review of embedded system processors. Organization of embedded systems: CPUs, RAM, ROM, buses, peripherals, sensors, actuators, interfacing. Examples of widely used processors buses and peripherals. Interfacing with peripherals: sampling, interrupts, advantages and disadvantages. Process distribution between hardware and software. Tools for the development of embedded systems and real-time operating systems. Hands-on experience with the development and implementation of embedded systems.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- F. Vahid and T. Givargis, Embedded System Design: A Unified Hardware/Software Introduction, John Wiley & Sons, 2002.
- W. Wolf, High-Performance Embedded Computing: Architectures, Applications and Methodologies, Morgan Kaufman.
- W. Wolf, Computers as Components: Principles of Embedded Computing System Design, Morgan Kaufman.
- P. Raghavan, A. Lad and S. Neelakandan, Embedded Linux System Design and Development, Auerbach Publications
Assessment: Final exam, midterm exam and homework.
Language: Greek
Course Title: Information Retrieval and Search Engines
Course Code: CS 660
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: G. Pallis
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: The objective of this course is to examine the main computer science principles that lie behind Google and other search engines. To this end, the course will focus on basic and advanced techniques for text-based information systems: efficient text indexing; Boolean and vector space retrieval models; evaluation and interface issues; text classification and clustering. The course will also focus on Web search including crawling, link-based algorithms, and Web metadata.
Learning Outcomes:
- Apply information retrieval principles to locate relevant information in large collections of data
- Understand and deploy efficient techniques for the indexing of document objects that are to be retrieved
- Implement features of retrieval systems for web-based and other search tasks
- Analyse the performance of retrieval systems using test collections
- Make practical recommendations about deploying information retrieval systems in different search domains
- Advanced topics such as natural language processing (NLP) in search, personalized search, and web search engines
- LLM-based approaches to enhance search relevance and user experience
Prerequisites: Algorithms, Data Structures, Internet Technologies and Linear Algebra Required: None
Course Content: Introduction to Information Retrieval. Boolean Retrieval. Text encoding: tokenisation, stemming, lemmatisation, stop words, phrases. Dictionaries and Tolerant retrieval. Index Construction and Compression. Scoring and Term Weighting. Vector Space Retrieval. Evaluation in information retrieval. Relevance feedback/query expansion. Text classification and Naive Bayes. Vector Space Classification. Flat and Hierarchical Clustering. Web Search Basics.Web crawling and indexes. Link Analysis. NLP in search, personalized search, and web search engines. LLM-based approaches
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- Christopher D. Manning, P. Raghavan and H. Schutze, An Introduction to Information Retrieval, Cambridge University Press, 2008.
- Research papers and Tutorials from ACM SIGIR Conference on Research and Development in Information Retrieval
Assessment: Final exam, midterm exam and homework.
Language: Greek
Course Title: System Analysis and Verification
Course Code: CS 664
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: A. Philippou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: The course aims to develop a deep understanding of contemporary technologies and methodologies for the modeling, analysis, and verification of computer systems, enabling students to evaluate and apply appropriate techniques to ensure system reliability and correctness.
Learning Outcomes: Upon successful completion of this class, the student is expected to be able to:
- Demonstrate familiarity with the main approaches in formal software verification and determine the appropriate contexts for applying each.
- Understand and utilize formal modeling and specification languages for defining system behaviors and requirements.
- Write formal requirement specifications using temporal logic to analyze and verify system properties.
- Create models in the Promela modeling language and use the SPIN model checker to simulate and verify these models.
- Construct models using timed automata and employ the UPPAAL model checker to simulate and verify time-sensitive system behaviors.
Prerequisites: None Required: None
Course Content: Formal techniques for system specification and analysis. Concurrent systems and interleaving and partial-order semantics. Transition systems and Kripke structures. Temporal logic (linear and branching). Automated verification and model-checking. Design-by-contract specification languages. Abstract Specifications. Run-time and static annotation checking. Real-time system analysis: timed automata and timed temporal logic. Application of the techniques via selected tools (e.g. SPIN, NuSMV, UPPAAL, Dafny, Frama-C).
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- M. Huisman and A. Wiijs, Concise Guide to Software Verification - From Model Checking to Annotation Checking. Springer, 2023.
- C. Baier and J.-P. Katoen, Principles of Model Checking. MIT Press, 2008
- D. Peled, Software Reliability Methods, Springer-Verlag, 2001.
- Επιλεγμένα ερευνητικά άρθρα από τη διεθνή Bibliography.
Assessment: Final exam, midterm exam and homework.
Language: Greek
Course Title: Computational Neuroscience
Course Code: CS 667
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: Chr. Christodoulou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Computational Neuroscience is an emerging and dynamically developing field aiming to elucidate the principles of information processing by the nervous system. This course aims to develop and apply computational methods for studying brain and behaviour as well as understanding the dynamics of the conscious mind.
Learning Outcomes: The learning outcomes for the students are the following:
- understand and be able to explain the fundamental principles of information processing by neural systems
- appreciate the importance of computational neuronal models in the quest of understanding the brain and the fact that many aspects of neuroscience cannot be understood without appropriate computational modeling framework
- understand the most important biophysical neuronal models and the different levels of description and complexity in computational neuronal modelling from the level of the single neuron to that of neural networks
- understand neuronal dynamics and learn how high dimensional neuronal models can be reduced to low dimensional neural models
- understand how experimentally recorded physiological signals enable us to understand the functionality of neurons/systems in the brain and how statistical approaches help in the analysis of such data
- be able to implement/simulate basic computational neuronal models through programming
- become familiar and be able to use various computational neuroscience simulation software packages for modelling complex biophysical models and experimentally observed phenomena
- be able to grasp the importance of high level modelling abstraction from the underlying neuronal principles for understanding brain behaviours
- critical reading and discussion of recently published scientific papers
Prerequisites: Linear Algebra, Differential Equations Required: None
Course Content: Introduction to Computational Neuroscience; basic neurobiology: from the brain to single neurons; biophysics of single neurons; synapses; dendrites and axons. Conductance-based neuron models: the generation of action potentials and the Hodgkin and Huxley equations. Spiking neuron models and response variability: leaky integrator and leaky integrate-and-fire (LIF) type neuron models; spike time variability. Two dimensional (2D) neuron models: reduction of the four dimensional (4D) HH model to a 2D model; phase plane analysis of 2D models/nullclines; FitzHugh-Nagumo model; neuronal dynamics. Modelling synapses/inputs to neurons. Neuron models beyond HH – more ion channels and their functions. Cable Theory: neuronal structure; passive/active membranes; modelling axons and dendrites; action potential propagation. Compartmental models. Neural coding: firing rate; rate code; temporal code; neural operational modes – temporal integration/coincidence detection. Synaptic plasticity: Hebbian learning; Spike-Timing Dependent Plasticity. Bottom-up/top-down modeling of the brain: modeling of self-control behaviour as an example of top-down modelling. Bottom-up/top-down modeling of the brain: modeling of self-control behaviour as an example of top-down modelling. Modelling consciousness.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- P. Dayan and L. Abbott, Theoretical Neuroscience: Computational and Mathematical Modelling of Neural Systems, MIT Press, 2001.
- D. Sterratt, B. Graham, A. Gilles and D. Willshaw, Principles of Computational Modelling in Neuroscience, Cambridge University Press, 2011.
- W. Gerstner, W. M. Kistler, R. Naud, L. Paninski, Neuronal Dynamics: From single neurons to networks and models of cognition, Cambridge: Cambridge University Press, 2014.
- C. Koch, Biophysics of Computation: Information Processing in Single Neurons, Oxford University Press, 1998.
- E. M. Izhikevich, Dynamical Systems in Neuroscience: the Geometry of Excitability and Bursting, MIT Press, 2007.
Assessment: Final exam, midterm exam and laboratory exercises/oral presentations of selected research papers.
Language: Greek
Course Title: Mechanical Vision
Course Code: CS 668
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: C. Pattichis / G. Chrysanthou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: The objective of this course is to understand the basic issues in mechanical vision and the major approaches that address them. Through the duration of the course, vision is treated as a process of inference from noisy and uncertain data in order to answer the question of how computers can understand the visual world of humans.
Learning Outcomes: Upon the course’s completion, students should:
- Understand the principles of vision.
- Appreciate the commercial potential of computer vision, but also understand the limitations of current methods.
- Identify computer vision’s near-future goals.
- Apply mathematical and statistical methods as a means to solve vision-related problems.
- Be able to extract features of interest from images.
- Understand the process of perspective projection, be able to calibrate cameras, and manipulate 3D and 2D transformations.
- Be able to recover 3D shape information based on multiple viewpoints.
- Understand the principle of inference techniques such as the Kalman filter and the particle filter, and their use in 3D tracking.
- Be able to develop simple programs utilizing computer vision algorithms.
Prerequisites: MAS 029: Linear Algebra CS 231: Data Structures and Algorithms Required: None
Course Content: Βασικές έννοιες and μεθοδολογίες που αφορούν το αντικείμενο της Μηχανικής Όρασης. Σχηματισμός Εικόνας, επεξεργασία εικόνας, ανίχνευση χαρακτηριστικών, κατάτμηση εικόνων and ομαδοποίηση χαρακτηριστικών, επεξεργασία πολλαπλών εικόνων, μελέτη εφαρμογών.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- D. Forsyth and J. Ponce, Computer Vision: A Modern Approach, Prentice-Hall, 2003.
- R. Hartley and A. Zeisserman, Multiple View Geometry, Cambridge University Press, 2003.
- C. Bishop, Pattern Recognition and Machine Learning, Springer-Verlag, 2007.
- O. Faugeras and Q. T. Luong, Geometry of Multiple Images, MIT Press, 2001.
- B. Horn, Robot Vision, MIT Press, Cambridge, Massachusetts, 1986.
Assessment: Final exam, midterm exam and homework (programming assignments).
Language: Greek
Course Title: Research Methodologies and Professional Practices in Computer Science
Course Code: CS 670
Course Type: Compulsory
Level: Graduate
Year / Semester: Spring
Teacher’s Name: Y. Dimopoulos
ECTS: 4 | Lectures / week: 3 hours | Recitation / week: - | Laboratories / week: -
Course Purpose and Objectives: Introduction to the methods and tools of Computer Science research and technological culture. Familiarization with reading, reviewing and presenting of technical literature. Technical writing. Literature review of a research or technical topic.
Learning Outcomes: Understand basic research methodologies and professional practices of Computer Science. Acquire skills related to reading, reviewing, summarizing and presenting scientific and technical literature.
Prerequisites: None Required: None
Course Content: Lectures, research seminars and atomic assignments (summary of research seminars) and group study of a research subject under the supervision of a faculty member.
Teaching Methodology: Lectures, ερευνητικά σεμινάρια, ατομικές εργασίες (περίληψη ερευνητικών σεμιναρίων) and ομαδική μελέτη ερευνητικού θέματος υπό την επίβλεψη μέλους ΔΕΠ.
Bibliography:
- Selected research articles from the international literature.
- Course Presentation Slides (introductory and research).
Assessment: Attendance and participation in lectures and a number of research seminars, written atomic studies, group study of a research subject and technical presentation of the group study. The course grade is Pass/Fail.
Language: Greek
Course Title: Algorithmic Game Theory
Course Code: CS 673
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: M. Mavronicolas
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: -
Course Purpose and Objectives: Familiarity with algorithmic problems in Game Theory. The three basic axes for such familiarization are (i) the techniques for the design and analysis of algorithms in Game Theory, (ii) the fundamental complexity results for difficult problems in Game Theory, and (iii) the techniques for the analysis of computational systems with selfish components.
Learning Outcomes: Upon successful completion of this class, the student is expected to have learned:
- The basic concepts related to strategic games (e.g., pure and mixed strategies, best responses, equilibrium).
- Pure and mixed Nash equilibria, their refinements and generalizations, the classical existence theorems of equilibria, and the basic algorithms and complexity for computing equilibria.
- The complexity classes PLS and PPAD.
- The concept of the Price of Anarchy and its analysis for both general and specific games.
- The application of Game Theory to realistic cases.
Prerequisites: Undergraduate course equivalent to the CS211 (Theory of Computation ) and undergraduate course equivalent to the CS436 (Algorithms and Complexity) Required: None
Course Content: Strategic games. Pure and mixed strategies, utilities, best responses, equilibrium concepts. Pure and mixed Nash equilibria, their refinements and generalizations. Classical existence theorems of equilibria and their algorithmic aspects. Algorithms and complexity of equilibrium searching. The complexity classes PLS and PPAD and their relation to equilibrium computation. Bimatrix games and algorithms to compute their approximate equilibria. The Price of Anarchy and its variants. Analysis of the Price of Anarchy for both general and specific games (e.g., selfish routing games, congestion games, security games). Applications to realistic cases (e.g., social networks, Internet formation).
Teaching Methodology: Lectures (3 hours weekly) and Recitation/Laboratory sessions (1 hour weekly).
Bibliography:
- M. Mavronicolas and P. Spirakis, Algorithmic Game Theory, Springer, 2011, (book draft).
- Selected research articles from the international literature
Assessment: Final exam, midterm exam and homework (theoretical assignments).
Language: Greek
Course Title: Networks and System Security
Course Code: CS 674
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: V. Vassiliou
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Understanding network and information security principles, Understanding of basic areas in Cryptography, Authentication and Confidentiality. Gain of knowledge in methods for the evaluation of Software, Applications and Systems with respect to security. Application of tools for the protection of networks, applications and information.
Learning Outcomes:
- Identify some of the factors driving the need for network and information security
- Demonstrates ability to understand of the issues involved in the field of information security and assurance
- Navigate through the language of the field of network and information security.
- Explain the CIA triad of Confidentiality, Integrity and Availability
- Identify and classify computer and network security threats and attacks
- Compare and contrast encryption systems and algorithms.
- Encrypt and decrypt messages and sign and verify messages using well-known techniques
- Acknowledge the ethical and legal considerations of network and information security.
Prerequisites: Introductory graduate course equivalent to CS606 (Computer Networks and the Internet) Required: None
Course Content: Introduction to security threats and attacks. Cryptographic and cryptanalysis techniques. Key exchange management (PKI). Network and Internet security protocols (IPSec, SSL/TLS). Identification and authentication standards (Kerberos, AAA). Systemsecurity (Firewalls, IDS). Specific threats on end-systems (viruses, worms, trojan horses, stack overflow, rootkits). Identification of security vulnerabilities in software and operating systems. Checking of networks and applications for vulnerabilities, introduction to computer systems forensics. Security policies. Security management, ethical and legal issues in system security.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- C. Kaufman, R. Perlman, M. Speciner, R. Perlner, Network Security: Private Communications in a Public World, 3rd edition, Pearson 2023
- C. P. Pfleeger and S. L. Pfleeger, Security in Computing, Fifth Edition, Pearson 2015.
Assessment: Final exam, midterm exam and homework (studies and/or laboratory assignments).
Language: Greek
Course Title: Electronic Health
Course Code: CS 679
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: C. Pattichis
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: -
Course Purpose and Objectives: To introduce the student to the medical and clinical environment from the perspective of medical informatics and exploit the possibilities of using information technologies for modeling, prototyping, presenting and using the relevant data. To study and develop practical skills in building relevant intelligent information systems.
Learning Outcomes: To discover the new world of eHealth (health). To analyze the prospects that will be created at local, European and international level. To analyze and harness the legislative and social context of health. Assess the potential of information and communications technologies in medical science, mainly through the modeling of medical practice, processes and knowledge creation. To classify, standardize and help the physician use medical health data to avoid the disease. Include that Electronic Health (EH) is part of a new class of acts, a philosophical approach to medical practice and the relationship between a doctor and a patient. Understanding the necessity for a transition from the Medical Center to the Athenian-based approach to medicine. Introducing students to the potential of information technologies in medicine and clinical practice, mainly through the design of medical practice, processes and knowledge, ways of managing, standardizing and presenting information.
Prerequisites: None Required: None
Course Content: Information retrieval from medical databases, data, medical records, live signals, and data mining using intelligent techniques. Study of application systems that are currently in use for managing medical data and suggest ways for better handling and building, medical knowledge bases, electronic health record, and decision support systems for the medical profession.
Teaching Methodology: Lectures (3 hours weekly) and Discussions/Presentations (1 hour weekly).
Bibliography:
- J. H. van Bemmel and M. Musen, Handbook of Medical Informatics, (Edts), Springer, 1997.
- E. H. Shortliffe (Editor), L. M. Fagan, G. Wiederhold and L. E. Perreault Medical Informatics: Computer Applications in Health Care and Biomedicine, Publisher: Springer Verlag; 2nd edition (November 2000).
- L Burke, and B. Weill, Information Technology for the health professionals, Prentice Hall, 2000.
Assessment: Final exam, midterm exam and homework (studies and/or laboratory assignments).
Language: Greek
Course Title: Advanced Software Reuse and Mining Software Repositories
Course Code: CS 681
Course Type: Elective
Level: Graduate
Year / Semester: Spring
Teacher’s Name: G. Kapitsaki
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: 1.5 hours
Course Purpose and Objectives: Understanding the usefulness of software reuse. Deepening in software design patterns. Undestanding the usefulness of data mining for software and being able to perform the process of collecting, preprocessing and processing data from software repositories and Q&A sites.
Learning Outcomes: The learning outcomes for the students are the following:
- Understanding the usefulness of software reuse and of its advanced topics.
- Deepening in the different levels of reuse and understanding the differences between them.
- Use of software components in practice.
- Understanding of mining techniques for software.
- Having obtained an overview of research methods on software reuse.
- Understanding of software evolution mechanisms and practical use of software mining mechanisms from social coding platforms.
Prerequisites: Basic understanding of object-oriented programming and software engineering process. Required: None
Course Content: Levels of reuse. Best practices for reuse. Software design patterns. Object-otiented patterns. Software repositories (e.g. GitHub). Search and retrieval. Data extraction and mining. Data mining steps. Data preprocessing and processing (e.g. in the R programming language). Use of dedicated APIs. Q&A sites, e.g. Stack Exchange, and data mining. Open source software. Open source licensing and legal issues. License compliance. Selecting licenses. Latest developments and research works.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly) and Laboratory sessions (1.5 hours weekly).
Bibliography:
- Τ. Diamantopoulos, Α. L. Symeonidis, Mining Software Engineering Data for Software Reuse, Springer, 2020.
- Μ. Ezran, Μ. Morisio, C. Tully, Practical Software Reuse, Practitioner Series, 2002.
- Head First Design Patterns, O'Reilly Media, 2004.
- C. Horstmann, A Practical Guide to Open Source Licensing, Wiley, 2nd Edition, 2006.
- Selected research papers and articles.
Assessment: Final and midterm exam, and homework (practical exercises and research assignments).
Language: Greek
Course Title: Data Security
Course Code: CS 682
Course Type: Elective
Level: Graduate
Year / Semester: Fall
Teacher’s Name: E. Athanasopoulos
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: -
Course Purpose and Objectives: Processing data is often realized through systems that can operate under hostile conditions, where adversaries try to monetize access to sensitive data. In this course we provide a short introduction of data security, and we review the basic arsenal we have for protection. We cover a large portion of applied cryptographic primitives and protocols that facilitate secure transmission of data. We then proceed and review how systems that process data can be attacked and protected. Finally, we discuss advanced attacks, and potential defenses, for systems that are based on Machine Learning.
Learning Outcomes:
- Review basic cryptographic primitives (focus on asymmetric encryption, such as Diffie-Hellman key exchange, RSA, Elliptic curves).
- Discuss Quantum computers (Shor’s and Grover’s algorithm).
- Understand how Transport Layer Security (TLS) is realized and how modern attacks attempt to bypass TLS.
- Understand how attacks that focus on exfiltrating data work and what are the available defenses.
- Review ML-based attacks and defenses.
Prerequisites: None Required: None
Course Content: Applied cryptography concepts (AES, RSA, Elliptic Curves, SHA256/SHA3, MACs). Quantum computers (Shor’s and Grover’s algorithm). Transport Layer Security (TLS) and attacks. Encrypted Search. Attacks for exfiltrating data from systems and possible defenses (oblivious memory, differential privacy, k-anonymity). ML-based attacks (adversarial input generation, membership inference attack) and defenses. GDPR.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly).
Bibliography:
- Handbook of Applied Cryptography, http://cacr.uwaterloo.ca/hac/
- Understanding Cryptography, http://www.crypto-textbook.com
- Published papers
Assessment: Final exam, midterm exam, bibliographic project and presentation.
Language: Greek or English
Course Title: Special Topics in Computer Science
Course Code: CS 699
Course Type: Elective
Level: Graduate
Year / Semester:
Teacher’s Name: CS or Visiting Faculty
ECTS: 8 | Lectures / week: 3 hours | Recitation / week: 1 hour | Laboratories / week: -
Course Purpose and Objectives: This course enables to introduce cutting-edge topics within Computer Science that are not addressed by existing courses. As the field of Computer Science evolves rapidly with the emergence of new technologies, this course provides students with a unique opportunity to explore the latest advancements and trends.
Learning Outcomes: Determined by the course instructor, approved by the Graduate Studies Committee and the Department Council.
Prerequisites: None Required: None
Course Content: Determined by the course instructor, approved by the Graduate Studies Committee and the Department Council.
Teaching Methodology: Lectures (3 hours weekly), Recitation (1 hour weekly).
Bibliography: Determined by the course instructor, approved by the Graduate Studies Committee and the Department Council.
Assessment: Determined by the course instructor, approved by the Graduate Studies Committee and the Department Council.
Language: Greek
Course Title: Independent Study
Course Code: CS 720
Course Type: Restricted Elective Course
Level: Graduate
Year / Semester: Spring
Teacher’s Name: CS Faculty
ECTS: 8 | Lectures / week: - | Recitation / week: - | Laboratories / week: -
Course Purpose and Objectives: The independent study offers students an opportunity to gain comprehensive knowledge in a specific area of Computer Science under the guidance of a faculty advisor. This course emphasizes independent work and involves the design, development, and evaluation of a software system, research study, or theoretical analysis. Under faculty supervision, students will:
- Identify a problem or research question within the field of Computer Science.
- Conduct a review of the state-of-the-art.
- Propose and implement a solution or conduct an investigation using appropriate methodologies and tools.
The project culminates in a formal written report and a presentation of the findings to the supervising faculty. The study’s theme (problem or research question) is collaboratively determined by the student and the supervising faculty. The PSC must approve:
- Before the start of the course, the chosen independent study theme.
- At the end of the course, the outcomes and assessment.
Learning Outcomes:
- Understand and potentially challenge the existing knowledge and practice related to the project problem
- Identify and demonstrate appropriate methodologies and know when to use them
- Define, articulate and use terminology, concepts, and theory in their field and know how to use them
- Use library and other tools to search for existing body of research relevant to their topic
- Identify and practice research/development ethics and responsible conduct in research or development
- Know and apply problem solving skills to constructively address research/development setbacks
- Work autonomously in an effective manner, setting and meeting deadlines
- Reflect on their own work, identifying lessons learned, strengths, and ways to improve communicate confidently and constructively with faculty as mentors
- Produce a well-structured written report that effectively communicates the problem, methodology, results, and conclusions of the project, following academic and professional standards
Prerequisites: Successful completion of at least 30 ECTS of postgraduate courses Required: None
Course Content: This course provides an opportunity for study under the guidance of a faculty member on topics in Computer Science not covered in-depth by other postgraduate courses offered by the Department. Students interested in undertaking an independent study are encouraged to discuss potential topics with one or more faculty members in the department. Once a faculty member agrees to supervise a specific independent study, they will notify the Postgraduate Studies Committee (PSC) to approve the student’s enrollment in this course.
Teaching Methodology: Individual work under supervision
Bibliography:
Assessment: Written report, Software/System Prototype Assessment (if applicable), and oral presentation. Assessed by supervising faculty numerically
Language: Greek or English