“Ein Schriftsteller ist ein Mann, dem das Schreiben schwerer fällt als allen anderen Leuten”  —  Thomas Mann 

“Ein Schriftsteller ist ein Mann, dem das Schreiben schwerer fällt als allen anderen Leuten”  —  Thomas Mann 



Photo Map Creator Tool

Sunday, 29 December 2019  #computerscience  #project  #programming  #gitlab

I have traveled a lot in 2019 and was curious about the "level of discovery" I made in each city. Since I always make a bunch of photos everywhere, this has to be a good indicator. I just published a small tool at https://gitlab.com that extracts GPS coordinates of my photos and exports them as markers into an HTML file using OpenLayers. You'll find the project here.

SELL a Simple E-Learning Language

Friday, 27 September 2019  #computerscience  #e-learning  #project  #hm4mint  #dsl

In June 2019, I joined hm4mint.nrw, a three year funded joint project of 17 universities and universities of applied sciences of North-Rhine Westphalia. Under the leadership of RWTH Aachen University, a new online course for mathematics is established. The course intends to set high-quality standards in teaching further mathematics to undergraduate students of engineering. A German press release was issued two days ago. Besides coordinating tasks, I will develop additional content in the form of explanatory texts and exercises.

  • A key focus for myself will also be to improve the technical process of creating new quiz tasks. By the fact that it is today common to generate individual tasks for each student, a set of random variables must be included in the task descriptions. While there are graphical tools on the market (for example Moodle STACK), there is no standardized formal language today for a textual definition.
  • A new domain-specific language called "SELL := Simple E-Learning Language" is planned to close this gap. We derive parts of the grammar from AsciiMath and Markdown. The syntax has little overhead to keep the writers focus on semantical and didactical aspects.

Examples created with SELL can be found here.

Mail from Donald Knuth

Monday, 18 March 2019  #computerscience  #taocp  #knuth  #stanford

It is a great honour to me to have recently received mail from Donald E. Knuth; the "pope of computer science", professor emeritus at Stanford University and one of the greatest computer scientists of all time:

I highly recommend reading his book series The Art of Computer Programming (TAOCP), the bible for every computer scientist.

Teaching Analysis Poll (TAP)

Tuesday, 4 December 2018  #teaching  #lecture  #cbdsl  #evaluation  #thkoeln

Recently, I applied the instrument of Teaching Analysis Poll (TAP) in my master's course Compiler Construction and Domain-Specific Languages. This optional evaluation procedure is usually held in the middle of the current semester and replaces evaluation sheets. TAP works as follows: The lecture is closed half an hour before the regular ending. The lecturer leaves the room, while staff from both Zentrum für Lehrentwicklung (ZLE) (center for teaching development) and Hochschulreferat Qualitätsmanagement (QM) (quality management) evaluate the course together with the students. Primary, the following three main questions are discussed. I do not hesitate to also include the student's response. The percentages given in brackets describe the approval of the course for the individual aspects:

  • What makes you learn the most in this course?
    • Very dedicated lecturer (100 %)
    • Discussions with the lecturer (100 %)
    • The lecturer shows interest in the learning progress of the students (100 %)
    • Structured lecture slides (100 %)
    • Quizzes and gamification (100 %)
    • Practical exercises and tasks (100 %)
    • Sufficient breaks (100 %)
  • What makes learning more difficult?
    • The lecture not always completed within one unit (30 %)
    • Tasks are sometimes declared imprecisely, for example in experiments (30 %)
    • Room equipment, especially the projector does not always work (100 %)
  • Which suggestions for improvement do you have for the obstructive points?
    • Time limits for exercises, solve rest as homework (100 %)
    • Separate exercises from the lecture script (100 %)
    • Provide more detailed task descriptions (30 %)
    • Purchase a new projector (100 %)

I would like to thank my students again for all this gorgeous feedback! There could be no greater motivation to continue teaching university courses. Also, a special thanks go to the TH Köln staff from ZLE and QM for the great work and all the intense discussions! All stakeholders agree that TAP is a beneficial implementation to receive precise feedback from the students. I will look forward to making use of TAP again in a bachelor's mandatory course "Formal Languages and Automata Theory" in the next semester; with different constraints, e.g. a larger number of course participants.

Reward Checks for Students

Saturday, 20 October 2018  #teaching  #gamification  #lecture  #cbdsl

