CO@Work - a summer school at ZIB

23rd October 2015


Combinatorial Optimization at Work has once again returned to ZIB. This is the fifth iteration of the workshop organised by ZIB—two previously in Berlin (2005 and 2009) and another two smaller workshops organised in Görlitz and Beijing in 2006. It is a very popular and successful offering of courses related to combinatorial optimisation. The wide range of topics presented during the most recent workshop included mixed integer optimisation, the use of modelling languages and optimisation packages, applications in telecommunications and gas networks and various presentations by commercial solver companies.

This is the first time that I have been involved in this, or any, workshop, which made for a great experience. I was very excited about the opportunity to prepare a set of lectures and exercises for a day of the workshop. Since this was my first experience developing teaching material, I really wanted to make the most of this opportunity. This blog reviews my experience at the workshop and discuss the many things that I have gained from my participation.

The planning

CO@Work felt like some monstrous creature that was slowly creeping up on the optimisation department at ZIB. I first started hearing about the CO@Work workshop being planned for 2015 about halfway through 2014. Given that people were starting to talk about the organisation of CO@Work over a year before it was due to start made me feel like the planning was going to be an arduous task. I didn't know what was involved, but I thought that it would suck up a lot of my time.

There are some really relaxed people at ZIB. Since I didn't know what was involved with the planning of CO@Work I started to ask some questions. When I asked what needed to be done or what should be done, the general response was "don't worry about it" or "we have plenty of time to do everything". That was probably true, and in hindsight it was. But it didn't satisfy my need to better understand this perceived bohemeth that I was involved in planning. But everyone was relaxed, so I could not be too stressed about this whole thing.

The lectures

Approximately two months before CO@Work was to begin the work actually started. The SCIP team was slated to prepare almost 10 hours of lectures. These were to cover an introduction to SCIP and C programming, how to develop models, basics of constraint programming and how to implement plugins in SCIP. My involvement consisted of leading the team for the modelling lectures. This was great for me, since my PhD experience involved OR applications and modelling. I thought that it would be a great topic to write my first ever set of lectures.

The team working on the modelling lectures consisted of Christina Burt, Jakob Witzig and myself. Christina is a post-doc from the University of Melbourne, Australia who was visiting ZIB and Jakob is a PhD student in the optimisation group at ZIB. It was a good team with wide ranging knowledge on modelling techniques and the use of modelling languages.

Our task was to identify an application that would be interesting to model and then prepare lectures and exercises around that. The selected application was the "Equitable Coach Problem". This was an actual problem I was faced with when my soccer team participated in a tournament in Sydney. Briefly, there were 12 players in the team, 7 positions on the field, and there was only a guarantee of 2 games (20 minutes per game). I wanted to ensure that every player was given an equal amount of game time. My coaching style—in general—was more about equity than about winning. Probably the reason that my win-loss record is heavily weighted to the loss side.

After identifying the application that we wanted to model, the next step was to prepare all of the material. I was in charge of the introduction to modelling, specifically the modelling process, Christina took charge of preparing material regarding modelling languages and the impact of different formulations and Jakob put together all of the models in ZIMPL and SCIP and provided a nice lecture about ZIMPL.

It was a great experience to develop the lectures from scratch. I had to do a lot of research to determine what material should be included. I quickly found out that there is little consensus on the modelling process, so I collected ideas from a number of different sources. Also, I had to think about a way to make this all interesting to the students. A straight description of the modelling process can be a little boring. My approach was to lead them through the process with the application (the Equitable Coach Problem) in mind. Since it was a simple application, I felt that it would be easily understood. I am still not sure whether it was a successful approach, but I hope that the lecture was at least enjoyable.

I did become aware of the behemoth that is CO@Work during the writing of the lectures. The modelling team had a disadvantage to the rest of the SCIP group. Since we used an application that came from my own experience, there was no material available from previous workshops. As such, everything had to be written from scratch. This did take a bit of time, but it was also a great learning experience.

The workshop

The workshop came up very quickly. I believe the lectures for the modelling part were completed the day before they were to be delivered. This was not because we were rushed at the end, it was just that we slowly put everything together. That was a little bit of a failing in my team leadership. It would have been nice to have the lectures and exercises completed early so we could ensure everything would go to plan.

Many other lessons regarding my lecture preparation were learned during the workshop. First, I felt that the delivery of the lectures went well. However, I think that there were things that could have been done a little better. The timing didn't go exactly to plan. That was something that we should have practiced. Also, the exercises appeared to be too hard for a lot of students. My exercise was written to be intentionally vague to get the student to think about modelling decisions. This lead them to make models too complex for the exercise and then students got lost in the details. Also, some students had difficulty with the exercise because it was not clearly defined, which was intentional. Maybe in that case it was a good exercise for them. They were given a learning experience that involved some freedom in their thinking. Another thing that was difficult for the students was the implementation of the models. There was a lot of background needed to perform the ZIMPL modelling exercise, which ended up being a very time consuming exercise. In the future, I will look at making the tasks much more defined and try to better understand the abilities of the students.

The other members of the SCIP team did a very good job. I think that we all put together a great set of lectures that was good for the audience of the workshop.

The social

As with most academic events, there was a social component. This started with a BBQ on the first Monday evening. It was decided that beer kegs were required for this BBQ. I thought that this was a great idea, one of the few times that I got cold beer at an event in Germany. Good fun.

There were many other social events that populated the calendar for CO@Work. These included an informal dinner for the participants, an excursion to Leipzig (which included visiting a Porsche factory) and a farewell BBQ. I think that it was good fun for everyone.

The result

CO@Work was a great learning experience for me. I was given the opportunity to manage a team in the preparation of a set of lectures, write lectures from scratch and deliver material to a group of students. I found that the writing step was enjoyable and came naturally to me. However, there were a number of things that were identified regarding my preparation only when the time came to deliver the material. This experience will definitely help me in the many future teaching opportunities that I will have.