Teaching Qt/C++

In less than a week, the summer-term at the Vienna University of Technology starts. And as last term, I will be tutor for a course about Software Engineering & Project Managment.

In this course, students should learn how to create a bigger piece of software in teamwork, in all its facets, e.g. project managment, coding, testing, documentation. Normally the software is written in Java, as this is the programming language that they learn from their first term onwards.

Additionally to the Java mainstream variant, there was a variant where the code had to be written in C++. I took this course around 2 years ago and while it was more technical than the Java course, I learned a lot and it also brought me into starting FOSS development. As the person organizing the course stepped back from organisation and the institute was looking for new tutors, two colleagues and me took over the C++ variant of this course and during last summer term, we developed a new project for students to implement and created a reference solution. We changed many aspects of the course, including the used technologies. We changed the GUI Toolkit from GTKMM to Qt and the build system from Autotools to CMake.

Last term our new variant of this course was offered for the first time and after some lectures prepared and held by us (my lectures where about ZeroC Ice and Qt & CMake) three studentteams started to plan & implement the project we gave them. The feedback we received was very positive, especially the use of Qt not only as GUI Toolkit, but for acessing a database or in combination with QCA2 for encryption/decryption made coding a little bit easier for C++ beginners.

So what is the relation to KDE/OpenSource here? In my opinion, it is really bad practice at our university that people aren’t normally forced to learn any other programming languages than Java (depending on the field of study you may also learn C & Haskell). That’s why it was important for me that interested students can choose to code C++ while doing the Software Engineering & Project Managment course. And to give them an introduction into Qt & CMake, so that they would be able (either in their spare time or for university during advanced courses or university projects) to contribute to KDE Applications or other FOSS Qt Software. So I partly see this variant of the course as a FOSS recruitment program 😉

This should also be a call for action: if you think you can mentor an individual student or teams of students and have an idea for an area in your application that they could work on,please contact me.