@Virginicus @graydon Design an algorithm, implement the algorithm. Use logical operators correctly, subtize and abstract a problem into variables, objects, functions, and understand both the potential and limitations of your abstraction. Those are the big ideas I'm trying to teach. I also have come to like the "soft typing" of python. Variable types are important, but some of the time it makes doing simple tasks so cluttered the main idea can get lost.