Distributed Systems

Learning Outcomes

The course aims at introducing the student to the basic concepts and fundamental principles of Distributed Systems. Special emphasis is on analytical and critical thinking, providing at the same time an introductory practical experience in the development of distributed applications.

At the end of the course, students will be equipped with fundamental knowledge in distributed systems (see Course Content), which allows the critical deepening in the broad scientific domain of distributed systems, as well as the development of complex distributed applications.

Students will be capable of analyzing and solving problems in the broad spectrum of the distributed systems domain:

  • Streaming communications and optimized distributed playback of multimedia content (minimum waiting time for smooth reproduction).
  • Physical clocks synchronization using various algorithms.
  • Assignment of Lamport logical, vector and causal clocks.
  • Performing ordered multicast (total and causal).
  • Executing distributed mutual exclusion and leader election algorithms.
  • Concurrency control of distributed transactions (locks and pessimistic concurrency control).
  • Calculation of distributed snapshots.
  • Consistency control for distributed storage and use of distribution and consistency protocols.
  • Fault tolerance evaluation in distributed systems, reliable group communication, distributed commit and recovery.
  • Common data representation.
  • Comparative evaluation of physical layer architectures for distributed systems.
  • Performance evaluation, techno-economic and SWOT analysis of distributed systems.
  • Performance optimization of distributed systems, masking communications behind computation.

In addition, students will be capable of analyzing, designing and evaluating complex distributed systems relying on fundamental algorithms and middleware mechanisms, as well as developing distributed system applications using frameworks and middleware for distributed systems, such as the procedural RPC and object oriented RMI frameworks, network programming sockets, MPI programming, the Hadoop and Spark modern development frameworks etc.

Course Contents

  • Introduction to Distributed Systems
  • Higher layer architecture, distributed systems transparencies, scalability, physical layer and operating system for distributed systems, middleware, synchronization semantics in communications, client-server model.
  • Communications
  • Network protocols, request-reply protocol, RPC model, message passing, common data representation, DCE, RMI model, persistency and synchronization in communications sockets, MPI.
  • Synchronization
  • Clock synchronization, logical (Lamport) time, total ordered mulicast, causal ordered multicast, distributed mutual exclusion, leader election, global states and distributed snapshots, distributed transactions.
  • Fault tolerance
  • Concensus and agreement in problemtic systems, reliable client-server communication, reliable communication in a group, distributed commit, recovery.
  • Consistency and replication
  • Data and client consistency models, distribution protocols, consistency protocols.
  • Jana RMI object oriented distributed applications development platform
  • RMI development synopsis, whiteboard and taskbag case studies

During the course, students are invited to develop a programming project, which helps them familiarize with the design and implementation of distributed systems.

Recommended Readings

  • Tanenabum A. & Van Steen M. (2017): Distributed Systems, 3th Edition, Pearson Education, Inc.
  • Coulouris G., Dollimore J., Kindberg T. (2011): Distributed Systems: Concepts and Design, 5th Edition, Addison Wesley.
  • Cavouras Ι., Meles Ι., Xylomenos G., Roukounaki Α. (2011): Distributed Systems with Java: Computer Systems Vol. ΙΙΙ, Kleidarithmos Publishing (in Greek).
  • Pacheco P. (2011): An Introduction to Parallel Programming, Elsevier, Inc.
  • Papadakes S., Diamantaras Κ. (2012): Programming and Architecture of Parallel Processing Systems, Kleidarithmos Publishing (in Greek).

e-Business

Learning Outcomes

This course presents baselines on digital economy. With the completion of the course, the student will be in position:

  • to understand and become familiar with the key concepts and principles of applications of e-business.
  • to know the main characteristics of the e-business applications both in terms of development and in terms of provisioning of such applications.
  • to be able to implement e-business applications, by applying the knowledge obtained from laboratory exercises in different application contexts / domains.

