This is an introductory course to learn programming with Java. It is comprised of three 5-week parts. Part 1 introduces programming on the basis of familiar concepts, like calculators and games. In a gentle way, it introduces to powerful concepts like functional abstraction and object encapsulation. Part 2 will focus on how to write “good” programs, where “good” is to be understood from several perspectives: correctness, efficiency, software engineering techniques, and ethics. Part 3 will deal with fundamental data structures, such as sequences, and algorithms on them, such as searching and sorting. Emphasis is put on immediate feedback and on having a fun experience. Programming knowledge is not only useful to be able to program today’s devices such as computers and smartphones. It also opens the door to computational thinking, i.e. the application of computing techniques to every-day processes.