Teaching Clean Code

1st Workshop on Innovative Software Engineering Education
March 06, 2018 Ulm, Germany
Download PDF

Learning programming is hard — teaching it well is even more challenging. At university, the focus is often on functional correctness and neglects the topic of clean and maintainable code, despite the dire need for developers with this skill set within the software industry. We present a feedback-driven teaching concept for college students in their second to third year that we have applied and refined successfully over a period of more than six years and for which received the faculty’s teaching award.

Evaluating the learning process within a semester of student submissions (n=18) with static code analysis tools shows satisfying progress. Identifying the correction of the in-semester programming assignments as the bottleneck for scaling the number of students in the course, we propose using a knowledge base of code examples to decrease the time to feedback and increase feedback quality. From our experience in assessing student code, we have compiled such a knowledge base with the typical issues of Java learners’ code in the format of before/after comparisons. By simply referencing the problem to the student, the quality of feedback can be improved, since such comparisons let the student understand the problem and the rationale behind the solution. Further speed-up is achieved by using a curated list of static code analysis checks to help the corrector in identifying violations in the code swiftly.

We see this work as a foundational step towards online courses with hundreds of students learning how to write clean code.

Deriving Tourist Mobility Patterns from Check-in Data

WSDM 2018 Workshop on Learning from User Interactions
February 09, 2018 Los Angeles, CA, USA
Download PDF

Recommendations in complex scenarios require additional knowledge of the domain. Planning a composite travel spanning several countries is a challenging, but encouraging domain for recommender systems, since users are in dire need for assistance: Information in typical publications, such as printed travel guides or personal blogs is often imprecise, biased or outdated.

In this paper we motivate a data-mining approach to improve destination recommender systems with learned travel patterns. Specifically, we propose a methodology to mine trips from location-based social networks to improve recommendations for the duration of stay at a destination. For this we propose a model for combining data from different sources and identify several metrics that are useful to ensure sufficient data quality, i.e., whether a traveler’s check-in behavior is adequate to derive patterns from it.

We demonstrate the utility of our approach using a Foursquare data set from which we extract 23,418 trips in 77 countries. Analyzing these trips, we determine the travel durations per country, how many countries are typically visited in a given time span and which countries are often visited together in a composite trip.

Also, we discuss how this method can be generalized to other recommender systems domains.