Figure 3 provides an overview of the system that we will build during the course of the semester. The box on the left side of the figure summarizes the Game Shell that you will build, which will be a fun, interesting video game that will require the player to solve puzzles that will teach computer programming in a C-like language. The box on the right side of the figure summarizes the Puzzle Framework that I will build, which will present the game player with a sequence of puzzles of incremental difficulty that result in a learning experience for the gamer. Communication between the two systems, the Game Shell and the Puzzle Framework, will be facilitated by a Facade that will abstract the details of the Puzzle Framework away from the Game Shell and, consequently, away from the game developer. Construction of the Puzzle Framework will be guided by you. Figure 2 summarizes the Facade Pattern.