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:

 

Educational Innovation Projects overview

Name

Status

Short description

URL

CPM

active use

Lab and project overview/grading tool

https://cpm.ewi.tudelft.nl

Queue

active use

Queue system for efficient handling of large labs with many students and assistants

https://queue.ewi.tudelft.nl

Game OS

active use

OS written in assembly; used as a basis for games written in an assembly lab

https://github.com/thegeman/gamelib-x64

DevHub

active use

A GitLab designed for educational usage

https://devhub.ewi.tudelft.nl

BEPSys

active use

A marketplace for bachelor projects for computer science students

https://bepsys.ewi.tudelft.nl

TA-Matcher

beta phase

A system for teachers to find assistants for their courses

https://sa.ewi.tudelft.nl/web

Groups

beta phase

A tool to help students form groups

https://groups.ewi.tudelft.nl

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:

magnet:?xt=urn:btih:8d2b3ed7582c54bdd06ea00d657318a43412ce7b&dn=TUD-TI-2017-2018-Q1.ova&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337

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.