Talks

Java by Comparison - Die Geschichte(n) des Buches

Softwerkskammer Köln
October 23, 2019 REWE Digital
Download Slides

Auf Basis von über 6 Jahren Java Lehre an der Uni Bamberg und dem Korrigieren von unzähligen Java-Aufgaben haben wir - Jörg Lenhard, Linus Dietz und Simon Harrer - ein Buch geschrieben, welches die typischen Fehler in einer innovativen Vorher/Nachher-Darstellung aufzeigt und erklärt: Java by Comparison. Durch diese Vergleiche können Einsteigerinnen und Einsteiger schneller eine Intuition für “Clean Code” entwickeln, Profis hilft es, ihre Denkweisen Einsteigern besser zu erklären und vielleicht das eine oder andere aufzufrischen. Wir stellen erst die Geschichte des Buches vor und gehen dann konkret auf ein paar der Vergleiche aus dem Buch ein. Danach wollen wir gemeinsam kreativ sein und mit euch ein von uns entwickeltes Spiel namens “Comparison Jeopardy” spielen.

Java by Comparison - Die Geschichte(n) des Buches

Softwerkskammer Nürnberg
October 10, 2019 Coworking Space Nürnberg

Auf Basis von über 6 Jahren Java Lehre an der Uni Bamberg und dem Korrigieren von unzähligen Java-Aufgaben haben wir (Jörg Lenhard, Linus Dietz und Simon Harrer) ein Buch geschrieben, welches die typischen Fehler in einer innovativen Vorher/Nachher-Darstellung aufzeigt und erklärt: Java by Comparison. Durch diese Vergleiche können Einsteigerinnen und Einsteiger schneller eine Intuition für “Clean Code” entwickeln, Profis hilft es ihre Denkweisen Einsteigern besser zu erklären und vielleicht das eine oder andere aufzufrischen. Wir stellen erst die Geschichte des Buches vor und gehen dann konkret auf ein paar der Vergleiche aus dem Buch ein. Danach wollen wir gemeinsam kreativ sein und mit euch ein von uns entwickeltes Spiel namens “Comparison Jeopardy” spielen. Wir freuen uns auf euch.

Java by Comparison - Die Geschichte(n) des Buches

Lightweight Java User Group München
October 09, 2019 Holidu GmbH, Munich

Auf Basis von über 6 Jahren Java Lehre an der Uni Bamberg und dem Korrigieren von unzähligen Java-Aufgaben haben wir (Jörg Lenhard, Linus Dietz und Simon Harrer) ein Buch geschrieben, welches die typischen Fehler in einer innovativen Vorher/Nachher-Darstellung aufzeigt und erklärt: Java by Comparison. Durch diese Vergleiche können Einsteigerinnen und Einsteiger schneller eine Intuition für “Clean Code” entwickeln, Profis hilft es ihre Denkweisen Einsteigern besser zu erklären und vielleicht das eine oder andere aufzufrischen. Wir stellen erst die Geschichte des Buches vor und gehen dann konkret auf ein paar der Vergleiche aus dem Buch ein. Danach wollen wir gemeinsam kreativ sein und mit euch ein von uns entwickeltes Spiel namens “Comparison Jeopardy” spielen. Wir freuen uns auf euch.

Designing a Conversational Travel Recommender System Based on Data-Driven Destination Characterization

ACM RecSys Workshop on Recommenders in Tourism
September 19, 2019 Copenhagen, Denmark
Download Slides

Recommending complex, intangible items in a domain with high consequences, such as destinations for traveling, requires additional care when deriving and confronting the users with recommendations. In order to address these challenges, we developed CityRec, a destination recommender that makes two contributions. The first is a data-driven approach to characterize cities according to the availability of venues and travel-related features, such as the climate and costs of travel. The second is a conversational recommender system with 180 destinations around the globe based on the data-driven characterization, which provides prospective travelers with inspiration for and information about their next trip. An online user study with 104 participants revealed that the proposed system has a significantly higher perceived accuracy compared to the baseline approach, however, at the cost of ease of use.

Full paper available as open access on CEUR-WS.

Java by Comparison - Die Geschichte(n) des Buches

Linus Dietz: Java by Comparison - Die Geschichte(n) des Buches

Advanced Java Programming Course
July 08, 2019 University of Bamberg, Germany

Auf Basis von über 6 Jahren Java Lehre an der Uni Bamberg und dem Korrigieren von unzähligen Java-Aufgaben haben wir (Jörg Lenhard, Linus Dietz und Simon Harrer) ein Buch geschrieben, welches die typischen Fehler in einer innovativen Vorher/Nachher-Darstellung aufzeigt und erklärt: Java by Comparison. Durch diese Vergleiche können Einsteigerinnen und Einsteiger schneller eine Intuition für “Clean Code” entwickeln, Profis hilft es ihre Denkweisen Einsteigern besser zu erklären und vielleicht das eine oder andere aufzufrischen. Wir stellen erst die Geschichte des Buches vor und gehen dann konkret auf ein paar der Vergleiche aus dem Buch ein. Danach wollen wir gemeinsam kreativ sein und mit euch ein von uns entwickeltes Spiel namens “Comparison Jeopardy” spielen. Wir freuen uns auf euch.

Java by Comparison - Die Geschichte(n) des Buches

Softwerkskammer Leipzig
June 04, 2019 TomTom Telematics Leipzig

