Université de Namur

Initiation à la démarche scientifique | IHDCB339

State of the art: A Systematic literature review on visual representation systems for programming paradigms

2019 - 2020

Authors

Thibault Six
Benjamin Jonard

Promoters

Pierre-Yves Schobbens
Moussa Amrani

Introduction

  1. Methodology
  2. Classification
  3. Tools presentation
  4. Future research areas
  5. Conclusion

Methodology

Systematic Literature Review (SLR)

  1. Research question
  2. Inclusion & Exclusion criteria
  3. Keywords
  4. Query search engines
  5. Snowballing
  6. Relevance & Classification

Research question

  • "How to implement the management of several programming languages in a programming learning game?"
  • "What techniques are used for the graphical representation of the different programming paradigms?"
  • "How to interface between the interpreter of the different source programming languages and the graphical execution environment?"
  • "What are the visual and animated representations of programming paradigms in the literature over time?"

Inclusion & Exclusion criteria

  • Does the article propose a system of static or animated graphic representation of a program execution?
  • Does the article propose a graphical representation system linked to one or more programming paradigms?
  • Does the article provide a visual programming environment?
  • Does the article offer an educational game for learning programming?
  • Article containing only an abstract.
  • Article written in a language other than English.
  • Article discussing the effectiveness of using graphical representation in learning programming.

Keywords

First Set of Keywords

Keyword Results count
Graphical domain specific langage 1
Graphical Animated DSL 1
Graphical language 1
Learning From Scratch 1
Learn Programming Using Robots 1
Unembedding DSL 1
Dsl for robots 2
DSL review 2
DSL animation 4
Scratch programming language 5

Keywords

Second Set of Keywords

Keyword Results count
Visual programming languages learning 1
Visual programming languages DSL 1
Primary education programming 1
Serious games learning teaching programming 1
Teaching System to learn programming 1
Graphical DSL models 1
Generation of Graphical Modeling environment 1
Visual programming environment Block Bases 1
Primary education programming languages DSL 2
Introductory programming teaching learning 2
Programming Environment teaching learning 2
Visual programming languages 10
Visual programming environment teaching learning 33

Query search engines

Search engine Results count
bib.cnrs 1
citeseer 1
DBLP 1
google 3
ieeexplore 3
IET 3
springer 10
sciencedirect 24
researchgate 32

Relevance & classification

Custom bibliography management tool

https://ids.tsix.be

Classification results

Articles Count by Relevance/h3>

Classification results

Classification

Programming paradigms

  • Imperative
  • λFunctional
  • Logical
  • Object oriented
  • Concurrent

Classification results

Articles Count of Programming Paradigms

Timeline

Articles Count of Programming Paradigms by Years

Imperative programming
Functional programming
Logical programming
Object oriented programming
Concurrent programming

Classification

Programs Representation Systems

  • Static visualization
  • Dynamic visualization
  • Visual programming
  • Serious games

Static visualization

Visual Support for Learning Monads

Dynamic visualization

JAVASCRIPT LIBRARY FOR DEVELOPING INTERACTIVE MICRO-LEVEL ANIMATIONS FOR TEACHING AND LEARNING ALGORITHMS ON ONE-DIMENSIONAL ARRAYS

Visual Programming

A Programming Environment for Visual Block-Based Domain-Specific Languages

Serious Games

Algobot

Classification results

Articles Count of Representation Systems

Timeline

Articles Count of Programs Representation Systems by Years

Static visualization
Visual programming
Dynamic visualization
Serious games

Classification

Audience

  • Pupils
  • Students
  • Programmers

Tools

Static Visualization

Static Visualization

(1983) INCENSE: a system for displaying data structures

Static Visualization

(1987) THE TRANSPARENT PROLOG MACHINE (TPM): AN EXECUTION MODEL AND GRAPHICAL DEBUGGER FOR LOGIC PROGRAMMING*

Static Visualization

(1996) Scene: Using Scenario Diagrams and Active Text for Illustrating Object-Oriented Programs

Static Visualization

(1999) The Design of a Completely Visual Object-Oriented Programming Language

Dynamic Visualization

Dynamic Visualization

(1971) The Logo programming language

Dynamic Visualization

(2003) PlanAni: Program animation based on the roles of variables

Dynamic Visualization

(2003) Execution visualization and debugging in three-dimensional visual programming

Dynamic Visualization

(2005) Visual editing of animated algorithms: the Leonardo Web builder

Dynamic Visualization

(2015) BRIDGES: A System to Enable Creation of Engaging Data Structures Assignments with Real-World Data and Visualizations

Visual Programming

Visual Programming

(1985) Show and Tell: A visual language for keyboardless programming

Visual Programming

(1993) VisaVis: a higher-order functional visual programming language

Visual Programming

(1996) The SFC editor: a graphical tool for algorithm development

Visual Programming

(1996) LogoBlocks: A graphical programming language for interacting with the world

Visual Programming

(2006) The scratch programming language and environment

Visual Programming

(2009) Raptor: A visual programming environment for teaching object-oriented programming

Visual Programming

(2017) TRIK studio: Technical introduction

Programming paradigms representations

Imperative
Flow charts; Visual block based langages
Functional
Data flow diagrams; Visual block based langages
Logical
Decision tree; Venn or Euler diagrams
Object Oriented
UML class, objects and sequence diagrams
Concurrent
Data flow diagrams; Robots simulations

Future research areas

Programming Paradigms

  • Some are under-represented
  • Room for new representation systems
  • Lack of multi-language and multi-paradigm tools
  • No visual tools for testing

Future research areas

Program Representation Systems

  • Screen size is limited
  • Visual languages extension
  • Still some performance concerns
  • 3D representations
  • Serious games
  • Virtual Reality

Limitations

Research Methodology

  • Define better keywords
  • Use logical operators in queries

Tools Assessment

  • Define stricter classification criteria
  • Highlight key features

Conclusion

"What are the visual and animated representations of programming paradigms in the literature over time?"

Aknowlegements