Generic Programming and Library Development

Quarter 4, 2008

> Evaluation

The CPH STL project

The Open Tissue
The OpenTissue project

Course evaluation

The course evaluation was carried out in the form of a structured dialogue at the end of our last discussion session. Each student was allowed to write at most five (5) comments about the course, including what was good and what was bad. Thereafter, the comments received were circulated around and each student could tick the comments he or she agreed on. The comments that got most marks were then discussed in a dialogue.


Number of students who registered for the course: 38
Number of active participants: 28
Number of students who took part in the course evaluation: 14

Student feedback

The comments that were discussed at the evaluation meeting are listed below together with the number of marks received.

+ 12: Interesting assignments with hands-on programming
+ 12: The topic is useful
- 12: If the course is moved to the bachelor level, there should be a short introduction to C++ in the first lectures
- 11: Faster feedback on assignments
+ 11: Teachers have a genuine interest in disseminating the message
- 11: The assignment on concepts needed a lot of work; the workload could be reduced a lot by a short introduction
- 11: It would be very nice to only have one course website; the forum was not very used this year and I think it was because it was on the ISIS site (use dikutal instead!)
- 11: The scope of the assignments was not always clear (the M assignment was too easy and the P assignment was too open)
+ 8: The student presentations on Fridays were good (and should be retained in the course)
- 2: The build system at the CPH STL is too primitive; irritating with all the makefiles

Corrective actions

Based on the comments, there were several areas where we were doing well (e.g. hands-on learning, code orientation, real-world orientation, project orientation, future orientation, textbook selection, student presentations, the structure of the course in general). On the other hand, some corrective actions are clearly necessary when the course will be offered next time. The course team considered the following issues.

* According to the first list we received from our administration the course was full booked (max 48 students) and several students contacted the course manager to get a permission to take part in the course. About 30 students took part in the activities on the first week. After asking non-active students to remove their names from the list of registered students, the list contained 38 names. Almost half of the students in the first list were no-shows. So clearly something went wrong somewhere. What is wrong with our administrative procedures?

* This year we failed to provide timely feedback for the students on their T, P, and M assignments. Compared to earlier years the assignments were individual. This doubled the workload of the teachers. In the T assignment we first time required that the answers were handed in directly to the CPH STL CVS repository. Because of several portability problems this caused extra work for the reviewer who used 2-3 hours per answer. This meant that the correction of the T assignments alone required two-weeks full-time work. Additionally, in the P and M assignments our instructions were not clear enough to state that a PDF file is to be handed in (not a compressed package containing all the original files).

The idea of receiving the assignment answers via a version-control system is great. Instead of just commenting the output, the report, we can also provide comments on the work process and tools used. However, a requirement for giving this kind of deeper feedback is that the course is run with teaching assistants! The idea in the course has been to keep the students busy by exposing them systematically with assignments. If the necessary teaching assistants cannot be provided, we have to find another way of running the course.

* Our current course-management system is a simple collection of text files and a makefile that generates the home pages from the text files and transfers the generated HTML files to our web server. This makes the administration of the website easy. However, the current system does not provide a discussion forum or upload of assignment answers. Hence we have also relied on ISIS. We have to take the proposal of using dikutal seriously in order to simplify the use of the web pages.

* As pointed out by several responders, the student presentations are really an important part of this course. It also became clear that some students have to train their presentation skills more. The feedback given for the presenters was in a form of a form filled in by some fellow students (opponents). The feedback could indicate that there were some problems in a presentation, but it seldom gave any concrete proposals how to make the presentation better. We should consider giving this feedback in a debriefing meeting after the presentations. Normally, in one discussion session two to four presentations were given. To make the debriefing meetings feasible, the teachers should hold these debriefings in parallel so that there will only be one or two debriefings per teacher after each discussion session.

* In several occasions we have received feedback that the configuration-management tools used at the CPH STL could be improved. In particular, Windows users have suffered from our fanatic Linux orientation. For example, we should consider using Subversion (instead of CVS) and Cmake (instead of make). Also, there are several known problem areas that could be resolved by giving clear instructions for the developers what to avoid and what to do instead.

Future of the course

The permanent teachers of the course team (Knud and Jyrki) have now given the course three times. Our principle is that the same teachers should not hold the same course more than three times without a break where they can renew themselves. No one else was willing to take over this course, so the course was removed from our graduate program. In a sense this is a pity since the course is important for several research groups and since there seems to be a constant demand for this type of pragmatic course which uses C++ as the basic tool to teach generic programming.

Generic programming and library development will return; we just do not know when and in which form.


We are grateful for the feedback we received, and we want to thank those who provided that for us.

June 7th, 2008
Jyrki Katajainen

This page was last modified by Jyrki Katajainen on 09.06.2008.