Clean Code Essentials: Structured Software Development Made Easy. Structure, quality and efficiency in programming - clean code in scientific practice

TitelZeitOrtDozent
Clean Code Essentials: Structured Software Development Made Easy. Structure, quality and efficiency in programming - clean code in scientific practice (CS&CE)08.01.2026 09:00 - 16:00 (Do)OnlineGunnar Bless
Clean Code Essentials: Structured Software Development Made Easy. Structure, quality and efficiency in programming - clean code in scientific practice (CS&CE)09.01.2026 09:00 - 16:00 (Fr)OnlineGunnar Bless
Keywords: 
Clean Code, Code Quality, Traits of Good Code, SOLID Principles, DRY, KISS, Beware Premature Optimization, YAGNI, Common Design Patterns
Beschreibung Kursinhalt: 

In two days, the course teaches the basic principles, methods and tools for clean, maintainable and comprehensible code in a practical way in order to sustainably increase the quality and efficiency of software development.

Lernziele: 

• Introduction

• Test First & Test Driven Design

• Code-Formatting & Style-Guides

o    Quality-traits: Searchability, Consistency & Code Quality

• Documentation

o    Comments, DocStrings & Annotations

• Tooling & Automation

• Traits of Good Code

o    Design by Contract, Separation of Concerns, Function Signatures, Orthogonality

• SOLID Principles

• Further principles

o    DRY, KISS, Beware Premature Optimization, YAGNI, Tell don't ask

• Classes, objects and data structures

o    Different kind of objects, Objects vs. Data Structures, Mixins, Perils of Inheritance

• Some Common Design Patterns and their takeaways

Optional (as time allows)

• Unit-Testing and Refactoring

o    Test First & Test Driven Design, Integrationstests, Issue Tracking, Reviews

• Pythonic Code

o    Decorators, Context Managers, Generators, functional programming

• Clean Architecture

• Code-Structuring, Software components

Lehrmethoden: 

Practical work on the PC; Discussion and discussion of questions and tasks; Lecture

Der Kurs ist für Promovierende in folgender Phase geeignet: 

Beginning of/ Halfway through the doctorate

Teilnahmevoraussetzungen: 

Programming experience with e.g. Python, C++ or Matlab. The participants do not need to be experts, but must have a solid basic understanding. The course uses Python

This course is intended as a subject-specific course only for doctoral candidates of CS&CE. If enough spots are available, other doctoral candidates of the CIT can later enter it as a transferable skills course

Technische Voraussetzungen: 

Laptop/PC with web access, participants will receive information on the required software before the seminar

Kursvorbereitung: 

none necessary

Sonstige Informationen: 

Before the seminar, we conduct a short survey among the participants to clarify prior knowledge and expectations.

You need to take part in at least 80% of the course to have it approved for your qualification program.

If you are on the waiting list: it can take up to 2-3 working days for freed spots to be allocated.

A signed statement signed by your supervisor will be required:

- in the event of late cancellation after the deregistration deadline, if your spot cannot be filled with someone from the waiting list

- if you are a no-show

If you fail to provide it, you will be blocked from GC-CIT courses for the following 2 semesters.

Kategorie: 
Fachspezifische Veranstaltung
Art der Veranstaltung: 
Seminar/Workshop
Veranstalter: 
Graduate Center of Computation, Information and Technology
Verantwortung für Veranstaltung: 
Hauptverantwortung
Durchführung/Format: 
Digital/Online
Sprache: 
EN
Maximale Teilnehmendenzahl: 
12
Minimale Teilnehmendenzahl: 
5
Umfang in Stunden: 
12
Kosten: 
The course is free of charge for our participants, but paid out of the limited GC-CIT budget, therefore belated de-registrations and no-shows may end up limiting our offer
Trainer: 
Gunnar Bless

Gunnar Bless, graduate physicist, has extensive experience as a trainer. For almost two decades, he has conducted exciting and captivating training courses in the fields of software engineering, data science and programming. He is a speaker at various professional conferences and is also active as a technical book author.