Otto Visser
Teacher at the Distributed Systems Group of the Faculty of Engineering, Mathematics and Computer Science (EEMCS/EWI), Delft University of Technology.
Educational Innovation Projects
There is a number of projects that fall under my Educational Innovation Projects umbrella. Not all projects are equally well known and not all projects are up & running. Part of these projects are my own development, part of these projects are the work of our students; for those projects I either took over maintenance and responsibility or I'm just there to give some advise. The table below tries to give a short overview of some of the current projects:
Name | Status | Short description | URL |
---|---|---|---|
CPM | active use | Lab and project overview/grading tool | |
Queue | active use | Queue system for efficient handling of large labs with many students and assistants | |
Game OS | active use | OS written in assembly; used as a basis for games written in an assembly lab | |
DevHub | active use | A GitLab designed for educational usage | |
BEPSys | active use | A marketplace for bachelor projects for computer science students | |
TA-Matcher | beta phase | A system for teachers to find assistants for their courses | |
Groups | beta phase | A tool to help students form groups | |
Lab VM | active use | A Linux VM for use during labs |
CPM
CPM has already been around for quite a few years but is still heavily used for administrating and grading of various labs. It is actively maintained and well tested.
For adding a course or bugs & feature requests: mail me.
Queue
The amount of students has been increasing over the past few years and this has led to various issues in assisting labs. Labs are spread over multiple rooms and it becomes increasingly difficult to synchronise students and assistants. We have used a Google form to organise this for a while, but we would like to move away from this for various reasons. One is privacy and the other is that Google forms does not allow the load of more then 150 students trying to enqueue at the same time.
For more info or bug reports: mail me.
Game OS
Writing a game in assembly is quite the challenge. Even more so if you need to work within the boundaries of your operating system. This Game OS is developed to help first year students write games in assembly without having to worry about multi tasking, display sizes, keyboard focus, security limitations on using video hardware, etc, etc. It provides a simple and easy to use API to do the most common tasks for writing games, like handling the keyboard and providing a timer but at the same time does not stop the user from going beyond this and interacting with (virtualized) hardware directly. Over the past few years we have seen roughly 10 games developed with the use of this OS. The link to the OS is a fork of the actual OS which is not publicly visible; this fork for students for instance does not have a working printf() as that is part of the lab work they have to do.
For more info or bug reports: mail me.
DevHub
DevHub is a software system designed to give students a simple practical introduction into modern software development. It provides an environment in which they can work on practical assignments without setting up their own (private) code repository or a Continuous Integration server. The environment is also designed to give students a working simple workflow largely based on GitHub's pull requests system.
For more info or bug reports: go to GitHub
BEPSys
A marketplace for computer science bachelor projects; started as a bachelor project itself.
For more info or bug reports: mail me.
TA-Matching Tool
Teaching staff can post their open positions and students can browse these, but also give feedback to TA's they have encountered during classes.
For more info or bug reports: mail me.
Groups
A system designed to help students with group forming. This turns out to be rather tricky for especially freshmen and could help them to integrate easier into the society here and find more suitable lab partners for instance.
For more info or bug reports: mail me.
Lab VM
Not all students are running Linux on their laptops or at home, but for many labs this is a requirement. The amount of available Linux computers on the Drebbelweg is quite limited, so running a Linux VM is a simple solution. It turned out that there were actually multiple courses providing such a VM and this Lab VM tries to unify all of them. It contains all the software needed for all the labs that use Linux.
Download the 2017-2018 VM here:
VirtualBox to run this VM can be downloaded from https://www.virtualbox.org/wiki/Downloads. For users with a new HP from TU Delft and some other new laptops: go into your BIOS and enable virtualization; otherwise VirtualBox will not be able to start the image.
The password for the user is "pwd".
For more info, missing packages or bug reports: mail me.
Teaching
CSE1400 Computer Organisation
Topics include: the architecture, the structure, the operation and the interconnection of computer components into computer systems, including modern architectures, data representation, assembler programming, virtual machines, the structure of translators, compiling and loading, basic operating systems concepts (I/O, interrupt handling, process).
TI2726-C Operating Systems
Function and structure of Operating Systems; Processes and threads, interprocess communication; The various algorithms for CPU scheduling and their properties; Process synchronisation, with notions such as critical section and mutual exclusion and mechanisms for these; Methods for deadlock avoidance, detection, and solution; Memory management techniques, paging and segmentation; File Systems, name and directory structures, allocation mechanisms, RAID systems; Protection, Access Matrix model, authentication, safety classification. Concepts and principles that are in general valid for any operating system are treated, and specific systems such as Linux are used as illustrations.
TI3806 Bachelor End Project
The final thesis project for the bachelor.

Ir. O.W. Visser
Visiting Address
Building 28
Room: 2.E.300 (West 2nd floor)
Van Mourik Broekmanweg 6
2628 XE Delft
The Netherlands
Mailing Address
EEMCS, Distributed Systems
P.O. Box 5031, 2600 GA Delft
The Netherlands