Inspired by Donald Knuth with his book series The Art of Computer Programming, I write out a reward check for every student of my master's course Compiler Construction and Domain-Specific Languages who finds a mistake in my lecture notes. Up to now, 9 reward checks have been written out, with a total value of 14.72 V\$. Once a week, a high score list is updated in the online course. Students with a high deposit are rewarded in the oral examination, as the uncovering of semantic errors can be interpreted as a notable learning outcome. The current exchange rate in Virtual Dollars (V\$) is as follows:

  • Minor syntactical error: 0.32 V\$
  • Major syntactical error: 0.64 V\$
  • Minor semantical error: 1.28 V\$
  • Major semantical error: 2.56 V\$

Interim Conclusion: This kind of gamification has so far created a pleasant atmosphere and motivated the students to deal even more with the documents. Furthermore, rewards should imply that feedback is highly appreciated and that the lecturer works together in symbiosis with the learners.

A word on checks: Why do I write out checks and do not use modern technology like for example blockchain and cipher currencies? I believe that analog feedback is more personal and tangible.

Inverted Classroom Model (ICM)

Friday, 4 May 2018  #teaching  #cbdsl

On Monday, 23rd April, I attended a course dealing with the Inverted Classroom Model (ICM) at TH Köln - University of Applied Sciences. The course was given by Dr. Daniel Lambach and Caroline Kärger from University of Duisburg-Essen.
Traditional teaching methods, where the lecturer conducts a monologue, are said to have the following drawbacks:

  • the student's attention is lost after 15 minutes
  • learning is passive: the number of interaction opportunities
  • all students must have the same learning curve

The ICM approach moves the knowledge acquisition phase outside the course's attendance time. Thus, the diversity of students is taken into account: different stages of previous knowledge, different habits, and capabilities of learning. ICM mainly distinguishes two phases: Self-study and attendance.

  • Self-study phase - The passive knowledge acquisition is done by students via reading texts, watching video lectures and hearing podcasts.
  • Attendance phase - Frontal instructions are replaced by activating methods, like applying knowledge and peer instruction.

I am yet a little skeptical if ICM works for all kinds of studies. Trying to avoid passing any further judgments a priori, I have decided to give ICM a chance by implementing it into my lecture Compiler Construction and Domain-Specific Languages in winter term 2018/19. Since it will be a new course and the creation of course materials will be an ongoing and accompanying process, I will have the chance to dynamically change the ratio between traditional and modern teaching alignments. As a rule of thumb, I am going to start with approximately 25 percent of ICM.

Teaching a new master's course "Compiler Construction and Domain-Specific Languages"

Wednesday, 2 May 2018  #teaching  #lecture  #cbdsl

Today, the board of Faculty of Information, Media and Electrical Engineering (TH Köln) admitted establishing a new course Compiler Construction and Domain-Specific Languages within the master's program Computer Science & Engineering. I am looking forward to creating the material and hope that many students will visit my lecture in winter term 2018/19! Possibly some parts of the course will implement elements of the flipped classroom. As far as possible I will put links to videos here. Stay tuned!

How to become a Computer Scientist with Passion

Thursday, 19 April 2018  #dev  #programming

Early years: My programming experience started back in 1995, at the age of 9, on a Commodore 64 (C64). The device was equipped with 64 KiB of RAM and an 8-bit CPU of type MOS 6510; a variant of the famous MOS 6502. Due to the very limited hardware resources, as well as using BASIC V2 as a programming language (only 38911 bytes of accessible RAM), I was forced to start thinking about creative ways of coding. Without being aware of the existence of theoretical computer science (and especially: computational complexity) one had to search intuitively for solutions to make algorithms fast. Since the WWW was still in its infancy (and not available for me for the rest of the nineties) I heavily relied on the 64'er magazine as the main information source. Luckily, my father successively gathered all(!) issues that appeared between 1984 to 1996.

  • Thinking retrospectively, working with old fashioned hardware may be the best start to become a C.S. with passion (Nowadays, CALLIOPE, Arduino or Raspberry Pi would be the way to go)

Leveling up: I got my first PC (Pentium II, 64 MiB of RAM, Win98) in November of 1998; at age 12. Besides playing games, I started using Microsoft QBasic and QuickBASIC to implement small games that sometimes looked Snake-like. In 2001, my teacher for computer science introduced C++ to class, which quickly became my favorite programming language. I have to thank him again for all the support and motivation!

  • Good teachers that train computer science at early stages (Junior High School) with enthusiasm are very valuable to become a C.S. with passion!

