20140416_0430a

The TU Delft Software Language Design and Engineering group at group meeting in April 2014.

(Elmer van Chastelet is missing in the photo.)

20140416_0404e

The TU Delft Software Engineering Research Group in April 2014 group meeting

dick kieburtz

This portrait was taken on August 15, 2015 in Seattle where we were attending FLoC 2006. The caption on flickr reads:

Desert and coffee at copacabana cafe on Pike Place Market with Dick Kieburtz who is one of the earliest users of Stratego. He's been working on a theorem prover for P logic, which is used for asserting properties of Haskell programs.

wim

We held a memorial service for my father on February 8, 2014 at the International School of Philosophy in Amersfoort.

More pictures

WebLab is a web-based learning management system with a focus on programming education.

Traditional programming education has a long feedback cycle with students making assignments in the lab and teaching assistants manually grading (sometimes still on paper) submitted assignments. In addition, the approach requires installation of programming environments on lab machines and/or a wide variety of student's own computers. Finally, exams are typically conducted on paper, making it hard to test programming skills and insight, and again making for a large grading effort.

WebLab provides an all-in-one environment for programming courses. The application is provided as a web service that can be used by instructors and students at any computer with an internet connection.

Students read assignments and write programming solutions directly in the application. Submitted programs are compiled and executed immediately on the server. Solutions are checked for correctness using unit tests, which are reported directly to students. Instructors use the same environment as students to design the course set-up and develop and test assignments. In addition, WebLab supports instructors to do all course administration. Thus, WebLab completely avoids the problem of installing programming environments. By adding support for a programming language to WebLab once, it can be used in all courses by all students.

Besides the web front-end for realizing programming in the browser, an important problem we had to address in the design of the WebLab is the secure execution of student programs. Executing arbitrary user-generated code on a server is what regular web applications try to avoid at all costs, since it allows users to disrupt the service or steal data. We designed a sandboxed environment in which programs in a variety of languages (currently Scala, C, JavaScript, and Java) do not have access to the host machine or each other, yet can be executed rapidly and for many students simultaneously.

WebLab assignments can be used during scheduled lab sessions, so that teaching assistants can focus on explaining rather than checking solutions. WebLab can also be used to administer computer-based programming exams. For that purpose, students need to sign in to the exam using a personalized key that is handed out on paper during the exam to verify physical presence in the examination room. Using unit-testing based grading, exam grades can be published on the day of the exam.

WebLab is not custom designed for a single course. It supports flexible design of a course with a tree structured assignment structure with flexible grading schemes for each node in the tree.

The course was first developed for a course on Concepts of Programming languages in the Computer Science bachelor at TU Delft, which is starting its third year of usage. It is also being used by two programming languages courses at TU Darmstadt. In Q3 of 2013-2014 it will be used by two more courses in the TU Delft Computer Science bachelor program.

WebLab was first developed by Eelco Visser and Vlad Vergu.