Curriculum

Learning framework

SE4GD is based on a learning framework aiming to provide you competencies both on software engineering and sustainable mindset

Hard and soft skills

Learning of software engineering and sustainable mindset provides you set of hard and soft skills that enable you to create sustainable solutions that have an impact

Theme based courses

SE4GD semesters have been themed based on the merits of each hosting university

SE4GD Learning Framework

SE4GD programme follows carefully designed learning framework and emphasizes the following competencies:

  • Sustainability mindset
    • Understanding the environmental limitations
    • Long-term vision, desire to change and the courage to act
    • Ability to identify needs and opportunities, Innovation and knowledge management, Life and lifestyle
    • Understanding the cultural differences
  • Software engineering tools and methods
    • Professional knowledge
    • Technical knowledge
    • Teamwork
    • End-user awareness
    • Design solutions in context

SE4GD Learning framework is based on the following reports:

  • UNESCO skills for sustainable development
  • 21st century skill categorization
  • Reflex study

SE4GD Learning Outcomes

Hard skills:

  • Environmental understanding (Sustainability)
  • Requirements engineering (SWE)
  • Software design and development (SWE)
  • Software quality and impact (SWE, Sustainability)
  • Innovation and networking (Social)
  • Strategic and business analysis (Entrepreneurs)

 

Soft skills

  • Life management (lifestyle, career)
  • Project management
  • Change management
  • Team work
  • Problem solving (analytical and critical thinking)
  • Communication skills (argumentation)
  • Motivation and persistence
  • Ethics
  • Cultural understanding
  • Entrepreneurial mindset and employability

SE4GD Programme Contents

SEMESTER 1: SOFTWARE ENGINEERING FUNDAMENTALS (30 ECTS)

The objective of the first semester is to provide students with fundamental knowledge, skills and competences in both the engineering and architecting of software systems. During this semester, students will learn how to design, model, and analyse complex systems and their architectures. The courses are organized at the University of L’Aquila, Italy, and more specifically at the Department of Engineering, Computer Science, and Mathematics.

Course 1.1: Software quality engineering – 6 ECTS

The aims of this course are to

  • Explore non-functional properties of software architectures
  • Focus on quantitative assessment of software architectures
  • Increase software modeling and analysis skills

Course content:

This course aims to more deeply explore some of the concepts covered during the course of Software Engineering Basics and to introduce new concepts. In particular, this course deals with: non-functional properties of software architecture (such as reliability and performance), with a particular emphasis on their quantitative assessment. It intends to let the student acquiring not only software modeling and analysis skills, through the use of tools that support these activities, but it also aims at developing the student ability to adapt to different tools and to interpret the results that these tools can offer.

Course learning outcomes:

  • Reliability and Performance analysis of software architectures
  • Software Architecture performance modeling
  • Software Architecture assessment
  • Tool support

 

Course 1.2: Software architectures – 6 ECTS

The aims of this course are to:

  • Introduce basic and advanced topics in software architecture
  • Educate students’ to take architecture design decisions
  • Guide students in the selection of architectural styles
  • Guide students in the selection of architectural views and viewpoints

Course content:

This course will provide skills on basic and advanced topics in Software Architectures, with a specific focus on multi-view modeling, architecture design decisions, architectural styles and patterns, IoT reference architectures, and technologies for architecting complex systems

Course learning outcomes:

  • Ability to create the proper architecture to satisfy stakeholders’ concerns
  • Ability to analyze design decisions and select architectural solutions that can be modeled, analyzed and used for driving the implementation process
  • Excellent knowledge on both theory and practice of Software Architecture

 

Course 1.3: Software engineering for the Internet of Things – 6 ECTS

The aims of this course are to:

  • Introduce the fundamental concepts related to the development of IoT system from a software engineering perspective.
  • Introduce various methods, languages, and protocols for engineering the IoT
  • Provide concrete examples of IoT systems

Course content:

The focus of this course is to explore the main building blocks that are typically involved when designing and developing IoT systems including hardware components, software platforms, communication protocols, and sensing/actuation devices. The course will be a hands-on course by potentially using different IoT and networking components and Raspberry Pi devices.

