CodeLab, programming for everyone

23 March, 2023
Foto de Desola Lanre-Ologun en Unsplash

CodeLab is a tool created by the UOC to help people start learning programming through ongoing practice with support from teaching staff. It offers a hands-on laboratory work environment that includes a learning plan for students.

Programming: a useful tool for a large number of professional profiles

Programming is no longer a tool exclusively for programmers. Other jobs not traditionally associated with digital technologies have taken the plunge, meaning that programming is now a tool available to everyone. The goal is for everyone, and not just those with a background in engineering, to gain access to computational thinking, algorithms and programming languages. For example, a designer can create generative graphics by programming with Processing or with P5.js.

In fact, there is a huge range of profiles that could witness great changes in their professional practice through programming. From efficiency enhancements achieved by using programming to automate time-consuming, repetitive everyday tasks to producing creations, reports or data analyses of their area of knowledge. The issue is that programming has a very steep initial learning curve, which may put off those who have not previously studied science or engineering.

CodeLab is a programming learning ecosystem

CodeLab‘s mission is to smooth off this learning curve and make things easier for any student wishing to learn how to programme, particularly those following bachelor’s degree programmes unrelated to computer engineering. The UOC has created this tool and it is already being used in the Programming for Design and the Arts course of its Bachelor’s Degree in Digital Design and Creation, and the Web Programming course of its Bachelor’s Degree in Multimedia.

This CodeLab tool is an online learning laboratory, a small ecosystem in which students can find a collection of exercises to practice with and an integrated programming environment for them to write their code and see the results of its execution. Additionally, it features a communication tool to talk to fellow lab students and teaching staff and go over doubts in context. For their part, members of teaching staff can use the same environment to monitor students’ progress by means of a control panel and see, at first hand, the exercises programmed by students.


CodeLab facilitates teaching and learning processes for programming

  • Helping with learning:
  1. Students benefit from an integrated learning laboratory, with no need to install any programming environment in their own computers.
  2. Access to a collection of exercises organized into learning challenges or pathways.
  3. You can complete an exercise and immediately see the results of your programming efforts, with no need to execute code via an interpreter or to compile it.
  4. When a student has a doubt, they can talk with their fellow students or a member of teaching staff in the lab itself. 
  • Benefits for the teaching process:
  1. Teaching staff can see, at a glance, the progress of the tasks carried out by all the students in their classroom.
  2. If a student has a query, the teaching staff can easily see the student’s code, understand the issue and guide them in their learning process.

CodeLab’s development was led by the UOC’s Faculty of Computer Science, Multimedia and Telecommunications and managed by the eLearning Innovation Center (eLinC). CodeLab’s design followed an iterative, user-centred approach. Its development brings together both proprietary and third-party components, such as Mattermost for communication and the p5.js library and GitLab as its code repository. What’s more, CodeLab is connected to the UOC’s Virtual Campus via LTI.

If you’d like more information on the project, head over to the CodeLab website at

(Visited 129 times, 1 visits today)
About the authors
Roger Griset is an innovation project manager at the UOC's eLearning Innovation Center. He holds a degree in Library and Information Science from the UB and a master's degree in eLearning from the UOC. During his professional career at the UOC he has worked in the audiovisual and learning resources groups, and in the areas of digital library and educational technology.
Associate Professor of Interaction Design and Creative Programming at the UOC. Director of the Master's Degree in Interaction Design and User Experience (UX). Researcher in Human-Computer Interaction, Media Art and Technology-Enhanced Learning. Author of several research articles in national and international conferences and journals. He is part of the research group DARTS (Design, Arts, Technoscience and Society).