Course Contents

  • e-Business introduction.
  • e-Commerce presentation.
  • Baselines on e-business micro-economy theory.
  • Business requirements analysis for the design of e-commerce.
  • Methodology for the design of successful web pages. Blogs.
  • e-Stores, methodology for the design of e-stores.
  • Design evaluation and faults detection through the use of web statistics applications.
  • eGovernment, ebanking; ehealth; business-to-business applications.

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

  • McGarvey R. & Campanelli M. (2005): Start Your own E-Business, Entrepreneur Press.
  • Chaffey D. (2008): E-Business and E-Commerce Management, 3rd Edition, Prentice Hall.

eHealth Services

Learning Outcomes

The objective of this course is to present topics regarding the provision and the necessity of developing electronic health services. Various examples of specialized electronic healthcare systems (e.g. radiology systems, laboratory systems, e-prescribing systems, health record systems, emergency care systems, primary healthcare systems) are mentioned and fundamental concepts of health informatics are introduced. The course covers a broad range of ehealth topics such as electronic health records, security and interoperability of health information systems, European and American standards, medical data and services codification, healthcare internet of things, big data and healthcare analytics, supporting systems of modern medical and administrative systems (e.g. precision medicine, value based care). The course will incorporate a significant laboratory component with software tools that allow students to implement such e-health services.

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

  • Analyze the constraints of paper-based medical records and the necessity of their complete, efficient and effective digitization according to best practices
  • Describe the advantages and challenges of automated order-entry systems and medical decision support systems
  • Identify the advantages of electronic health services and design architectures (on conceptual and physical layer) with emphasis on medical data management
  • Identify the advantages of health information exchange (HIE) and interoperability of corresponding systems aiming at health data and processes integration
  • Describe the basic services and current security standards and incorporate corresponding systems and medical data security policies
  • Build/choose and use the appropriate digital technologies and architectures for health services improvement in healthcare organizations
  • Develop ehealth applications by using digital tools

Course Content

  1. Healthcare systems, necessity for e-health, cost containment and service improvement, e-health and healthcare systems.
  2. International trends and ehealth system architectures. Best practices for ehealth systems development and operation. E-health system security.
  3. Electronic Health Records (content definition and structure, electronic medical and nursing record, electronic health record architectures, standards adoption, health information security, cost-benefits, international practices).
  4. Personal health records (personal health record architectures, data types, security issues, benefits to healthcare system, international practices).
  5. E-health technical and semantic interoperability.
  6. E-health application development portfolio, international practices, functional and technical features of e-health examples, homecare, e-prescribing, e-referral, and prototype systems.
  7. Development of ehealth applications by using appropriate digital tools.
  8. Healthcare Internet of Things (IoT) and supporting systems of precision medicine and personalized care.
  9. Big data and healthcare analytics. Problems and critical medical and administrative decisions where they are used.

Suggested Bibliography

  • Merida L. Johns (2010): Health Information Management Technology, Ahima Press.
  • Karen A. Wager, Frances W. Lee, John P. Glaser (2009): Health Care Information Systems: A Practical Approach for Health Care Management, Jossey-Bass.
  • Joseph Tan (2010): Developments in Healthcare Information Systems and Healthcare Informatics: Improving Efficiency and Productivity, IGI Global.
  • Margret K. Amatayakul (2009): Electronic Health Records, American Health Information Management Association.
  • Stephan P. Kudyba (2010): Healthcare Informatics: Improving Efficiency and Productivity, CRC Press.
  • Tim Benson (2016): Principles of Health Interoperability: SNOMED CT, HL7 and FHIR, Springer.
  • Susan H, Fenton (2013): Introduction to Healthcare Informatics, American Health Information Management Association.
  • Jason Burke (2013): Health Analytics: Gaining the Insights to Transform Health Care, Wiley.
  • Brojo Kishore Mishra, Raghvendra Kumar (2018): Big Data Management and the Internet of Things for Improved Health Systems, IGI Global.
  • Methods of Information in Medicine, Thieme
  • Journal of Medical Systems, Springer
  • International Journal of Medical Informatics, Elsevier
  • IEEE Journal of Biomedical and Health Informatics

Strategic Management

This course offered by the Department of Business Administration of University of Piraeus.

Embedded Systems

Learning Outcomes