Course learning outcomes:

  • Be able to master open source IoT software platforms
  • Be able to program mobile devices to access their sensors and communication capabilities
  • Be able to understand how to store and process information in the cloud using databases and computing frameworks such as Hadoop or Google’s Cloud Data Flow
  • Be able to learn new emerging distributed system technologies in the field of IoT
  • Be able to apply knowledge of computing and mathematics appropriate to the discipline
  • Be able to analyze the impact of computing on individuals, organizations and society, including ethical, legal, security and global policy issues
  • Be able to use current techniques, skills, and tools necessary for computing practice

 

Course 1.4: Model-Driven Engineering – 6 ECTS

The aims of this course are to:

  • Explain the principles and concepts underlying model-driven engineering
  • Describe concept and approaches for defining the syntax and semantics of domain-specific modelling languages
  • Define and explain the concepts, syntax and semantics of model transformation languages and mode-to-text tools.
  • Explain the basic concepts and techniques underlying the automated generation of (diagrammatic and textual) modelling editors and environments

Course content:

Model-driven engineering (MDE) is an emerging software engineering discipline which focuses on models as primary artefacts of the software development process while programs are mainly generated by means of automated model-to-code transformations. MDE is applicable across a wide range of domains. This course will provide the participants with state of-the-art working knowledge on the application and theory of model-driven software development and model management. This includes recent research results with the area

Course learning outcomes:

  • Assess the applicability and limitations of model-driven engineering and tools for development of software.
  • Judge the practical application of modelling and model management in realistic scenarios.
  • Discuss and document the construction and validation of models and extensions of supporting software tools.

 

Course 1.5: Artificial Intelligence – 6 ECTS

The aims of this course are to:

  • Provide students with basic competence about Logic, Logic Programming, Heuristic Search, and Reinforcement Learning

Course content:

  • first-order logic in a nutshell
  • basic Prolog constructs (rule, facts, unification)
  • Prolog programming and meta-interpreters
  • Heuristic Search, A* Algorithm
  • MinMax Search AlphaBeta Pruning
  • Adaptive Heuristics
  • Reinforcement Learning

Course learning outcomes:

  • be able to apply first-order logic
  • be able to master Heuristic Searches
  • be knowledgeable on Reinforcement Learning.
SEMESTER 2: SUSTAINABLE SOFTWARE (30 ECTS)

The objective of this semester is to educate students in software engineering to understand the fundamentals of sustainable development, the role of software in sustainable development and the approaches on how the software can be made sustainable. Sustainable software semester addresses sustainability of the software. The courses are organized at the LUT University.

Course 2.1: Sustainability and IT – 6 ECTS

The aims of this course are to:

  • Introduce the sustainable development principles
  • Introduce the sustainability perception to software
  • Educate the software and services role for sustainable solutions

Course content:

The course is based on recent literature concerning the role of software and services for sustainable solutions (e.g. Hilty: ICT innovations for sustainability, …). Course uses flipped classroom type of learning and emphasizes critical thinking and argumentation as well as teamwork in the process of understanding the links between sustainability and IT.

Course learning outcomes:

  • Sustainability of software solutions
  • ICT and software engineering approaches to sustainable solutions
  • Critical thinking and argumentation skills and competencies
  • Teamwork skills and competencies
Course 2.2: Software and Application Innovation – 6 ECTS

The aims of this course are to:

  • Provide the students the tools and methods for successful innovations (for sustainable software solutions)
  • Provide the students the entrepreneurial mindset
  • Educate students of the software business development
  • Educate students of the meaning of long term vision in business development

Course content:

Innovation methods and approaches for service innovation, open innovation methods, software and application innovation process, entrepreneurial mindset, business processes, business models, business financing.

Course learning outcomes:

  • Skills and competencies of service innovation based on long term vision
  • Knowledge, skills and competencies for business development taking the stakeholders (end users) into account
  • Skills and competencies to link own topic to sustainability fundamentals
  • Entrepreneurial mindset with proper ambition
Course 2.3: Running a software project – 6 ECTS

