Digital Image Processing

Learning Outcomes

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

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

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

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

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

D) Evaluate digital image processing systems and algorithms

Course Contents

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

Recommended Readings

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

Advanced Artificial Intelligence Topics

Learning Outcomes

Upon successful completion of this course, students should be able to know and develop basic decision making abilities of intelligent agents who are capable of acting in the real world.

Specifically, students acquire knowledge and the abilities to develop and apply

  • planning algorithms
  • methods for re-planning and computing actions’ schedules for acing in the real world
  • knowledge representation and reasoning with ontologies and real-world data
  • basic principles and algorithms for (simple or advanced) decision making
  • algorithms for learning policies towards acting in the real world

Through a critical view of methods and by acquiring experience in building systems in paradigmatic cases.

Course Contents

  • Basic and advanced planning algorithms
  • Replanning and scheduling actions with duration.
  • Reasoning and representation with ontologies and data
  • Decision making principles and methods
  • Reinforcement learning, introduction.

Recommended Readings

  • Stuart Russel and Peter Norvig. Artificial Intelligenc­e: A Μodern Approach, Prentice Hall, 2nd edition (2003).
  • Yoav Shoham, Kevin Leyton-Brown Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations, Cambridge University Press, 2009

Associated scientific Journals

  • Artificial Intelligence, Elsevier, ISSN: 0004-3702
  • Journal of Web Semantics, Elsevier, ISSN: 1570-8268

Introduction to Cloud Computing

Learning Outcomes

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

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

Course Contents

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

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

Recommended Readings

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