The key objective of this unique course on Embedded Systems is to present a good understanding of embedded systems architecture as well as a detailed methodology for the multilayered design of embedded systems and their applications with emphasis on network embedded systems. Main topics of the course are the understanding of communication processors and system architecture, the matching of requirements with system specifications, basic hardware design principles, Linux operating system porting on proprietary system architectures, as well as device driver programming and performance evaluation of (network) embedded systems. From this point on, system architecture is transparent to the development of embedded applications under certain limitations.
In the laboratory sessions, students will familiarize with the development of adaptive Linux kernel and filesystem images for a broad range of network embedded systems in the rise of the IoT era.

At the end of the course, students will be equipped with advanced expert and analytical knowledge for the consistent design, development and validation of embedded systems which include network devices (see Course Content). The obtained knowledge will allow the critical and analytical deepening as well as performing innovative research and critical development in the broad scientific domain of embedded systems and applications.

Students will be capable of:

  • specifying and designing prototype embedded systems with network and peripheral devices which are interfaced to the communication processor meeting user requirements and cost limitations.
  • designing the embedded system hardware using CAD tools for schematic and PCB design.
  • adapting and porting the Linux operating system on the individual architecture of the embedded system and the underlying communication processor, its memory subsystem and network and peripheral devices, integrating desired functionality.
  • configuring and building GNU/Linux applications using tools and toolchains.
  • developing typical and complex embedded device drivers, with emphasis on network devices for network interfacing.
  • developing embedded applications running on the embedded systems, including the proper adaptation of desktop application in the embedded domain.
  • creating proper embedded root filesystems including embedded compilations of certain desktop applications.
  • debugging, administering and optimizing applications aiming at resolving trade-off between system performance and memory and storage space requirements.
  • evaluating performance of network embedded systems.
  • analyzing the basic functionality of embedded systems through a closer look and consideration of the underlying hardware and software.
  • analyzing architectural and technical information available in user, design and programming guides of the communication processor and the interfaced peripheral devices, and cross-checking them against corresponding embedded software implementations, recognizing the required differentiations per case and performing the corresponding porting of system source code, including the grouping of functionality in appropriate files and functions of the embedded software.
  • applying the obtained knowledge and methodologies in a diverse range of system architectures including a central microprocessor (which could be different than the reference system) and network device controllers, either integrated on the communications processor module of the CPU or provided using external integrated circuit components.

Course Contents

  • Communication Processors: Architecture, integrated communication processor module, peripheral devices, memory map, Ι/Ο ports, peripheral and network device controllers and operation (TDM, serial, ΑΤΜ, fast Ethernet, HDLC, multi-channel), interrupt handling.
  • Hardware development tools: Schematic design, PCB design, BOM, lab equipment.
  • Hardware System Architecture: Sample integrated access device (IAD) system architectures, modular design, EMI standards.
  • Development tools, embedded software and processes: Cross-compilers, GNU cross-development tool chain, basic system initialization (JTAG), bootloader configuration, Linux kernel configuration, kernel architecture, debian packages, embedded filesystems.
  • Device drivers: Peripheral and network devices (TDM, Ethernet, HDLC, multi-channel), device driver programming, Linux network API.
  • Performance analysis of high bitrate network devices, performance optimization, interrupt moderation.
  • Development and performance evaluation of an ATM network access device.
  • Embedded applications: Network services (NAT, DHCP, routing, IP QoS, VLAN, VPN etc.), web-based management, video surveillance, telephony, Asterisk PBX, home automation and domotics, voice interaction.
  • Restricted embedded systems: Detailed design of restricted embedded systems/devices, ultralow-power design, study of use cases.
  • Lab projects.
    • Building and configuring applications in GNU/Linux, tools for automating processes.
    • Debugging techniques, administering and optimizing applications, handling trade-offs between performance and memory and storage size.
    • Kernel structure, configuration, building and debugging. Useful configuration recipes.
    • Building cross-compile toolchains and validation techniques.
    • Kernel initialization process and adaptation.
    • Linux root filesystem structure, difference from pseudo-filesystems, filesystem types and proper uses.
    • Kernel image development tools.