The aims of this course are to:

  • Combine practical modelling and design knowledge of services to sustainable development goals
  • Implement prototypes of sustainable services
  • Assessment of the software sustainability

Course content:

Capstone project aims at combining theoretical knowledge of sustainable development gols and software engineering practices in a practically oriented project work. This course combines the outcomes of courses 2.1 and 2.2. Hackathon with companies can be arranged as a part of this course.

Course learning outcomes:

  • Skills and competences to implement the designed services in a real environment
  • Skills and competencies to evaluate the usability of the implemented software solution
  • Skills and competencies to evaluate the sustainability of the implemented software solution
  • Teamwork skills and competencies
Course 2.4: Personal literature study – 6 ECTS

The aims of this course are to:

  • Educate the meaning of related work
  • Provide means of performing literature review
  • Educate research methods used in software engineering
  • Prepare a viable research plan for the thesis work
  • Educate the scientific reporting
  • Advance the thesis works of the students

Course content:

Related work as a basis for scientific work, methods for literature review, scientific writing, thesis contents

Course learning outcomes:

  • Skills and competencies to realize a good related work section to the thesis works of the students
  • Critical reading skills
  • Skills and competencies to write scientific articles
  • Skills and competencies on analytical thinking and evaluation
  • Skills and competencies to link own topic to sustainability fundamentals
  • Ability to make the right decisions to advance sustainable development in different cultural settings
Course 2.5: Industry seminar on Local Sustainability challenges – 3 ECTS

The aims of this course are to:

  • educate the sustainability challenges of the Finnish and Baltic ICT industry
  • provide the knowledge of the industry perspective to the sustainable solutions
  • provide the cultural perspective to sustainability

Course content:

The course presents the Finnish and Baltic ICT industry in different domains and ties their solutions into sustainability goals.

Course learning outcomes:

  • Knowledge of the today’s sustainability challenges
  • Knowledge of different industry sectors and their differences in sense of sustainability
  • Knowledge of the cultural perspective to sustainability
  • Skills and competencies on critical thinking and argumentation
Course 2.6: SE4GD Summer school – 3 ECTS

The aims of this course are to:

  • Extend the sustainable perspectives to consider the need of various stakeholders
  • Link the students with various stakeholders in a form of industry fair

Course content:

The course consists of the activities within the first summer school of each cohort. The purpose of the summer school is to extend the perceptions of the students beyond the courses in the programme by linking the students with the academic, local and regional partners as well as industry representatives. Each summer school will be planned with the organizing partner to reflect the local needs.

Course learning outcomes:

  • Extending the knowledge on local sustainability challenges
  • Knowledge of the needs of industry in sense of sustainability
  • Knowledge of the regional perspectives to sustainability
  • Skills and competencies to communicate with various stakeholders on sustainable development
SEMESTER 3: SOFTWARE FOR SUSTAINABILITY (30 ECTS)

The objective of this semester is to build upon the skills and competencies acquired in the first year of studies, on software engineering foundations and sustainable software. The students learn to design modern service-oriented software, to understand its historical, current and future role in our society, and to assess the extent to which software systems impact target sustainability goals. The ‘Software for sustainability’ semester addresses the instrumental role of software towards sustainability. The courses are organized at the Vrije Universiteit Amsterdam, The Netherlands.

Course 3.1: Service oriented design – 6 ECTS

The aims of this course are to

  • Teach advanced reasoning and design decision making techniques applicable to large service-oriented software systems, in both theory and practice.
  • Learn the notion of sustainability-quality, and how to include it in service oriented design.

Course content:

  • The lectures provide the students with knowledge about how to identify the requirements for a service-oriented software system, how to map them on business services and transform them into complex networks of software services. Special emphasis is given to the design reasoning techniques for decision making, service identification, service-oriented software design, and how to address sustainability concerns. Each year experts from academia and/or industry are invited to give guest lectures
  • Throughout the course, students work in teams in an industrial project, to design a software solution with challenging sustainability goals.

