Generic and Generative Software Design Sven Apel, Florian Sattler Advanced Course (6CP)

News

02.12.2022

LSF Registration

Dear students,

you can still register in the lsf until the end of today. If you are not registered yet and want to pass the course you have to register today.

 

All the best,

Your GGSD-team

14.11.2022

First Project

Dear students,

The first project will start on Tuesday, November 22nd, at 2pm and end on Tuesday, December 06th, 23:59. Remember to register your team in the CMS (both team members have to submit) until Wednesday, November 16th.

Please note, that the first... Read more

Dear students,

The first project will start on Tuesday, November 22nd, at 2pm and end on Tuesday, December 06th, 23:59. Remember to register your team in the CMS (both team members have to submit) until Wednesday, November 16th.

Please note, that the first Assignment will count 10% towards your final grade.

 

All the best,

your GGSD-team

26.10.2022

First Slide Decks

Dear students,

we just uploaded a new version of the first slide decks with updated links to the current discord server.

 

All the best,

your GGSD-team

24.10.2022

First lecture

Dear Students,

 

a few more brief details. The first lecture will take place on Wednesday 26th of October. We will record this and all subsequent lectures and make them available to you. This way, you will be able to watch them again if there is a clash of... Read more

Dear Students,

 

a few more brief details. The first lecture will take place on Wednesday 26th of October. We will record this and all subsequent lectures and make them available to you. This way, you will be able to watch them again if there is a clash of dates.

Note that the first lecture will be held only online via Zoom [1].

We'll upload the first two sets of slides under materials before the lecture. You will also find the link for the Zoom-meeting in the Introduction slides.

 

All the best,

Your GGSD-Team

[1]: https://cs-uni-saarland-de.zoom.us/j/93307229871?pwd=Z0ljb1Z3VXd3TnlLZVh6SHlzdXdvdz09

 

Generic and Generative Software Design

 

 

General Information

The course treats Generic and Generative Software Design to build reusable software components utilizing meta-programming. During the course, students learn different techniques on how to design generic and reusable components. This includes functional abstractions to build generic higher-order functions, meta-programming techniques to improve API design and software performance as well as designing DSLs to simplify the usage of generic APIs. During the course, we focus on discussing and reasoning about design trade-offs in generic code, drawing ideas from different imperative and functional programming languages. Furthermore, the lecture explores how we can use generative domain models to generate customized program variants.

 

Syllabus

  • C++ Basics
  • Encoding configurability into types
  • Functional abstraction and higher-order functions
  • Type computations
  • Generic Programming
  • Type-APIs
  • Embedded DSL
  • Introduction to product-line engineering
  • Generating program variants with generative domain models

 

Lecture Dates

  • Place: Online (via Zoom)
  • Time: Monday (12⁠–14 c.t.) and Wednesday (12⁠–14 c.t.) CEST
  • First Meeting: 26.10. (12–14 c.t.) CEST

 

Entrance Requirements

  • Knowledge of programming concepts (as taught in the lectures Programmierung 1 and Programmierung 2)
  • Basic knowledge of software processes, design, and testing (as taught and applied in the lecture Softwarepraktikum)
  • Basic knowledge of C++ is advisable (we provide a condensed but comprehensive introduction at the beginning)
  • Basic knowledge on Linux systems is recommended

 

Modus Operandi

Beside the lecture and weekly practical exercises, there will be three assignments in the form of mini-projects for each group (2 students) to work on. The assignments will be assessed based on the principles covered in the lecture. Students need to achieve at least 50% of the points of the assignments as well as the written exam to pass the course. The final grade is determined by the written exam (50%) and the three assignments (10%, 20%, 20%). Further examination details will be announced by the lecturer at the beginning of the course.

In short:

  • Passing the assignments (min. 50% of the points)

  • Passing the written exam (min. 50% of the points)

 



Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators