Completed: / exercises

About Lovelace

Lovelace is a learning environment created at the University of Oulu for programming and associated sciences. It was created to answer the need for programming education that scales up to large number of students with limited teaching resources. Its primary purpose is to offer tools for creating meaningful exercises that are automatically evaluated by the system. Embedding these exercises into material pages is the main mode of delivery for Lovelace courses as it creates an uninterrupted flow where students can get a confirmation of learning the previous topics before moving on to next ones.
The most important task type in Lovelace is the automatically evaluated programming exercise. These tasks are checked in backend servers, and can be almost anything that runs on Linux command line and is able to output a checking report in the JSON format that Lovelace understands. This report is then rendered into rich feedback with the option to also trigger different hint mechanisms like highlighting parts of the assignment text or pulling up an FAQ answer that is relevant.
Backends are also used for routine exercises that are template-based question generators, generally used for tasks that build programming routine by asking narrow questions. This mechanism also lends itself to phased exercises where the student answers a series of questions that build on each other.
Other tasks types have a supporting role in programming courses. These include basic task types like multiple choice and regular expression based text input tasks. Lovelace also has its own exam task type that allows generating exams from a pool of questions for the entire class or for individual students. All task types have different evaluation options from immediate automatic evaluation to elaborate manual evaluation using built-in evaluation form tools.
Lovelace is developed by and in collaboration with the teachers who use it. All the additions and improvements made to the system are always targeted for real use cases and support teachers in their work both for creating more meaningful learning materials, and for managing students. We have a commitment to free and open education. Courses in Lovelace are viewable by anyone without creating an account by default. Content is also easily shareable between Lovelace installations with the export-import feature.
In the spirit of openness, Lovelace is built using open source technologies. The main server backend is created with Python 3 and Django. Communication with the backends is handled by Celery using RabbitMQ as the default message broker and Redis for storing results. Lovelace installations can be managed with Ansible scripts.
Original Developer: Miikka Salminen
Current Developer(s): Mika Oja
License: UIUC

About This Lovelace Instance

This Lovelace instance is owned and maintained by the Department of Information Technology and Electrical Engineering at the University of Oulu. Courses in the platform are primarily part of the Computer Science and Engineering degree program but some also belong to other degree programs like Electrical Engineering. Some courses in the platform are also offered to students outside the University via Open University admissions, and the national continuous education program FiTech.
Links to relevant Computer Science and Engineering programs:
Links to portals where you can register for courses from outside the University