Recommended Readings

  • Meliones A. (2006): Network Embedded Systems, Course textbook.
  • Wolf W. (2008): Computers as Components: Principles of Embedded Computing System Design. Elsevier, Inc.
  • Ashenden P. (2007): Digital Design (VHDL): An Embedded Systems Approach Using VHDL. Morgan Kaufmann Publishing
  • Wolf W. (2004): FPGA-Based System Design. Prentice Hall.
  • Brown S. & Vranesic Z. (2008): Fundamentals of Digital Logic with VHDL Design, 3rd Edition, McGraw-Hill
  • Pogarides D. (2013): Digital Design with VHDL: Principles and Practices, Disigma Publications (in Greek).
  • Pedroni V. (2004): Circuit Design with VHDL, MIT Press.
  • Souravlas S., Roumeliotis Μ. (2008): Digital Systems: Modeling & Simulation with VHDL, Tziolas Publishing (in Greek).
  • Pogarides D. (2015): Embedded Systems: The AVR and Arduino Controllers, Disigma Publishing (in Greek).
  • Kalovrektes Κ. (2012): Basic Principles of Embedded Systems, Varvarigou Publishing (in Greek).
  • Apostolacos S. & Meliones Α. (2014): Satellite IP Radio Communications in Air Traffic Control: Design, Implementation and Evaluation of Telecommunication Systems (in Greek).
  • Pekmestzi Κ. (2009): Micro Systems Ι: Microprocessors, Symmetria Publishing (in Greek).
  • Pekmestzi Κ. (2015): Micro Systems ΙΙ: Microcontrollers, Symmetria Publishing (in Greek).
  • Petrellis Ν, Alexiou G. (2012): Microprocessors and Design of Micro Systems, Kleidarithmos Publishing (in Greek).
  • Pogarides D. (2014): Design of Micro Systems, Ion Publishing (in Greek).
  • Rabaey J., Chandrakasan A., Borivoje N. (2003): Digital Integrated Circuits: A Design Perspective, 2nd Edition, Pearson.
  • Patterson D. & Hennessy J. (2014): Computer Organization and Design: The Hardware/Software Interface, 5th Edition, Elsevier, Inc.
  • Yaghmour K., Masters J., Ben-Yossef G. & Gherum P. (2008): Building Embedded Linux Systems, O’Reily.
  • Peckol J. (2007): Embedded Systems: A Contemporary Design Tool, Wiley.
  • Corbet J., Rubini A. & Kroah-Hartman G. (2005): Linux Device Drivers, 3rd Edition, O’Reilly.

Learning Design in the STEM Classroom

Learning Outcomes

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

  • to describe in a methodical way a course lesson and how to orchestrate activities
  • to know how to use graphical educational design tools to create educational scenarios
  • to know the basic principles of science, technology, engineering, and mathematics (STEM)
  • to create STEM worksheets
  • to understand and successfully implement the quality assessment principles of training scenarios
  • to design STEM educational activities with Educational Robotics and Internet of Things
  • to develop Robotics and IoT applications using Scratch & Lego Mindstorms
  • to implement applications using platforms like Lego EV3 (Robotics), BBC Microbit and Raspberry Pi (IOT).

 

Course Contents

  • Methodology for creating learning scenarios by orchestrating educational activities
  • Design worksheets through examples
  • Introduction to the Science, Technology, Engineering and Mathematics Teaching Approaches – STEM (science, technology, engineering, and mathematics)
  • Presentation of pedagogical principles through which STEM training activities are planned
  • Analysis of educational robotics activities with the tools MIT Scratch, Lego Mindstorms, Makecode
  • Explaining how to develop educational activities with ARDUINO & RASSBERY Pi
  • Development of STEM educational activity as lab praxticals

Recommended Readings

  • Alimisis D., Moro M., Menegatti E. (eds) (2017) Educational Robotics in the Makers Era. Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 560). Springer, Cham
  • Julie Dirksen (2015). Design for How People Learn (2nd Edition) (Voices That Matter), New Riders.

