Social Networks

Learning Outcomes

This course is the basic introductory course in the field of computational analysis and synthesis of social networks.

The course material seeks to introduce the students to the basic concepts and algorithms for the study of social networks. The course focuses on answering questions related to the creation of social networks, their information properties and the interaction between their structure and the emergence of social processes related to information diffusion, strategic interaction and collective behavior. All theoretical results are presented in relation to their application in real problems in social computational environments such as Facebook of Google search.

The successful completion of the course will make students capable of:

  • understanding the basic and important features of social networks in both an algorithmic and interaction level.
  • knowing the major features of the tools and development methods for the creation of digital social networks and applications

Course Contents

  • Conceptual features of social networks
  • Elements of Graph Theory
  • Social links
  • Topics in Social Environments (Homophily, Group participation, Separation)
  • Social Balancing
  • Information Diffusion
  • Elements of Game Theory
  • Group Decision-Making
  • Sharing frameworks

Recommended Readings

  • Martin J. Osborne, An Introduction to Game Theory, Oxford, 2010
  • Instructor Notes

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

Broadband Networks

Learning Outcomes

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

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

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

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

Course Contents

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

Recommended Readings

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

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.

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»

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