iFlow: Making Computational Thinking Visible

iFlow is a conceptual programming environment for graphically constructing computational solutions to math, science, and engineering problems in a no-code fashion. It allows users to focus on thinking about the computational and disciplinary nature of the problems in hand without having to use any specific programming language. Like flowcharts, iFlow models a program as a directed graph depicting the logic structure of a computational system and the interactions among the constituents. Unlike flowcharts, nodes and arcs in iFlow are actually functional for generating the computational results.

The biggest thing is that iFlow is the most straightforward [compared with Python]. If there’s anything that you’re not understanding, you are able to just see it. — Kyla Price, student, Spelman College


To illustrate the point, let's compare JavaScript and iFlow for making a simulation of random walk as follows.

JavaScript: A line-by-line structure based on interpretable code

let i = 0
let r
while (i < 5000) {
  r = Math.random()
  if (r < 1/4) {
    x = x + 1
  } else if (r < 2/4) {
    x = x - 1
  } else if (r < 3/4) {
    y = y + 1
  } else {
    y = y - 1
  }
  drawPointAt(x, y)
  i++
}

The code on the left is incomplete as it has no visualization of the result.

iFlow: A graph-based structure based on actionable nodes and arcs

With iFlow, users can create a computational solution, observe its execution, and see the result without writing a single line of code. Computational tasks such as physics simulations, biological evolution, and machine learning can be encapsulated into system-provided or user-defined blocks with input and output ports, making the use of them as simple as configuring them with graphical user interfaces and connecting them with other building blocks. This philosophy of iFlow echoes the no-code movement to empower people to develop apps without coding, thus unlocking their creative potential and inviting more to join the software workforce — irrespective of their programming experience.

Entrance

iFlow

Features

Control flow vs. data flow
Work with API blocks
Data visualization
Data sonification
ODE solvers
PDE solvers
Machine learning
Classical mechanics
QSPR modeling
Quantum mechanics
Physical computing
Cloud storage
File sharing

Tutorials

Exploring chaos
Exploring fractals
Modeling epidemics
Parametric surfaces
Monte Carlo methods
Fourier transform

Acknowledgements

This project is supported by the National Science Foundation (NSF) under grant numbers #2131097 and #2342700. Any opinions, findings, and conclusions or recommendations expressed in this material, however, are those of the authors and do not necessarily reflect the views of NSF.