Course learning outcomes:

  • Ability to design software-intensive systems as complex service compositions
  • Ability to explore the design space, make sound and well-motivated design decisions
  • Ability to identify sustainability strategies and illustrate them into a software design solution
  • Collaboration, interaction with industrial stakeholders and communication skills

Course 3.2: Software sustainability-quality assessment – 6 ECTS (NEW)

The aims of this course are to

  • Educate on how to assess sustainability as a quality concern that software can address directly or indirectly.
  • Provide the instruments to embed sustainability into software projects, link sustainability explicitly to the software artifacts responsible for their realization, and associate significant metrics and indicators.

Course content:

  • After giving a strong theoretical foundation in the multi-dimensional characterization of sustainability relevant for software engineering, as well as its representation over time- and space, the course provides the students with a set of practical tools for designing sustainability into their own project of choice. Several hands-on sessions in teamwork provide guidance and support in developing the project and building the necessary skills and competences.

Course learning outcomes:

  • Apply sustainability analysis to concrete and large-scale software projects.
  • Master critical thinking skills.
  • Be able to quantify and qualify sustainability impacts and the role of architecture design decisions in an interdisciplinary context.

Course 3.3: Green lab – 6 ECTS

The aims of this course are to

  • Learn the basics of empirical experimentation in the field of software engineering.
  • Be able to operate in a lab environment and build a successful experiment for software energy consumption.
  • Become familiar with the research problems in the field of green software engineering.
  • Understand and measure the impact of software over energy consumption.

Course content:

  • The students work in teams to perform experiments in a controlled environment, on software energy consumption in particular, and on the effects of software on sustainability-quality in general. They have to carry out all the phases of empirical experimentation, from experiment design to operation, data analysis and reporting. During the lab sessions, students are assisted for technical operation of the lab equipment as regards measurement and data gathering. Students also receive the required training for data analysis and visualization (i.e. graphs, dashboards) using specialized software.

Course learning outcomes:

  • Ability to design, execute and report on an empirical experiment
  • Ability to present and defend the results of an empirical experiment
  • Develop team collaboration skills

Course 3.4: Logical verification – 6 ECTS

The aims of this course are to

  • Introduce the proof assistant Lean, its type-theoretic foundations, and its applications to mathematics and computer science.

Course content:

  • A proof assistant is used to check the correctness of a specification of a program or the proof of a mathematical theorem. The course is built around the proof assistant Lean, a system that is developed primarily at Microsoft Research. In the practical work, the students learn to use Lean. They use the system to prove mathematical theorems and carry out verification of small programs. The lectures focus on Lean’s dependent type theory and on the Curry-Howard-De Bruijn correspondence between proofs and functional programs (lambda-terms).

Course learning outcomes:

  • Ability to prove mathematical theorems in a precise, formal way
  • Ability to verify small programs

Course 3.5: History of digital cultures – 6 ECTS

The aims of this course are to

  • Introduce the history of the information society, from computers and software to the internet, and the present ubiquity of digital cultures.
  • Discuss the speculations on societal impact of computing have accompanied this technology.
  • Accompany the students in their own team projects on selected topics.

Course content:

  • The course is an intensive, engaging and fully committing four-week project in teamwork. Teams of 4 to 6 students choose their topic. The lectures provide an historical view of the societal impact of computing. The projects, building up the course, are concerted efforts to explore local or national developments, possibly concerning The Netherlands, like Dutch computer- and software pioneers, contributions to software engineering, and more recent specialities like the Dutch role in the internet, DDS (de digitale stad), web design, gaming, and digital art.

Course learning outcomes:

  • Acquire a firm historical knowledge of computing in its cultural context.
  • Recognize the various strands in theories of “the information society” and of “digital culture”, and become aware of the strengths and limitations of such theories.
  • Gain experience in teamwork in a project.
SEMESTER 4: THESIS WORKS

Semester 4 is dedicated for your thesis works. For thesis work students will be distributed to the consortium partners and as such you will have a possibility to see another country during your studies.

Thesis topics are to be discussed and selected before the start of the second year.

Disclaimer: The hosting universities follow the instructions of the local authorities in sense of Covid-19.  We do everything to make the learning experience as good as possible for the selected students.