Programming (or development or coding) is the act of realizing solutions to computing problem, i.e., programs, using a programming language. It involves the design, realisation, testing, troubleshooting, and maintenance of program code, in a programming language, on top of of some programming platform, by the help of a development environment. The course introduces the student to a contemporary object oriented programming language with associated platforms and environments, with emphasis on basic programming language concepts, object oriented concepts, and elementary data structures. It also introduces the student to the notion of code quality, and contemporary methods for obtaining high quality. Learning proceeds by thematic problem solving sessions in which students solve open-ended problems.