I'm currently teaching a sort of introduction to programming class using Python. It's a fantastic beginner's programming language because it is very approachable. There is no minimum boilerplate code, like having to create a class in Java just to print "hello, world". There are no projects and IDE's to learn. There's just the interactive shell that lets you try things out without consequence. In any event I've been trying to come up with a simple enough program that the students could understand that seems, at least, potentially useful. The limitations are that the program has to run on Windows or OS X machines with the default Python install and it can't involve any advanced topics. Since I'll be discussing Python dictionaries in the next class, I thought a small shell-like program that allows the user to enter arbitrary data (build a dictionary), save it to a file (using pickle) or load from a file would be a good starting point. Here is the code: (Python 3)
import io
import pickle
data = {}
while True:
command = input("Command: ")
if command == "" or command == "help":
print("Valid commands are: show, add, save, load, quit")
elif command == "show":
print(data)
elif command == "add":
key = input("Key: ")
value = input("Value: ")
if(key != ""):
data[key] = value
print("Assigned %s to key %s" % (value, key))
else:
print("Error: empty key.")
elif command == "save":
filename = input("Filename: ")
f = io.open(filename, "wb")
pickle.dump(data, f)
f.close()
print("Saved data to %s" % filename)
elif command == "load":
filename = input("Filename: ")
f = io.open(filename, "rb")
data = pickle.load(f)
f.close()
print("Loaded data from %s" % filename)
elif command == "quit":
break
else:
print("Unknown command.")
print("Goodbye.")
So, the program is only 30+ lines long but it usable, for some value of usable. Everything the program is missing are things that could be added by students. Maybe we will not add exception handling right away. But we could add a few "commands" to the list, like "new" or "remove". It could check if a file already exists and ask permission to overwrite it. It could remember the last file saved and have a "save" and a "save as" command.

