Links:

Talentuur

— last updated

I’m teaching a short course on programming and AI for middle schoolers. called a “talentuur”, (Talent hour).

link to the course

My goal with the talent hour is to introduce high school students to programming and AI. I choose the programming language Python for this because it is the language I have the most experience with, the syntax is easy for beginners to learn, and it is a widely used language for AI-related projects. I plan to reuse as much existing course material as possible. This is easier for me, but it also ensures that the students become familiar with several online platforms where you can learn for free.

ING allows me to teach this course during work hours as part of their sustainability policy.

results

I really enjoyed teaching these 6 times. I think the students got a basic understanding of python programming and some of the related terms. They managed to complete most of the exercises that we covered from learn-python.adamemery.dev. We ended up completing these topics:

  • Basics
  • Operators and Expressions
  • Control Flow
  • Functions
  • Data Structures - List
  • Data Structures - Dictionar

The code that the students wrote is here.

reflecting: next time and learnings

The good:

  • students got some programming experience
  • online tutorials were clear, fun and worked well.
  • playing the game was a nice break from programming
  • candies and a small prize were a nice conclusion.

The bad:

  • tempo was a bit too high
  • assignment was a bit too ambtious for beginners

When I started I did not know what the level of familiarity with programming of the students would be. I expected the students who volunteered to have already some experience, but in the first class I found out that most students did no - or very little programming. If I end up teaching another course I would set the tempo a bit lower, and cover less material in total. I noticed that sometimes we had to rush through some topics instead of taking the time to fully understand them. I would keep the online tutorial with the assignments, it was very handy to have the explanation next to some small assignments to test the understanding. I liked how it would show confetti on writing code that gave the correct result. I would probably also use multiple smaller assignments instead of one bigger one. In the fifth class I noticed that it was still difficult to make progress on their code because not all necessary concepts had been covered. I still don’t really know of a programming problem that is both accessible to beginners and interesting/fun enough to entice new programmers to try it out. The candy fitting the theme of the game and the small gift were well received. I would do that again next time.

anecdote about LLM prevalence

One interesting thing happened while I was explaining print statements and comments. They were doing the following assignment:

# use comments to make sure only the last line is printed
print("this line should not be printed")
print("this line should also not be printed")
print("this line should be printed")

One of the things I noticed during the first lesson is that one of the students wrote:

# use comments to make sure only the last line is printed
print("this line should not be printed")
print("this line should also not be printed")
print("this line should be printed")
print("print only the third line")

I think I have to explain a bit more clearly the difference between using an LLM and programming. My first experience using computers was typing commands in MS-DOS to start up a game. If you did not type the correct command, the game would not start, so it was obvious to me you would have to provide very precise instructions when programming. For the kids I’m teaching now their experience is a bit different. They’re used to typing or speaking to a computer in natural language, and it just understands them.