With the abrupt nationwide lockdown caused by the COVID-19 pandemic, many universities suspended face-to-face activities. Some of them decided to continue their academic courses, adapting traditional approaches to online learning. An important challenge was to deliver programming labs over the Internet without important methodological changes, which might imply modifications of the learning outcomes. Most of the existing approaches to remote programming labs are based on asynchronous learning, where students work autonomously and contact the lecturers if they have any issues. The existing systems to provide synchronous programming labs are restricted to a single programming language or application type, and show significant interaction limitations. Therefore, we defined an infrastructure that allowed us to deliver synchronous programming labs over the Internet during the COVID-19 lockdown, as we used to do face-to-face. After using it for both programming labs and exams, students showed a high level of satisfaction. Compared to previous years, the use of our system produced no statistically significant difference in student’s grades, pass and fail rates, or the number of students taking the lab exam. The network bandwidth, CPU, and memory resources consumed are sufficiently low to have allowed all the students to use it without any issues. Regardless of the pedagogical and methodological approach selected, our infrastructure provides the synchronous and remote delivery of programming labs, similar to the original face-to-face approach. Its features make it appropriate to deliver synchronous remote classes where strong lecturer-student interaction is required, and all the student work can be done with their computers.