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

TitleTimeRoomTeacher
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 (Thu)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 (Fri)OnlineGunnar Bless
Keywords: 
Clean Code, Code Quality, Traits of Good Code, SOLID Principles, DRY, KISS, Beware Premature Optimization, YAGNI, Common Design Patterns
Course Description: 

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.

Course aims: 

• 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

Teaching methods: 

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

This course fits doctoral candidates in the following phase: 

Beginning of/ Halfway through the doctorate

Participation requirements: 

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

Technical requirements: 

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

Course preparation: 

none necessary

Additional information: 

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.

Category: 
Fachspezifische Veranstaltung
Event type: 
Seminar/Workshop
Organizer: 
Graduate Center of Computation, Information and Technology
Responsibility for event: 
Hauptverantwortung
Format: 
Digital/Online
Course Language: 
EN
Course Capacity (Max): 
12
Course capacity (Min): 
5
Duration in hours: 
12
Financial contribution: 
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.