Towards a Generic Model for Classifying Software into Correctness Levels and its Application to SQL

by Benard Wanjiru, Patrick van Bommel, and Djoerd Hiemstra

Automated grading systems can save a lot of time when carrying our grading of software exercises. In this paper, we present our ongoing work on a generic model for generating software correctness levels. These correctness levels enable partial grades of students’ software exercises. The generic model can be used as a foundation for correctness of SQL queries and can be generalized to different programming languages.

To be presented at the SEENG 2023 Workshop on Software Engineering for the Next Generation of the 45th International Conference on Software Engineering on Tuesday 16 May in Melbourne, Australia.

[download pdf]

Guest lecture by Hannes Mühleisen

We are proud to announce that Hannes Mühleisen will give a guest lecture on Tuesday 13 December at 13:30h. in LIN-2 for the course Information Modelling and Databases. Hannes Mühleisen is the creator of DuckDB and co-founder and CEO of DuckDB Labs. He is also a senior researcher of the Database Architectures group at the Centrum Wiskunde & Informatica (CWI) in Amsterdam. Students of the course use DuckDB to practice their SQL skills.

Analytical Query Processing and the DuckDB System

by Hannes Mühleisen

DBMSs have historically been created to support transactional (OLTP) workloads. However, a second use case, analytical data analysis (OLAP), quickly appeared. These workloads are characterised by complex, relatively long-running queries that process significant portions of the stored dataset, for example aggregations over entire tables or joins between several large tables. Its rather impossible for an OLTP-focused DBMS to perform well in OLAP scenarios, which is why specialised systems have been developed. In this lecture, I will introduce analytical query processing, give an overview over the state of the art in research and industry, and describe our own analytical DBMS, DuckDB.

PhD vacancy for software correctness

We’re hiring a PhD Candidate for Software Correctness. The work will target the correctness of high-level programming languages that are “only” strings in your host language, such as SQL and regular expressions.

Software has shaped almost every aspect of our modern lives. Ensuring that software is correct, is both a major scientific challenge and an enterprise with enormous social relevance. Would you like to examine possibilities to introduce a theory for correctness levels for software? Then you have a part to play as a PhD Candidate.

The correctness of software is of major importance in computer science. Unfortunately, the significance of software correctness is not always clear. Furthermore, the automatic checking of software correctness is difficult. This leads to problems during system development projects and during the grading of software exercises.

This PhD candidate position is intended for four years. You understand the importance of correct software and know how to work with several meanings of software correctness. Your goal is to introduce a generic and formal theory of software correctness levels, in which partially correct/incorrect software can be handled in a flexible way.

You will put the generic theory into practice, by experimenting with automatic grading of software exercises in the context of our courses. One application will be dealing with automatic grading of SQL statements. You will be supervised by Patrick van Bommel and Djoerd Hiemstra. Profile:

  • You are an enthusiastic and motivated researcher.
  • You should have a Master’s degree in computer science, or a Master’s degree in mathematics and a demonstrable interest in computer science.

[Apply On-line]

(Deadline: 6 March 2022)

Welcome to Databases

Welcome to IM&DB Part B, Databases. We will resume Monday 2 November with online pre-recorded lectures and the Live Session on Zoom at 15:30h. The Databases part contains mandatory, individual quizzes, for which the following rules apply:

  • You do not share the solutions;
  • The solutions to the quizzes should be your own work;
  • You do not post the quizzes, nor the solutions anywhere online;
  • You are allowed, and encouraged, to discuss the quizzes, and to ask clarifying questions to your fellow students; Please use the Brightspace Discussion Forum to reach out to your fellow students.

Wishing you a fruitful Part B!
Best wishes,  Djoerd Hiemstra

Guest lecture by Arjen de Vries

Tuesday 17 December 8:30h. in SP-2, prof. Arjen de Vries will give a guest lecture on column-oriented relational database management systems (DBMS). A column-oriented DBMS (or column store) is a DBMS that physically stores tables by column rather than by row. In previous lectures we have been mostly concerned with Online Transaction Processing (OLTP) workloads, with lots of small inserts and lots of queries over parts of the data. Column stores, however, are well-suited for Online Analytical Processing (OLAP) workloads which involve complex analytical queries over all data.

Attendance to this lecture is highly recommended.

Honor Code Databases

Welcome to the Databases part of the course. We will resume Tuesday 5 November with the introduction lecture in SP 2 at 8:30h. The Databases part contains individual quizzes (that are mandatory) and assignments (that are optional, but give a bonus for the end grade), for which the following rules apply:

  • You do not share the solutions of the quizzes and assignments;
  • The solutions to the quizzes and assignments should be your own work;
  • You do not post the assignments, nor the solutions anywhere online;
  • You are allowed, and encouraged, to discuss the quizzes and assignments, and to ask clarifying questions to your fellow students; Please use the Brightspace Discussion Forum to reach out to your fellow students.

Welcome to Information Modelling and Databases

We are excited to announce a new course setup for the topics Information Modeling and Databases that will be combined this year into a single new course. We will consider design practices and tools that are relevant for the entire software system’s life cycle. We will study how to accurately model a system by understanding the domain under consideration, to specify the boundaries of the domain, to identify the relevant concepts in the domain and their relationships, and to specify the rules or constraints of the behaviour of those concepts. We will use relational database technology — one of the most successful inventions in computer science — to implement the data part of our model. Relational databases are great tools for storing large amounts of data persistently, and they allow efficient, safe, multi-user access to that data. We will study SQL to formulate and answer complex questions on the data in a declarative way. The course consists of lectures and practical assignments. More information will be published shortly on Brightspace.

Wishing you a fruitful, interesting course,
Patrick van Bommel and Djoerd Hiemstra.

Databases: Last chance


This year, students can pass our course “Gegevensbanken” (Dutch for “Databases”) by following the massive open online course DB 2014 from Stanford University

In 2013/2014 we offered our course “Gegevensbanken” (Dutch for Databases) for the last time. From this year on, students will study Databases as part of the module Data and Information. We advise students that failed the course last year, and that do not want to enroll in the Twente Educational Model (TOM: Twents Onderwijs Model), to follow the excellent Stanford DB 2014 massive open on-line course (MOOC) by Jenifer Widom.

The course takes the following 8 lectures (mini courses) from the full Stanford Database class. Students should finish roughly one mini course each week in Quarter 1.

  1. Introduction and Relational Databases
  2. Relational Algebra
  3. SQL
  4. Relational Design Theory
  5. Unified Modeling Language (UML)
  6. Indexes and Transactions
  7. Constraints and Triggers
  8. Views and Authorization

Students that submit their Statements of Accomplishment via Blackboard for each mini course (except the Introduction mini course) will get 0.2 bonus grade point per Statement, 1.5 bonus grade points if all Statements of Accomplishment are submitted. There are two exams for “Gegevensbanken”:

  1. 30 October, 13.45 h. – 16.45 h.
  2. 30 January, 8.45 h. – 11.45 h. (resit)

Students that fail both exams can enroll in the new Twente Educational Model bachelor module “Data & Information” which takes place in Quarter 4.