Auf Basis von über 6 Jahren Java Lehre an der Uni Bamberg und dem Korrigieren von unzähligen Java-Aufgaben haben wir (Jörg Lenhard, Linus Dietz und Simon Harrer) ein Buch geschrieben, welches die typischen Fehler in einer innovativen Vorher/Nachher-Darstellung aufzeigt und erklärt: Java by Comparison. Durch diese Vergleiche können Einsteigerinnen und Einsteiger schneller eine Intuition für “Clean Code” entwickeln, Profis hilft es ihre Denkweisen Einsteigern besser zu erklären und vielleicht das eine oder andere aufzufrischen. Wir stellen erst die Geschichte des Buches vor und gehen dann konkret auf ein paar der Vergleiche aus dem Buch ein. Danach wollen wir gemeinsam kreativ sein und mit euch ein von uns entwickeltes Spiel namens “Comparison Jeopardy” spielen. Wir freuen uns auf euch.

Half-day Clean Code Workshop at BMW Coding Dojo

BMW Coding Dojo
March 25, 2019 ITZ, Munich, Germany

Simon Harrer and me visited the Coding Dojo of the BMW Group IT and gave a half-day workshop on clean code: We gave a talk about our book, Java by Comparison, played a nice round of Comparison Jeopardy, and solved the Java by Comparison kata.

Incidentially, the BMW’s Careers Team covered this Dojo and made a short video of the talk and the kata.

Characterisation of Traveller Types Using Check-in Data from Location-Based Social Networks

ENTER 2019 eTourism Conference
January 30, 2019 Nicosia, Cyprus

Characterising types of travellers can serve as a foundation for tourism recommender systems. This paper presents an approach to identify traveller types by analysing check-in data from location-based social networks. 33 million Foursquare check-ins from 266,909 users are segmented into 23,340 foreign trips based on traveller mobility patterns. Hierarchical clustering was then applied to identify distinct groups of trips by features such as travel duration, number of countries visited, radius of gyration, and the distance from home. The results revealed four clusters of trips, which manifest a novel grouping of people’s travel behaviour.

Full paper available at Springer.

Recommending Crowdsourced Trips on wOndary

Linus Dietz: Recommending Crowdsourced Trips on wOndary

ACM RecSys Workshop on Recommenders in Tourism
October 07, 2018 Vancouver, BC, Canada
Download Slides

Making recommendations for tourist trips is a challenging task due to the intrinsic complexity of the domain. The characterization of itineraries is non-trivial, because there is a lack of open destination databases such as regions, islands, cities or attractions that would help to understand the characteristics of destinations within a trip. For this purpose, we present wOndary, which supports the planning and sharing of worldwide trips based on crowdsourcing. We sidestep item discovery and routing challenges of the tourist trip design problem by performing content-based recommendation by facilitating a novel structured representation of itineraries. We share our experiences in the establishment of the core model for our travel recommender system and discuss future developments.

Full paper available on CEUR-WS.

Affective Computing and Bandits: Capturing Context in Cold Start Situations

ACM RecSys 5th Joint Workshop on Interfaces and Human Decision Making for Recommender Systems
October 07, 2018 Vancouver, BC, Canada
Download Slides

The cold start problem describes the initial phase of a collaborative recommender where the quality of recommendation is low due to an insufficient number of ratings. Overcoming this is crucial because the system’s adoption will be impeded by low recommendation quality. In this paper, we propose capturing context via computer vision to improve recommender systems in the cold start phase. Computer vision algorithms can derive stereotypes such as gender or age, but also the user’s emotions without explicit interaction. We present an approach based on the statistical framework of bandit algorithms to incorporate stereotypic information and affective reactions into the recommendation. In a preliminary evaluation in a lab study with 21 participants, we already observe an improvement of the number of positive ratings. Furthermore, we report additional findings of experimenting with affective computing for recommender systems.

Full paper available on CEUR-WS.

Data-Driven Destination Recommender Systems

26th ACM User Modeling, Adaptation, and Personalization Conference (UMAP '2018)
July 10, 2018 Singapore, Singapore
Download Slides

Given vast number of possible global travel destinations, choosing a destination has become challenging. We argue that traditional media are insufficient to make informed travel decisions, due to a lack of objectivity, a lack of comparability and because information becomes out of date quickly. Thus, travel planning is an interesting field for data-driven recommender systems that support users to master information explosion. We present unresolved research questions with working packages for a doctoral project that combines the fields of recommender systems and user modeling with data mining. The core contributions will be a framework that integrates heterogeneous data sources from the travel domain, novel user modeling techniques and constraint-based recommender algorithms to master the complexities of global travel planning.

Java by Comparison - Die Geschichte(n) des Buches (German)

Hackerkegeln der DATEV SCC
May 15, 2018 Nürnberg, Germany

Auf Basis von über 6 Jahren Java Lehre an der Uni Bamberg und dem korrigieren von unzähligen Java-Aufgaben haben wir (Jörg Lenhard, Linus Dietz und Simon Harrer) ein Buch geschrieben, welches die typischen Fehler in einer innovativen Vorher/Nachher-Darstellung aufzeigt und erklärt: Java by Comparison.

Durch diese Vergleiche können Einsteigerinnen und Einsteiger schneller eine Intuition für “Clean Code” entwickeln, Profis hilft es ihre Denkweisen Einsteigern besser zu erklären und vielleicht das eine oder andere aufzufrischen. Wir stellen erst die Geschichte des Buches vor und gehen dann konkret auf ein paar der Vergleiche aus dem Buch ein. Danach wollen wir gemeinsam kreativ sein und mit euch ein Spiel namens “Java by Comparison Jeopardy” ausprobieren. Wir freuen uns auf euch.

Teaching Clean Code

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

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 Slides

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.