I’ve been teaching programming for more than 17 years. During this period, I’ve developed a nice inventory of exercises and code examples. Some of which are old as my teaching career, and even though I’ve taught and teach a variety of languages, well, most examples are as good in any language.
Here is one of them – I use it in the first lesson on conditionals. This program generates a random number in the range of [0, 100] and then asks the user to guess it. The user gets one chance – it’s a very early lesson and the students don’t know loops already. The program outputs “Correct” or “Wrong” and that’s it. Look at it (this time in Python, because that’s the language I teach now):
compNum = (int)(random.random() * 101)
userGuess = (int)(input(“Enter your guess:”))
if compNum == userInput:
Yeah, it’s simple, but yet pretty powerful example. When I show it I type it during the class and then asks the students to try and guess. I know it sounds silly and with no avail, but believe me, it’s such a fun J
No one ever managed to guess correctly.
Today I’ve shown this example again, and as usual, invited the students to try their luck. One of them yelled from her sit “31”.
“Very well” I said, “31 for the lady” and typed in 31.
I pressed enter.
I saw “Correct” on the screen.
It was so surprising that I couldn’t talk for a second, because it was the first time in 17 years that it happened.
I think now I know the meaning of the phrase “One in a million” J
Yeah, I know there are better ways to generate random numbers, I deliberately use this one because it shows a really important principle in software engineering.