Skip to content

The Art of Programming

Franklin Wang edited this page Oct 19, 2018 · 26 revisions

The Art of Programming

Table of Contents

Aim

The software mini-game named The Art of Programming aims to let the player experience some of the concepts the player would learn if they were to join Software Engineering. This gives them a small glimpse into programming with a basic visual drag-and-drop language.

Objective

In the Art of Programming, the player is tasked with giving a robot instructions to pick up boxes and place them in the correct positions in the level. Each level will have a different number of boxes and different types of boxes, requiring the player to change how they program the robot for each level. Once the player has positioned the boxes correctly, the player receives a score proportional to how many instructions they used to complete the level; the less instructions the better score they will receive.

Gaming Elements

Instruction controller

There is a list of instructions on the right-hand side of the screen that the player can drag from. These instructions can be dropped into an instruction executor on the left. Once there are some instructions in the executor, the user can click play. The robot then executes each instruction, one-by-one from top to bottom. If there are any problems with an instruction, the player cannot move left, for instance, the execution is stopped. The player can also stop execution manually by pressing the stop button.

Instructions

There are a total of 7 instructions in the current implementation of the game.

PickUp - Picks up a box at the given direction

Drop - Drops a box at the given direction

MoveTo - Moves the robot to an exact location that the player specifies

Jump - Jumps from the current position to the position of the jump target in the instruction list

JumpIf - Conditional jump instruction. This compares with the current box the robot is holding and an adjacent box with possible options (greater than, less than, equal)

Swap - Swaps the box the robot is currently holding with another box

MoveToIndex - Moves the robot to the index that is on the adjacent box (indexes are marked on the floor)

Levels

Level 1

Goal
The player must pick up a box adjacent to them and place it down in a nearby drop zone without having to move the robot

Instructions
PickUp (New)
Drop (New)

Learning
Shows players how to pick up and drop blocks and reiterates to them which way each direction is

Answer
PickUp Up
Drop Left

Level 2

Goal
The player must pick up a box a few tiles in front of them and place it in the drop zone at the middle of the level

Instructions
Pickup
Drop
MoveTo (New)

Learning
Shows the player how to move the robot and pick a position with the MoveTo instruction

Answer
MoveTo 0, 5
PickUp Left
MoveTo 4, 4
Drop Left

Level 3

Goal
The player must choose the largest of two boxes and place it in the drop zone

Instructions
Pickup
Drop
MoveTo
JumpIf (New)
Swap (New)

Learning
Introduces the player to conditionals, the basic building blocks of programming

Answer
MoveTo 0, 5
PickUp Left
MoveTo 4, 4
JumpIf Up, Less
Swap Up
End Jump
Drop Left

Level 4

Goal
The player must pick up a box from the input and place it in the empty element of an abstract representation of an array

Instructions
Pickup
Drop
MoveTo
MoveToIndex (New)

Learning
Introduces the player to basic data structure concepts such as accessing an array by index

Answer
MoveTo 0, 5
PickUp Left
MoveTo 0, 0
MoveToIndex Up
Drop Left

Level 5

Goal
The player must place 4 inputs in any order into an array

Instructions
Pickup
Drop
MoveTo
Jump JumpIf
MoveToIndex

Learning
Engage the player's problem-solving skill by introducing basic loops (a for loops using an incrementing iterator) as part of the fundamentals of programming

Combining the knowledge they have learned over the previous levels and put them to use

Answer
End Jump
MoveTo 0, 5
PickUp Left
MoveToIndex Up
Drop Left
Jump

Level 6

Goal
The player place 2 inputs in ascending order into the array.

Instructions
Pickup
Drop
MoveTo
Jump
JumpIf
MoveToIndex
Swap

Learning
Introduces the player to basic algorithm concepts such as sorting an array

Combining the knowledge they have learned over the previous levels and put them to use

Answer
MoveTo 0, 5
PickUp Left
MoveTo 4, 4
Drop Left
MoveTo 0, 5
PickUp Left
MoveTo 4, 4
JumpIf Left, Less
Swap Left
End Jump
MoveTo 4, 5
Drop Left

Restart the Level

If the instructions were stopped, the play button changes into a reset button. This is indicated to the player by changing the symbol to be a forward triangle (->) to a backward triangle (<-). This ensures the level is always reset before the instructions are run again. By resetting the level, the user can start from the same place each time and the instructions can be tweaked each run.

Exit the Game

An exit button is present for the players to exit the software mini-game and return back to the main game world.

Tutorial

A help button is supplied for the players to go through the tutorials again. The tutorials will be shown automatically at the first level of the game.

Future Extensions

The instructions introduced in the minigame have been carefully developed for extensibility. New levels, as well as new instructions, can be easily generated and appended by following the defined interface. The visualization problem in Computer Science related topics such as data structure and algorithm have been relatively active for a long period of time. This minigame aims to identify the effectiveness of a visual programming approach to delivering concepts related to the fundamentals of programming.

Clone this wiki locally