field full of wheat

Learn programming like a real farmer

“Programmeringshøst” is a fun programming challenge for beginners and experts alike. Be part of the digital workforce running “Langgården” — a fictitious farm in the middle of digitisation — and learn what it takes to run a farm in the digital countryside. The event kicks off today.

Written September 9, 2021 by thej

Have you ever dreamt of running your own farm? Rising at the crack of dawn to gather eggs in the hen house, milk the cows, shear the sheep, wrangle the hogs, till the field, and all other manner of back-breaking chores until it’s time for bed? Well, maybe not. After all, you did choose to pursue a career in IT and not agriculture.

Nevertheless, running a farm presents a lot of interesting problems from the point of view of a programmer. How do you code a windmill operating system, determine grain storage, calculate your taxes, program robot harvesters, and excavate the occasional tonne of mink cadavers from your property at maximum profit?

These are all real-life farming problems that you as a member of the ITU community — students, teachers, and employees alike — can help solve, when Programmeringshøst (Programming Harvest) kicks off on today. Programmeringshøst consists of a daily farming-themed programming task, published every weekday on the itu.kattis.com platform. Use Java, Python, or any other programming language you like.

The challenge is designed to help you achieve mastery of basic programming and problem-solving skills by helping Rued and Valborg run their Langgården farm. You accomplish this by solving a small task every day. Every task is awarded up to 100 points, and the tasks are simple enough that every participant is expected to be able to harvest points every day. However, some tasks include very challenging parts — very few participants are expected to harvest the full 2000 points. Look for daily task teasers on the campus info screens.

We sat down for a chat with the three digital hay bale slingers behind the daily programming challenge, ITU educators Thore Husfeldt, Dan Witzner Hansen, and Troels Bjerre Lund to hear more about the bucolic programming exercises.

What’s the deal with Programmeringshøst?

Dan: The underlying assumption is that programming and problem solving — which are part of “computational thinking” — are difficult but learnable.

Thore: Good teaching — structured transmission of knowledge with carefully chosen examples and explanations — is of course central in that regard, but to a large extent, programming is much like learning the violin or a foreign language. It takes a lot of practice.

Dan: The first time you, say, learn the syntax for iterating over a collection in Java is really alien and takes a lot of mental effort to wrap your head around. After you've done it five times, it's no longer painful. And after twenty times, it’s second nature. That's the level of mastery we want everyone to be at, so that the programming language is no longer in the way, and we can do interesting things.

Troels: Programmeringshøst is an invitation to everyone — write a small, working piece of code every day.

Students already have a lot of homework, and your idea of a fun pastime project is … more homework?

Troels: We have a long tradition at ITU for some pretty large, group-based projects where students need to write a tonne of code. That can be extremely overwhelming, and very stressful and frustrating if some part of it fails.  What Programmeringshøst tries to do instead, is to parcel out a similar workload into many small, individual, well-defined exercises with immediate feedback…

Dan: … and where we’ve set up a support infrastructure if you get stuck. For instance, you can find help in Study Lab every day, and we have an asynchronous joint communications channel on MS Teams.

Thore: There is also a “social learning” aspect to Programmeringshøst, which is much more of an experiment. The idea is that participants solve the daily task individually but know that “everyone else” is thinking about the very same task as well. My vision is that random people in line for their morning latte in Café Analog will share their experiences, frustration, tips, solutions, etc.

Troels: But the main thing here is to have fun. We've worked on this project because it was a lot of fun. I hope others will feel the same.

For more information about Programmeringshøst, check out the project Github-page.