Code

ΠΠΣ-185

Semester

2nd

ECTS

7,5

E-Services

Category

Obligatory

Objective

The purpose of the course is to deepen students’ understanding of complex systems development methodologies using the Python programming language.

The course is aimed at students who are going to use the language, the methodologies and the tools/platforms presented in a context of autonomous and interconnected systems development.

After successfully completing the course, students will be able to:

  • Analyze integrated systems and design solutions with the Python language. Identify libraries and appropriate tools and platforms.
  • Use integrated code development environments, tools and libraries, to develop programs in the Python language.
  • Incorporate modern and sophisticated software development methodologies and best practices for developing efficient systems in Python, oriented towards web environments. Special focus is given on interoperable, reliable and secure distributed applications.
  • Develop systems for use in business logic and intelligence environments.
  • Understand new concepts (e.g. quantum computing) and apply these concepts in a professional setting by developing programs in the Python language.
  • Apply advanced methodologies of automated control of the program’s code (testing).

Learning outcomes

  • Search, analyze and synthesize data and information using appropriate technologies
  • Promotion of creative and inductive thinking
  • Independent work: Familiarity with development tools and building programs in the Python programming language using appropriate libraries, on a well-defined problem.
  • Teamwork: Developing team-collaborative skills, assume roles and work within interdisciplinary teams to solve more complex problems.
  • Work in an international environment and produce new research ideas

Syllabus

  • Structural Elements of Python Language

    Python features and syntax (including Python idiomatic features). Python data structures and algorithmic structures. Program structure and functions. Vector and object oriented programming. Inheritance, Exception Handling, Multiprogramming, Multithreading, Visualization, Data Representation Tools and Platforms. Proper programming techniques in Python (God Programming Practices). Core libraries and application development platforms (local/distributed).

     

  • Advanced Application Development

    Development of applications with integration of graphical user interfaces. Event-Driven Programming in Python. Creation and use of APIs and web application development frameworks. Develop applications to interface, retrieve and manipulate data in relational and non-relational databases. Automation of processes. Use of web services. REST and GraphQL architectures. High performance  applications in Python. Decision support applications for business environments (Business logic/Business Intelligence). Introduction to quantum computing and tools in Python.

     

  • Development of Complex Systems

    Device management and interaction with the Internet of Things (IoT). Development of computer network management and supervision systems, communication protocols. Recommender systems. Development of system monitoring and evaluation applications. System performance optimization tools and libraries. Online applications. Development of distributed applications with advanced scalability, reliability, and security features. Development of cloud applications. Introduction to concept of edge computing using the Python programming language.

Bibliography