Associated scientific Journals

  • Nicolai Pöhner and Martin Hennecke (2018). The Teacher’s Role in Educational Robotics Competitions. In Proceedings of the 18th Koli Calling International Conference on Computing Education Research (Koli Calling ’18). ACM, New York, NY, USA, Article 34, 2 pages. DOI: https://doi.org/10.1145/3279720.3279753
  • Mayerove, K. and Veselovska, M. (2017): “How to Teach with LEGO WeDo at Primary School”. In: Merdan, M. et al. (eds.): Proceedings of the 7th International Conference on Robotics in Education (RiE 2016, Vienna). Vienna: Springer International Publishing. pp. 55 — 62.
  • Sullivan, F. and Heffernan, J. (2016): “Robotics Construction Kits as Computational Manipulatives for the Learning in STEM Disciplines”. In: Schrum, L. (ed.): Journal of Reserach on Technology in Education. Volume 48. Issue 2. London: Routledge. pp. 105 — 128.

Satellite Communications

Learning Outcomes

Aim of this course is the understanding of methods for the analysis and design of satellite communication systems. By concluding the course, students are able to

  • understand the specific features of satellite communication networks as well as their application field
  • familiarize with terms and techniques for the evaluation of the performance and of the availability of satellite links
  • identify, describe and distinguish the characteristics of different orbits
  • analyze and design links of particular telecommunication requirements
  • analyze and design appropriate criteria, on the computation of performance threshold values for the links, on the comparison of alternative implementation plans and the evaluation of the final performance of digital systems

By concluding the lab sessions students are able to

  • use mathematical tools, identify and apply theory to real-world problems
  • design and implement simple link budget models

Course Contents

Initially, the basic elements of the orbit mechanics are given (Kepler orbits, motion equations, track parameters, Earth’s orbit, relative satellite and earth geometry and the parameters determining the relative position of earth stations and satellite). Next,  the basic principles of Satellite Link Analysis and Design are discussed (typical antenna parameters, transmitted power, received signal power, link budget for clear sky conditions, factors affecting transmission, noise and its impact on satellite telecommunications, quality indicator reception equipment, techniques for compensating the effects of the transmission medium, signal to noise ratio for end-to-end radio-links, power gain at the satellite). Also, the most common broadcast techniques are presented (techniques mainly for digital broadcasting of baseband signals, modulation and applications in telephone and television systems). Finally, the most frequently used Multiple Access Techniques in Satellite Networks (FDMA, TDMA, CDMA) are analyzed.

In addition, extra content (in evdoxos.ds.unipi.gr) like articles, audiovisual lectures and Internet addresses, as well as exercises for student’s practice are posted electronically. Case studies, exemplary problems and methods for solving them are presented.

Recommended Readings

  • “Satellite Communications”, Book code in www.eudoxus.gr: 9742, Edition: 1st  edition/2009, Authors: Pratt Timothy, Bostian Charles, W. Allnutt, Athanasios Kanatas, ISBN: 978-960-7182-23-4, Publisher: A. Papasotiriou & Sia S.A. (1st Book)
  • “Satellite Communications: Systems, Techniques and Technology”, Book code in www.eudoxus.gr: 18548809, Edition: 3rd edition/2000, Authors: Maral Gerard, Bousquet Michel, ISBN: 960-8050-20-0, Publisher: A.Tziola & Sons S.A.  (2nd Book)

Associated scientific Journals

  • ΙΕΕΕ Transactions on Antennas & Propagation
  • ΙΕΕΕ Journal on Selected Areas in Communications
  • Wiley Journal on Satellite Communications & Networking
  • IEEE Communications Magazine

IT Project Management

Learning Outcomes

The main objective of the course is to introduce the fundamental concepts of digital systems project management and to study best practices in the area of project management such as the Project Management Body of Knowledge (PMBOK) of Project Management Institute (PMI), and to use such practices in project management of digital systems. The course will incorporate a laboratory session with project management software tools that allow students to practice some of the principles addressed.

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

  • Recognize the need for IT project management
  • Recognize the key issues during the IT project management procedures
  • Describe the best practices in IT project management processes and follow an IT project management methodology –from project inception to project closure
  • Create work break down structures (WBS)
  • Create project plans
  • Create business cases
  • Describe PMI project management process groups
  • Use various methods and techniques for schedule and budget estimation
  • Use various methods and techniques for project monitoring
  • Use various methods and techniques for resource loading and leveling
  • Assign tasks and resources using project management software tools
  • Create a Gantt/PERT schedule using project management software tools
  • Monitor project progress using project management software tools

