Gregory Weber, associate professor of informatics, has developed an open source software program to help informatics students to effectively learn recursion by drawing diagrams.
Sifflet is a visual, functional programming language for users to make programs by drawing diagrams to connect functions and other units. Use of Sifflet provides a graphical high-level view of how a complex computation works, and allows users to ‘zoom in’ to see more details as needed.
Weber explains recursion as a kind problem-solving instruction that references itself. For example, how do you walk to Ohio (starting at IU East)? One solution might be: “If you’re not in Ohio, then take a step east, and walk to Ohio.”
Sifflet is written in the Haskell programming language.
The program was initially released in May 2010 and has since been updated in June 2010 as version 0.1.7.
Weber said he first got the idea for Sifflet during his early years of instructing an introductory programming course at IU East. “One day in class, I made a diagram on the chalkboard for my students. On the last day of class, I had a student stop by and say that diagram was the only thing he understood.”
In 2008-2009, Weber developed the program.
Before it was publicly released, Weber did use it in the classroom to help his students to understand recursion. He plans to more seriously test the program with more students in the future.
“This program helps students to overcome that hurdle,” Weber said.
Sifflet is not the first open source software program Weber has written. He has also developed OrganDesigner, a graphical editor and SoundFont converter for MIDI-based virtual organs. “Open Source” means users are free to copy, redistribute, and modify the program to meet their needs, in contrast to the typical commercial software license which severely restricts what you can do with a program.
For more information on Sifflet, contact Gregory Weber, associate professor of informatics, at (765) 973-8420. For more information on the information degree program, contact the School of Informatics at (765) 973-8239.