For our September “Community Choice” Project of the Month, the community elected PSeInt, a pseudo-code interpreter for Spanish-speaking programming students. Pablo Novara, PSeInt Lead Developer, shared his thoughts about the project’s history, purpose, and direction.
SourceForge (SF): Tell me about the PSeInt project please.
Pablo Novara (Novara): Learning how to program involves learning about algorithms, variables, expressions, functions, flow control, data structures, etc. And, in order to test these ideas, you also need to understand a programming language, and about compilers or interpreters, plus how to setup a project in an IDE. However, many non-English speakers also have an additional barrier – language.
Many books start with some kind of pseudocode or flowchart to let the student focus on the logic behind the algorithm and keep all the other complexities hidden. PSeInt is a tool for Spanish speaking students that implements these ideas and allows them to experiment and play, providing a very simple pseudocode and flowchart editor and interpreter with features specifically designed for classroom usage.
SF: What made you start this?
Novara: In a programming course during my first year of college, I saw students struggle to write their first algorithms in a very simple pseudocode proposed by our instructors. Being that we were using a mock language with no real implementation, we were dependent on our instructor’s review to learn if we had succeeded. With just a few teachers and many students, it occurred to me that we needed a tool to see if the algorithms’ outputs were correct.
SF: Has the original vision been achieved?
Novara: Yes, I just wanted be able to run an algorithm with that particular pseudocode and get the output. This was a very limited vision and I achieved that goal handily.
SF: Who can benefit the most from your project?
Novara: Students and teachers.
SF: What core need does PSeInt fulfill?
Novara: The system does a lot more now than just running the pseudocode and that’s why students get so much useful feedback. PSeInt helps them find and correct errors, and keeps them motivated through experimentation and play. The teacher gets a tool to present practical examples and explain how something works.
SF: What’s the best way to get the most out of using pseint?
Novara: A teacher should explore it completely in order to know what can be done with it and to design lessons and activities to take advantage of PSeInt’s features. It is specifically designed to assist both the student and the teacher, but it is not a replacement. It is not a tool that teaches programming by itself.
SF: What has your project team done to help build and nurture your community?
Novara: I am the team. For many years the project had a very small community of users so all the communication was done by email. Eventually, when I realized that PSeInt was growing, I worked to boost this trend. This is where SourceForge, along with some other SourceForge projects, played an important role. Following the advice and ideas from Rich Bowen’s posts and slides, I rethought the website, improved the documentation, started using the forums system, and encouraged users to do the same. I also made the git repository public.
Another nice idea was to blog freely about anything I wanted to let the community know. I’ve taken this idea from SuperTuxKart. I always read their development blog and to find useful material, so I wanted something like that for my project.
SF: Have you all found that more frequent releases help build up your community of users?
Novara: I’m a big fan of Eric Raymond’s RERO philosophy. Being an extremely small development team, I rely on users to fill the gaps. I try to release often to keep them active and interested, but “often” can also means “too early”, so they respond with a lot of bug reports, suggestions, new ideas, and all kind of useful feedback.
SF: What was the first big thing that happened for your project?
Novara: In college I had to develop a piece of software to pass a programming exam, so I started PSeInt. After the exam I abandoned it for more than a year. Then came a chance to include it in a free educational software compilation, which revived and jump-started the next phase of the project.
SF: What helped make that happen?
Novara: I heard about some free software groups that were building that compilation. I wrote to them saying something along the lines of “I’ve got this in case you might like.” And they did. This led me to register the project here, provided me with some very valuable feedback, and gave PSeInt some initial diffusion.
SF: What was the net result for that event?
Novara: I don’t know if PSeInt would have been revived without that feedback and motivation. So I have to thank mainly to Adrian Staffolani and Roman Gelbort for not letting that work die.
SF: What is the next big thing for PSeInt?
Novara: I don’t know. Some users ask for an Android version, others want it for different languages, still others would like to see it handle heterogeneous data structures and graphics.
SF: How long do you think that will take?
Novara: These ideas require a lot of work and internal refactoring and none of them are planned in the short term. Actually there is no plan. Maybe tomorrow someone points me in the direction of another big idea that gets implemented in just a few weeks. It depends on what it takes to get it done. Two ideas can look similarly complex yet require very different amount of work.
SF: Do you have the resources you need to make that happen?
Novara: The most important resource here is time. I do it for free, and my free time is shared with two other free projects (ZinjaI and MotoGT), along with some other hobbies.
SF: If you had it to do over again, what would you do differently for PSeInt
Novara: I would take this more seriously from the beginning.
Novara: My original vision about what it was supposed to be has evolved a lot. When I realized about the real purpose of such a tool, I saw many new possibilities. The language became more flexible, the GUI has been simplified, the flowchart editor became a first class citizen, some debugging-like features were added, and the editor was modernized. Also many live-coding ideas, inspired in Bret Victor’s “Inventing on Principle” and “Learnable Programming”, were implemented with others still to come. I now see many reasons to consider PSeInt a very interesting project, but my lack of vision had made me think that there was nothing more left to add.
SF: Any reason you can’t do that now?
Novara: No. I think I’ve learned a lot in this ten years and I won’t say it’s every finished again. I now expend a lot of time reading and watching talks about this topic, and I work to constantly widen my point of view and catch new ideas.
SF: Is there anything else we should know?
Novara: I’m mostly a technical person. So, handling the social part of the project is a challenge. I frequently disagree with users requests, complain about how they communicate their ideas or problems, or get frustrated about some reactions. But feedback is an invaluable resource for any small free project and I really believe that users are vital actors in this process. So thanks!
[ Download PSeInt ]