Contact

Prof. Dr. Claus Möbus

Room: A02 2-226

Tel: +49 441 / 798-2900

claus.moebus@uol.de 

-------------------------------------------

Secretary

Manuela Wüstefeld

Room: A02 2-228

Tel: +49 441 / 798-4520

manuela.wuestefeld@uol.de 

-------------------------------------------

Projects

Course Offerings

We offered two seminars "Probabilistic Modeling I (Inf 533) / II (534)"

Seminar Probabilistic Modeling I (Inf 533) / II (Inf 534)

The seminar consisted of two parts, which took place in the winter semester (Part I) and in the summer semester (Part II).
In Part I we dealt with the state-of-the-art (SoA) in probabilistic modeling using probabilistic programming languages (as an example the DSL WebPPL) in cognition (perception, problem solving, evaluation, decision making) and behavioral control of predominantly natural agents.
Part II dealt with probabilistic modeling in technical, epidemiological and ecological contexts.We also considered the SoA in the development of new probabilistic modeling languages (e.g. PyRo, TURING, Greta, PyMC3).
This division of the contents adapted to the students' previous knowledge and wishes.
The successful participation in both seminars could be combined in such a way that it corresponded to a lecture module.

-----------------------------------------------------------------------------------------

This is all draft for personal use; comments, bug reports, or proposals are welcome:

claus.moebus(at)uol.de

-----------------------------------------------------------------------------------------

 

Transpilation of SICP: From MIT/GNU-Scheme to Julia/Pluto.jl

- The Diary of a Dev -

"Structure and Interpretation of Computer Programs (SICP) is a computer science textbook by Massachusetts Institute of Technology professors Harold Abelson and Gerald Jay Sussman with Julie Sussman. It is known as the Wizard Book in hacker culture.[1][2] It teaches fundamental principles of computer programming, including recursion, abstraction, modularity, and programming language  design and implementation." (Wikipedia, 2021/09/15)

SICP-scripts are written in MIT-SCHEME invented in the 90ies at the MIT AI Lab. Scheme is a minimalist dialect of the Lisp family of programming languages. JULIA was also but nearly 30 years later invented at the very same MIT. This happened 2009 not at the MIT AI Lab but at MIT's Computer Science and AI Laboratory (CSAIL). Here we present transpilations into JULIA within a Pluto.jl-embedding.

  1. Building Abstractions with Procedures
    1. The Elements of Programming
      1. Expressions
      2. Naming and the Environment
      3. Evaluating Combinations
      4. Compound Procedures
      5. The Substitution Model for Procedure Application
      6. Conditional Expressions and Predicates
      7. Example: Square Roots by Newton's Method
      8. Procedures as Black-Box Abstractions
    2. Procedures and the Processes They Generate
      1. Linear Recursion and Iteration
      2. Tree Recursion
      3. Orders of Growth
      4. Exponentiation
      5. Greatest Common Divisors
      6. Example: Testing for Primality
    3. Formulating Abstractions with Higher-Order Procedures
      1. Procedures as Arguments
      2. Constructing Procedures Using Lambda
      3. Procedures as General Methods
      4. Procedures as Returned Values
  2. Building Abstractions with Data
    1. Introduction to Data Abstractions
      1. Example: Arithmetic Operations for Rational Numbers
      2. Abstraction Barriers
      3. What is Meant by Data ?
      4. Extended Exercise: Interval Arithmetic
    2. Hierarchical Data and the Closure Property
      1. Representing Sequences
      2. Hierarchical Structures
      3. Sequences as Conventional Interfaces
      4. Example: A Picture Language
    3. Symbolic Data
      1. Quotation
      2. Example: Symbolic Differentiation
      3. Example: Representing Sets
      4. Example: Huffman Encoding Trees
    4. Multiple Representations for Abstract Data
      1. Representations for Complex Numbers
      2. Tagged Data
      3. Data-directed Programming and Additivity
    5. Systems with Generic Operations
      1. Generic Arithmetic Operations
      2. Combining Data of different Types
      3. Example: Symbolic Algebra

-----------------------------------------------------------------------------------------

This is all draft for personal use; comments, bug reports, or proposals are welcome:

claus.moebus(at)uol.de

-----------------------------------------------------------------------------------------

Transpilation of SDFF: From MIT/GNU-Scheme first to Racket/Scheme and then to Julia/Pluto.jl

Hanson, Ch. & Sussman, G.J.; Software Design For Flexibility: How To Avoid Programming Yourself into a Corner, MIT Press, 2021

The authors try to motivate devs to use an additive style in designing software. All programs in the book are written in MIT/GNU-Scheme – a highly flexible language -.  The authors argue that the presentation and explanation of programming ideas is more concise in Scheme than in more popular languages (SDFF, 2021, p.xvi). Our hypothesis is that Julia being more popular than Scheme offers the same or even more conciseness. We try to transpile the MIT/GNU-Scheme programs first intoRACKET/Scheme and then into JULIA/PLUTO.jl. The first transpilation is made because Racket is more accessible than MIT/GNU-Scheme and the second because Julia is a modern language especially aimed at scientific programming. PLUTO is a reactive notebook offering a fantastic platform for development and documentation of Julia programs.

This experiment has two aims. The first is rather selfish. We want to improve our competence in Racket, Scheme and Julia. The second is centered at our hypothesis, whether Julia is sufficiently usable, flexible, expressible, and concise to follow all ideas of Hanson and Sussman expressed in their book SDFF.

-----------------------------------------------------------------------------------------

This is all draft for personal use; comments, bug reports, or proposals are welcome:

claus.moebus(at)uol.de

-----------------------------------------------------------------------------------------

Machine Learning with Julia/Pluto.jl

1 Mathematical Background

1.1 Infinite Series

01 Geometric Sequence

02 Harmonic Series

03 Binomial Series

2 Stochastic Background

10 Boltzmann's and Shannon's Entropy

3 Machine Learning

3.1 Classification

20 Linear Binary Classifier

-----------------------------------------------------------------------------------------

This is all draft for personal use; comments, bug reports, or proposals are welcome:

claus.moebus(at)uol.de

-----------------------------------------------------------------------------------------

(Changed: 2022-05-31)