The CarduBlock software is an intelligent software learning tool used to help kids with Arduino programming. Cardublock consists of two parts: an MIT open source library known as Openblocks, and the Ardublock component made by a team of software developers. Ardublock utilizes the Openblocks library in order to suit its software needs. Cardublock is a derivative of Ardublock but improved and modified to better teach students about robotics.

The modifications made are to help make the software more interactive and user friendly. While making it easier to program in Arduino, the software also helps to teach kids the fundamentals of Object Oriented Programming. This is a key factor in today’s software society that we live in. By introducing them to this at a young age, it opens their mind to different career paths in the future.

In order to modify CarduBlock, the Openblocks library first needs to be reviewed. Its code must be traced and further documented in order to understand the classes used to provide a GUI. In this case, a delete button was added so that Renderable blocks could be deleted without confusion. This was programmed into the Renderable blocks class as an added function. Furthermore, the delete button had to be integrated into the UI itself. In this case it was implemented into the right click popup menu.

One of the most important classes in the Openblocks library is the Page class. This is the workspace that kids would be using to put the blocks on. Before it was gray and dull, but now it is white and bright thanks to variable changes to the Page class. This was done to make it more aesthetically pleasing.

 Moving onto the Cardublock side, the top and bottom panel colour needed to be changed as well as the button colours. For the buttons, a white hexadecimal value was used, and for the panels a light pink hexadecimal value was used. This was done in the OpenblocksFrame class in the Cardublock project.

This updated project has now been put on GitHub as an opensource project with issues that still need to be addressed. Resolving these issues over time will better both the functionality and user interface for the software applet. The next steps are to update and change the block drawers. A data factory is a design tool in software engineering. Each drawer is a data factory that contains blocks. It is all managed in the Openblocks library which is where the next modification will take place.