Advanced non-professional: In the early noughties, at age 16, my dream to not only play, but develop computer games grew exponentially. Reading the book series "3D Spieleprogrammierung mit DirectX in C/C++" of Stefan Zerbst introduced me to hardware-accelerated graphics. After experimenting with 2D graphics (via DirectDraw), I put my main focus on 3D graphics (via Direct3D). Unfortunately, the underlying math was not taught at school. Thus, I had to learn the details of linear algebra, such that terms like linear maps and quaternions stopped for me belonging to a kind of alien language. My main focus was on the creation of 3D engines for indoor games. I experimented with different kinds of partitions of geometry data: starting from Octrees, up to Binary Space Partitioning (BSP). With the objective of fast rendering at runtime, I came across the first Ph.D. thesis I read in my life: Visibility Computations in Densely Occluded Polyhedral Environments from Seth Jared Teller (Berkley) that deals with portal rendering. Some years later, my interest moved towards the aspects of artificial intelligence of games. I particularly focused on fast pathfinding algorithms for real-time strategy games; including all kinds of low-level programming tricks.

  • Do not only play games but try to develop games and try to understand the techniques to become a C.S. with passion!

Slow down yourself: One of the oddest decisions I made in life was to first visit the higher trading school, then to start training as an office worker and finally to work as a full-time office worker. The main reason for this decision was probably not to lose the joy in computer science.

  • Temporarily (for me: 5 years of my life..) put your time to something you do not like. As long as you continue to do what you love in your spare time, it may help you to become a C.S. with passion!

Becoming a professional: After spending years of doing the company's accounting, I finally decided to draw the line and started studying computer science in fall 2009. I got my master's degree in 2015 and continued working at the university to teach students. In 2016, I switched to research.

  • Make your hobby your profession to become a C.S. with passion!

Talk at Conservatoire national des arts et métiers (CNAM) in June

Wednesday, 18 April 2018  #research  #talk

In June, I will give a presentation at the Cologne Twente Workshop 2018 (CTW18) at Université Paris-XIII (France).

  • The audience consists of experts from graph theory and combinatorial optimization (mathematicians and computer scientists), i.e. focus is on theoretical aspects.
  • The talk will be about A Green Energy Grid Coupling Problem (GEGCP): We address the modeling and optimization of the coupling of energy sectors. Given a network infrastructure in the form of a graph $G=(V,E)$ that consists of a priori unconnected components, the objective is to synthesize an optimal set of parameterized energy converting and energy storage devices. This enables cross–sectoral interconnection and facilitates to buffer otherwise wasted volatile energy from renewable sources. Since the underlying problem is polynomially reducible to the Facility Location Problem (FLP), it is NP–hard.
  • We describe the modeling of the system and discuss approximations and context-sensitive heuristics in the talk. We target to allow the computation of large–scale (real–world) problem instances in a reasonable time. We will present a label correcting algorithm and define the class of approximation.

Talk at TH Köln in May

Tuesday, 17 April 2018  #research  #talk

In May, I am going to give a presentation at the 7th International Energy and Sustainability Conference 2018 at TH Köln (Germany).

  • The audience consists of experts from renewable energy, i.e. focus is on practical aspects of my research.
  • The talk will be about a new and holistic web-based Integrated Development Environment (IDE): Real-world objectives and constraints from renewable energy are mapped to a set of formalized problem descriptions that is solvable in a reasonable amount of time. The toolchain based on the Domain-Specific Language (DSL): Cross Energy Management Programming Language (CEMPL).
  • As proof of concept, an extended, but a self-contained, real-world example with a cross-energy application is described and solved. We prove that rather small and declarative programs are sufficient for a varied set of sub-scenarios and simulation results. In particular, we focus on the examination of accumulated super-states for the energy sectors power, gas, and heat, as well as accumulated profiles for load and demand. The underlying physical network is considered to be ideal, i.e. the capacity is infinite. The objective is to dimension interposed energy converters and storages, based on given constraints. Thus, forecasts are made to enable a reliable fulfilment of future demands.

Scientific Writing

Tuesday, 17 April 2018  #writing

On Friday, 13 April, I attended a course about scientific writing (Dr. Vera Leberecht). The top 3 lessons I learned:

  • Don't wait, DO IT! Write at least 3 times a week for half an hour. Create artificial deadlines.
  • Write ideas for a paper/chapter/section on notecards. Write one idea on each card. Sort cards and discuss the order.
  • The "Research Paper Pentagon" The Good Paper: (a) What is my question? (b) What is the gap I want to bridge? (c) Which data is relevant? (d) Which glasses do I put on? (e) How will I proceed step by step?

New Domain

Sunday, 15 April 2018  #news

Just moved from http://www.aschwenk.de to https://www.arts-and-sciences.com to make fun of mapping my name initials to arts and sciences :-)

Photos and Research

Friday, 13 April 2018  #news

Initial versions of "photos" and "research" have been published. Stay tuned!

Website in Development

Sunday, 7 May 2017  #news

This website is under construction!