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.

11 thoughts on “Teaching Qt/C++”

  1. Great to hear(read) that this offering will be continued. I was in the preliminary talk for the course last semester, but I didn’t get to participate because of a collision in my schedule. I really hope I can be part of a Qt/C++ group this semester, as I am very interested in that topic and have always wanted to dig a little deeper into it.

      1. @Nick: Unfortunatly only “fixing bugs” is not enough for (most) university courses (except it is a big bug that requires lots of thought & changes). Making changes/additions to already existing projects is of course good, but is also out of scope for the course I teach. But I’m looking for people willing to mentor bigger projects (with a size like a GSoC project), that students could work on in advanced courses.

  2. Wow, I didn’t know that the Vienna University of Technology offered this great alternative to Java. I’ll begin my study this autumn and I’ll definitely visit your course variant.
    I’m also willing to become a tutor myself, because this great option can’t die.

    1. Well Lukas, then welcome to the TU. “Software Engineering & Projektmanagment” is a course for the 4th term, so you probably have a little bit of time till you should do it ­čśë

  3. what about creating a GPL alternative for fuzzy audiofile comparison software http://www.music-similarity.com/ ?

    i have used it to find duplicate albums and songs in 70 gb tango music collection (collected from different people’s harddrives).

    it can find mp3 files with identical content but different tags, and it also can find differently encoded versions of the same recording (i.e. riped from the same CD but with different bitrate)

    already existing audio analysis algorithms can be used for fuzzy comparison, such as musicbrainz and moodbar

    1. i’m not an audio expert, but i have 5 years experience of Qt/KDE based development (lin, mac, win), I also worked with taglib.

      I could mentor this project (if you find me eligible).

  4. Hi Stefan,

    I’ve been a tutor on SE/Linux since 2004 and have been running it in during 2006 – 2008, so I’m very glad to hear that is offered again and that it lives on.

    It’s nice that students still get the possibility to gain experience executing a native software project on the GNU/Linux software stack.


Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.