Introduction to programming and computation: the concepts and usage of expressions, variables, control structures, functions, compound types, classes, objects, and I/O in a high-level programming language, and their roles in implementing programs to solve common problems.