Different software projects

See also the projects at the git-servers https://github.com/MartinSteffen and https://github.uio.no/msteffen.

  • Static analysis projects: Various prototype implementations mainly used for teaching, in particular also a very simple ``monotone framework'' implementation, accompagnying the lecture INF5906/inf9906 on selected topics in static analysis. The ``sub-repository'' for that lecture (basically an orphaned branch of the larger one) can be found here.
  • Gotcha: ``Go Taint Check Analysis''. Software developed within the ``GoRETech''-project (Go runtime enforcement techniques), mainly as part of the Master Thesis by A.-K. Wickert, and also described in accompagnying publications.
  • ``Tiger''-compiler: An ocaml-version of the compiler design described in the ``Tiger''-book "Modern Compiler Construction" by Andrew Appel. See the git repository.

Software developed during project work in software engineering courses

In Kiel, I was doing a number of software projects (Projektpraktikum) Programming-in-the-many, an 8h per week collaborative course, simulating software engineering practice. In those courses, I was providing and defining the general set-up, each semester specifying a different project (often together with colleagues) and, besides being the lecturer, I was playing the role of ``project manager'' (supervising the progress) and ``customer'', explaining what features are wished in the project.

To get the ball running quickly at the beginning of a semester, and to have a common ground to stand on for the students, I was providing skeletal code and important central data structure to start with (plus the repository and software set-up etc.). In most cases, the central data structure was the abstract syntax for the tool being developed, plus pretty printer for debugging and potentially a simple parser. Thus, besides the above roles, I also played the role as ``project participant'', responsible for some modules (like the abstract syntax) of the project during the semester.

For more courses involving smaller programming projects resp. with less hours, see the general teaching overview. On the git server, there are also sources of smaller software project in less advanced courses.

Author: Martin Steffen

Created: 2017-10-08 Sun 08:23