Introduction to programming aims to guide students through their first steps in solving problems using computers. The main emphasis is on showing that programming is nothing more (and nothing less) than a specific way of thinking, which requires decomposing problems into smaller problems and giving extremely well-defined instructions on how those smaller problems should be handled by the computer. Students will gain familiarity with the basic concepts found in most modern programming languages, like sequences, conditionals and functions, and will also learn about the cornerstones of computational thinking and problem solving, like creating abstractions or debugging.
The course is based on the accelerated introductory curriculum and teaching materials developed by Code.org [1], a non-profit organisation helping students learn to code. This programming course uses Blockly as the main programming environment, which was specifically designed for teaching purposes and provides an easy-to-understand and frictionless experience for everyone having basic skills in using computers. The assignments are based around mini-games and other visual tasks, thus solving problems provide a much more rewarding experience for students than using traditional text-based languages. This course contains almost 100 small tasks to help students internalise key concepts, and exceptional students will be given additional tasks to further master the ideas presented.
Learning programming, much like learning a new language, requires a fairly limited amount of factual information (a basic vocabulary) and lots of practice. For this reason I would encourage all students to spend their time on creating, rather than reading, and thus no further academic sources are provided in this description.