About Thesis

  • Student: Matúš Gál
  • Supervisor: Ing. František Gyarfaš, CSc.
  • Department: FMFI.KAI - Department of Applied Informatics

  • Title: Web teaching tool for agile learning new features in C++11, C++14 and C++17

  • Annotation: The aim of the bachelor thesis is to design and implement an interactive web environment for learning selected new language features in C++11, C++14 and C++17 using agile methods like test driven programming and refactoring. Web application will allow to create exercises that will guide students in refactoring existing code written in old C++ into new code with new language features. The application will provide a web programming environment. Generated code along with tests will run in virtual environment on server and the test results will be presented to the user. The part of the system will be a catalogue of agile exercises. The application will include basic system administration tools: users administration, management of exercises and their results, and source code version control. The system will be implemented using technologies/tools: JavaScript (jQuery, Bootstrap), MySQL, HTML5, CSS, C++ compiler, unit testing library, virtual server.





Created this web page


Collecting resources (books, similar theses, ...), created timeline


Writing short part of thesis (cca 10 pages long), start working on user interface


Create sandbox on virtual server and first working prototype


Working on and finishing the server side of the application


Finish user interferace, finish frontend development. Create test tasks for students.


Finish writing main part of the thesis


Final testing and handing out the thesis



Langr, J.,Swaine, M. (2013). Modern C programming with test-driven development: Code better, sleep better. Dallas, TX: The Pragmatic Bookshelf.

Beck, K. (2002). Test Driven Development: By Example. Addison-Wesley Professional.

Fowler, M. (2004). Refactoring Improving the Design of Existing Code.Grada

Robert C. Martin(2008). Clean Code: A Handbook of Agile Software Craftsmanship.

Robinson,T (2017). Building Virtual Machine Labs: A Hands-On Guide

Kusnetzky,D (2014)Virtualization: A Manager's Guide: Big Picture of the Who, What, and Where of Virtualization

Documentations, manuals

Django documentation

Learn C++

Similar theses

Tamara Savkova: Web Teaching Tool for Learning Agile Programming, 2018

Tomáš Bočinec: Webová výuka programovania pomocou metodológie TDD, 2017

Viliam Vakerman: Webová výuka programovania v C++ pomocou jednotkového testovania, 2017

Existing solutions




Available for download


  • Week 1:Basic Web Page Structure
  • Week 2:User Login and Registration
  • Week 3:Extending the Web Page Base Theme
  • Week 4:Backend: Model and Serializer Creation
  • Week 5:Created Rest API Endpoints
  • Week 6:Course and Exercise Creation Pages
  • Week 7:Course and Exercise Edit Pages
  • Week 8:Online Code Editor Environment
  • Week 9:Improved Error Handling
  • Week 10:Backend Code Execution
  • Week 11:Course/Exercise Drag & Drop, Input Validation
  • Week 12:QOL Changes, Minor Fixes


About Me

  • Name: Matúš Gál
  • Department: FMFI.KAI - Department of Applied Informatics
  • Email: gal39@uniba.sk