Parson's programming puzzles: a fun and effective learning tool for first programming courses

Mastery of basic syntactic and logical constructs is an essential part of learning to program. Unfortunately, practice exercises for programming basics can be very tedious, making it difficult to motivate students. In this paper we describe Parson's Programming Puzzles, an automated, interactive tool that provides practice with basic programming principles in an entertaining puzzle-like format. Careful design of the items in the puzzles allows the tutor to highlight particular topics and common programming errors. Since each puzzle solution is a complete sample of well-written code, use of the tool exposes students to good programming practice. This paper discusses the motivation of Parson's Programming Puzzles, and gives several examples. We describe the web-based authoring tool used to build the puzzles, and present our plans for future development.