FlowUmi, a Programming Language that Mitigates the Usage of Hard-Coding

Published in: Engineering Innovations for Global Sustainability: Proceedings of the 14th Latin American and Caribbean Conference for Engineering and Technology
Date of Conference: July 20-22, 2016
Location of Conference: San Jose, Costa Rica
Authors: Edwin Puertas
Iván Baños
Juan Carlos Martínez Santos
Refereed Paper: #215

Abstract:

This paper presents FlowUmi, an activity diagram-based programming language that mitigates the use of hard code. The main problem that motivates this project is the difficulty of learning good coding techniques. Comprehend and design algorithms are not trivial tasks to everyone. That is because it involves a set of skills that aren't well developed in every person. These skills can be classified in two groups: the cognitive ones, which focus on the attitudes of the students, and the procedural ones, which focus on the way of doing. In this work, we focus on the procedural group by abstracting the code into activity diagrams. By doing activity diagrams instead of hard-coding (writing code), students focus on the design. It also makes the understanding of examples and patterns easier than in hard-coding way. Traditional programming languages, used in teaching, separate the design and the coding in two different stages. It forces the student to take two courses, one to develop design skills and other to testing the algorithms by writing, compiling, and running code. On the other hand, our approach allows the student to test their designs directly from the graphical design of an activity diagram. There are two main contributions of this project. One is to design the flow chart language and all its components, and the second is to design its compiler. The language provides the basic control structures needed for procedural programming, which is the kind of programming that is commonly taught in freshman's courses. A prototype of FlowUmi, developed in Java, was tested with basic algorithms that were tested without writing a single line of code. Currently, we are working on making FlowUmi available to everyone. The main idea is to put it under test and get feedback about usability, future features, and suggestion to making it better.