[en] The objective of this Bachelor Thesis is to develop a web application for the autonomous learning of the C programming language. The application gives detailed information to the teacher about the learning process, so as to improve the course's contents between successive editions. The application could be very useful for the programming subjects of the degrees of the Escuela Politécnica Superior of the UAM. Moreover, it can be easily adapted to other programming languages such as Java or Android. There exist many web sites for the autonomous learning of natural languages such as English, but with respect to programming languages, these sites are relatively few. Lately, some new initiatives such as codecademy and codeschool have emerged. Most of them offer programming courses for markup languages such as HTML or interpreted programming languages such as JavaScript, which allow the student to check her code very quickly and without the setting of any development environment. In this work, this idea is applied to compiled languages such as C. One of the objectives of this work, apart from the educational, is the development from scratch of a simple but professional web application. A considerable effort has been made for this document to help in future similar developments. On the one hand, the various phases in the development of a software product have been explained, making use of the knowledge acquired during the degree. On the other hand, this knowledge has been applied to a concrete development environment, called Laravel, an elegant and simple PHP framework, greatly influenced by Ruby on Rails and ASP .NET.

[es] El objetivo de este TFG es el desarrollo de una aplicación web para el aprendizaje autónomo del lenguaje de programación C. La aplicación proporciona información detallada al profesor sobre el proceso de aprendizaje, permitiendo así mejorar el contenido del curso entre ediciones sucesivas. La aplicación podría llegar a ser de mucha utilidad para las asignaturas de programación de los grados de la Escuela Politécnica Superior de la UAM. Además, se puede adaptar con facilidad a otros lenguajes de programación como Java o Android. Existen muchos sitios web de aprendizaje autónomo para lenguajes naturales como el inglés, pero en el caso de los lenguajes de programación, estos son relativamente escasos. Actualmente, han surgido nuevas iniciativas que están teniendo mucho éxito como codecademy o codeschool. La mayoría ofrecen cursos de lenguajes de marcado como HTML o lenguajes interpretados como JavaScript, que permiten al estudiante probar su código rápidamente y sin instalar ningún entorno de desarrollo. En este trabajo, se extiende esta idea a los lenguajes compilados como C. Uno de los objetivos del trabajo, además del educativo, ha sido el desarrollo desde cero de una aplicación web sencilla pero profesional. Se ha hecho un esfuerzo didáctico para que este documento sirva para futuros desarrollos web similares. Por un lado, se explican las distintas actividades de desarrollo de un producto software, haciendo uso de los conocimientos adquiridos a lo largo de la carrera. Por otro lado, se aplican estos conocimientos en un entorno de desarrollo en concreto, llamado Laravel, un framework para implementar código PHP de forma simple y elegante, con una gran influencia de otros como Ruby on Rails y ASP .NET.