Course Content

  1. Introduction to project management (e.g. project definition, projects typology, triple constraint concept, a systems approach to project management, organizational influences).
  2. Projects, information systems and services life cycles. IT project management methodologies (e.g. phases, deliverables, PMI project management procedures).
  3. IT projects business cases (e.g. Measurable Organizational Value, feasibility study, risk analysis, cost-benefit analysis, financial and scoring models).
  4. IT project management portfolios (e.g. project selection using Balanced Scorecard).
  5. Project charters and project plans. PMI project management processes (PMBOK areas).
  6. Project Time and Recourse Management (e.g. Work Breakdown Structure, Project organization structure and responsibilities, Gantt charts, the critical path, network diagramming, PDM networks, CPM/PERT, Scheduling with resource constraints).
  7. Project estimation (e.g. Delphi technique, Time boxing). Software engineering metrics and approaches (e.g. Lines of Codes, Function point analysis, COCOMO).
  8. Project control. Cost control (e.g. variance analysis, earned value). Performance analysis (e.g. Performances indices SPI and CPI). Forecasting (e.g. Forecasted cost to complete project, forecasted cost at completion).

Suggested Bibliography

  • J. Marchewka (2016): Information Technology Project Management: Providing Measurable Organizational Value, Wiley.
  • Schwalbe K (2013): Information Technology Project Management, Cengage Learning.
  • Phillips J (2010): IT Project Management: On Track From Start to Finish, McGraw-Hill Education.
  • B. Maizlish and R. Handler (2010): IT Portfolio Management Step-by-Step: Unlocking the Business Value of Technology, Wiley.
  • Project Management Institute (2004): A Guide to the Project Management Body of Knowledge, Third Edition (PMBOK Guides), Project Management Institute.
  • Nicholas J (2004): Project Management for Business and Engineering: Principles and Practice, Butterworth-Heinemann.
  • International Journal of Information Technology Project Management (IJITPM), IGI Global.
  • International Journal of Project Management, Elsevier.

Mobile and Personal Communication Networks

Learning Outcomes

The course presents the architectures and functional characteristics of modern mobile communication networks. Emphasis is given on the networking physical and functional entities and their interoperability, the communication and signaling protocols, the fixed network infrastructure and the mobile services in 2nd generation (GSM), 3rd generation (UMTS) and 4th generation (LTE) networks.

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

  • understand, analyze and evaluate the basic design options in the development, operation and maintenance of the different generations of mobile communication networks
  • know the architecture and physical and functional entities of the different generations of mobile communication networks
  • know of the basic functionalities of radio resource, handover, mobility and communication management of the different generations of mobile communication networks
  • dimension cellular networks based on the offered traffic load and the desirable quality of service

Course Contents

  • Overview of mobile communication networks with emphasis on 2nd generation GSM and 3rd generation UMTS systems.
  • Network architecture (network subsystems, functional layers, physical architecture, radiocoverage, mobility).
  • Radio resource management (functions and procedures for radio management, handover procedure, handover in multi-layer architecture).
  • Mobility management (paging and location update procedures).
  • Communication management (call control, call setup, call release, complementary services, message services).
  • Systems and standards GSM, HSCSD, GPRS, UMTS and LTE. Signalling protocols (SS7).
  • Location based services (architectures, methods).

Recommended Readings

  • M. Theologou, “Mobile and Personal Communication Networks”, Tziola Publishers, (Greek).
  • Holma and Toskala, “WCDMA for UMTS: Radio Access for Third Generation Mobile Communications”, Wiley.
  • Holma and Toskala, “HSDPA/HSUPA for UMTS: High Speed Radio Access for Mobile Communications”, Wiley.
  • Michel Mouly and Marie–Bernadette Pautet, “The GSM System for Mobile Communications”, Telecom Publishing.