Skip to main content

ADLER

ADLER extends the GOALS practice platform with SQL tasks for the Database Systems lecture. The SQL concept graph is based on Harvard's CS50 SQL course (CC BY-NC-SA 4.0) and covers three main areas: Querying (SELECT, WHERE, ORDER BY, Aggregate Functions, LIMIT, LIKE, NULL, Range Conditions), Manipulating (INSERT INTO, UPDATE, DELETE FROM, CREATE TABLE), Relating (JOINs) and more within them. As with all concept graphs in GOALS, students navigate their learning path based on the visualized dependencies between SQL concepts.

SQL Concept Graph in GOALS

SQL Tasks

Intro Video for Students

Execution Environment

Each query runs inside a pre-warmed Docker container, ensuring fast response times and full isolation (using gVisor). This architecture also supports Data Manipulation Language (DML) statements (CREATE, INSERT, UPDATE, DELETE), since students can freely modify the database within their container without affecting other users.

SQL Editor

Students write SQL queries in the Monaco Editor with syntax highlighting. The editor also supports context-aware autocompletion based on the database schema of the current task (table names, column names, etc.). However, autocompletion is disabled by default so that students practice looking up the schema themselves, as they would in an exam.

Schema View

Students can view the database schema either as the corresponding CREATE TABLE statements (SQL tab) or as an interactive diagram that shows tables, columns, data types, primary keys, and foreign key relationships (Diagramm tab).

SQL Task with Schema Diagram and Tutor-Kai Feedback

Automated Assessment

Result Table Comparison

For each task, educators provide a reference solution. When students submit their query, the system compares the resulting table against the reference solution. By default, the comparison ignores the order of both columns and rows. For ORDER BY tasks, educators can configure the system to enforce row order. After submission, students see both their own result and the expected result side by side in a comparison view.

Result Table Comparison for a SELECT Task

SQL Concept Verification

The reference solution is analyzed with Tree-sitter to identify the SQL concepts it contains. Educators can then select which of these concepts must appear in the student's query, for example when the task description explicitly requires a specific SQL construct. After submission, missing required concepts are highlighted to the student (e.g., "Required elements: 0/1 found", "DISTINCT").

DML Task Assessment

For DML tasks, educators additionally provide a SELECT statement that runs after the student's query. This verification query checks whether the database was modified as expected. The result is then compared against the expected outcome using the same table comparison.

DML Task: Comparing Database State After an UPDATE

Tutor-Kai Feedback

SQL tasks are fully integrated with Tutor-Kai. Students receive the four established feedback components:

  1. Find Problems (Probleme finden): Describes the student's mistakes in the SQL query, referencing the task requirements.
  2. Explanations and Examples (Erklärungen und Beispiele): Explains relevant SQL concepts with generic code examples and links to lecture video recordings via the RAG pipeline.
  3. Next Step Hint (Hinweis zum nächsten Schritt): Provides an actionable next step toward correcting the mistake without giving the solution.
  4. Strategic Approach (Strategische Vorgehensweise): Outlines a general, step-by-step strategy for solving similar SQL tasks.

Students can ask follow-up questions about any individual feedback component, opening a context-aware chat for deeper exploration of the topic.

Follow-Up Question on the Explanations and Examples Feedback

What Comes Next

We are currently working on extending ADLER with additional task types for the Database Systems lecture:

  • Database Modeling Tasks
  • Relational Algebra Tasks
  • B and B* Tree Tasks