-
Notifications
You must be signed in to change notification settings - Fork 1
Home
EvoParsons is a free to use, and open source, educational software. It is meant to help novice programmers improve their skills by practicing solving Parsons puzzles on their own. It allows instructors who are teaching an introductory programming course, to easily assign additional practice exercises to their students (with or without assigning participation credit) and have the software validate their work without the need for manual grading.
There are so far two versions of the software; one covering the Java programming language, and another covering the C programming language.
We provide below responses to frequently asked questions. Simply click on the questions to reveal the answer. Feel free to contact us at alessio - AT - usf.edu if you have more specific inquiries.
As the name suggests, EvoParsons is based on Parsons puzzles. These puzzles have repeatedly shown great potential in supporting novice programmers’ practice. In a nutshell, a Parsons puzzle presents a description, in plain English, of the goals of a program. It then also presents students with an implementation of the solution to that problem. The solution is broken down into code fragments that the students are expected to reassemble in the correct order. In addition, some of the fragments have been duplicated and modified to feature syntactical or logical bugs. These so-called distractors are mixed in with their original counterparts thus forcing students to also learn to spot and avoid erroneous code by dragging these fragments in a trash area of the user interface.
EvoParsons goes beyond presenting students with hand-designed Parsons puzzles. Behind the scenes, the software leverages evolutionary computation techniques to automatically design Parsons Puzzles. These puzzles undergo improvement based on the difficulty of the challenge they present to students. Rather than simply attempting to evolve the hardest puzzles, this iterative improvement is guided by a push to find Parsons puzzles that are maximally informative about students’ performance. As a result, the evolved puzzles only retain bugs and problems that capture the difficulties encountered by different categories of learners. The end result is therefore a system that does not adapt to each individual student, as Intelligent Tutoring Systems usually do, but rather exploit learner-puzzles interactions to gain insights regarding the concepts with which students are struggling.
Regardless of whether you decide to use the Java or C version of the software, the exercises cover the following topics;
- variables (declaration/initialization)
- selection statements (if / if else / if else if/ switch)
- loops (for / while /do while)
- arrays
- methods (Java) or functions (C)
- pointers (C only)
- structs (C only)
EvoParsons exercises combine a wide selection of constructs from the targeted programming languages (Java or C). As such, the software is primarily aimed at students who are reviewing in preparation for their final exam in an introductory course.
It is also suitable for students who are just starting a course which pre-requisites require them to already know Java or C, but need a refresher at the beginning of the semester. This is typically the case when undergrad students start courses such as; data structures, object oriented programming, operating systems...
We keep some sanboxes running so that instructors may get an idea of what the software looks like when their students will be using it.
Please note that these sandboxes are wiped regularly. As such, do not point your students to those but instead see below on how to assign them practice with a proper URL.
When you are ready to check the software out, simply visit the following links. The software will run in any modern web browser;
- EvoParsons version to practice Java programming skills http://evoparsons.csee.usf.edu:5110/
- EvoParsons version to practice C programming skills http://evoparsons.csee.usf.edu:5210/
Contact us at alessio -AT- usf.edu so that we may set up an instructor account for you. Please provide a link to your official department's web site, and use your official university email address, in order for us to be able to ascertain that you are indeed an instructor.
Once you have an account, and we confirmed to you that it has been upgraded to an instructor account, simply share the following links with your students.
- To practice Java programming skills use http://evoparsons.csee.usf.edu:3110/
- To practice C programming skills use http://evoparsons.csee.usf.edu:3210/ If you need to track which students actually used the software, e.g., to assign participation credit, or need a measure of how many puzzles they successfully completed, e.g. to assign a grade, make sure that you instruct them to
- use their official university email address when registering
- use their instructor's official university email address as instructor email (the one you used to register) as a way to link them to you. When ready, let us know at alessio -AT- usf.edu when you need the data on your students' participation and performance and we will extract it for you.
Starting with the "Mark III" release of the software, in Fall 2019, we implemented a new front end. This allows us to now have both the browser-side and server-side source code available under an open source license. Please refer to the following repositories for access;
- Source code for the "Mark III" release is hosted on GitHub at https://github.com/cereal-lab/EvoParsons/tree/Mark3
- Source code for the server-side components of the previous releases is hosted on SourceForge at https://sourceforge.net/projects/evotutoring/. These previous releases used the epplets.org user interface as front end which is not available under an open source license.
Spring 2021 marked our third major public release of the software. It followed a period of internal testing at USF in programming courses from various departments. This allowed to apply bug fixes and minor further improvements to both the user interface and the server-side.
Fall 2019 marked our second major public release of the software as "EvoParsons Mark III". Highlights of the changes are as follows;
- Integration of a MongoDB data base
- Redesign of the configuration files
- Total anonymization of the information collected. Students & instructors self-identify when login to the system but we only get one-way-hash versions of any such information.
- Complete redesign of the user interface so as to base it on modern web technologies and release it alongside the server-side components under an open source license.
- Public release of support for the C programming language in addition to previous support for Java
- ... Spring 2019 was the first nation-wide release of our software, after a year-long use and testing at our own university. This release only focused on the Java programming language and was achieved in partnership with Dr. Amruth Kumar. As a result, EvoParsons used the same user interface than the Epplets Parsons puzzle Intelligent Tutoring System. It was also made available via Dr. Amruth Kumar's Epplet.org website. Our next releases will focus on integrating other languages (e.g. C, but feedback is welcomed!) and provide an alternative user interface that will be made available under an open source license (as is currently our server-side software).
Please find below references to related papers.
- A.T.M. Golam Bari, Alessio Gaspar, R.Paul Wiegand, Jennifer L. Albert, Anthony Bucci, Amruth Kumar: "EvoParsons: Design, Implementation and Preliminary Evaluation of Evolutionary Parsons Puzzle". Genetic Programming and Evolvable Machine, (2019).
- Alessio Gaspar, A.T.M. Golam Bari, Amruth N. Kumar, Anthony Bucci, R. Paul Wiegand, Jennifer L. Albert: "Evolutionary Practice Problems Generation: Design Guidelines". 28th IEEE International Conference on Tools with Artificial Intelligence (ICTAI), 6-8 November, 2016, San Jose, CA, USA.
- Alessio Gaspar, ATM Golam Bari, Amruth N.Kumar, R. Paul Wiegand, Anthony Bucci, Jennifer L. Albert: "Evolving Parsons Puzzles for Novice programmers". 30th International Conference of the Florida Artificial Intelligence Research Society, FLAIRS, 2017.
- ATM Golam Bari, Alessio Gaspar, R.Paul Wiegand, Anthony Bucci: "Selection Methods to Relax Strict Acceptance Condition in test-based Coevolution". IEEE WCCI 2018, July, Rio de Janeiro, Brazil
- ATM Golam Bari, Alessio Gaspar, R.Paul Wiegand, Anthony Bucci: "Does Relaxing Strict Acceptance Condition Improve Test Based Pareto Coevolution?". IEEE Symposium Series on Computational Intelligence 2017, Nov 27 – Dec 1, 2017, Hawaii, USA.
- ATM Golam Bari, Alessio Gaspar: "Investigating Relaxed Selection in Test-based Pareto Coevolution". 21st International Conference on Computer and Information Technology (ICCIT 2018), December 21-23, 2018, Dhaka, Bangladesh
- ATM Golam Bari, Alessio Gaspar, R.Paul. Wiegand, Dymtro Vitel, Kok Cheng Tan, Stephen Kozakof: "On the Potential of Evolved Parsons Puzzles to Contribute to Concept Inventories in Computer Programming". 126th ASEE Annual Conference and Exposition, Tampa, Florida, June 15-19, 2019.
- Alessio Gaspar et.al.,: "Coevolutionary-Aided Teaching: Leveraging the Links Between Coevolutionary and Educational Dynamic". 126th ASEE Annual Conference and Exposition, Tampa, Florida, June 15-19, 2019.
- Dymtro Vitel, ATM Golam Bari, Alessio Gaspar, Kok Cheng Tan: "Lesson Learned from Available Parsons Puzzles Software", 126th ASEE Annual Conference and Exposition, Tampa, Florida, June 15-19, 2019.
- Parsons, D., Haden, P.: "Programming Puzzles: A Fun and Effective Learning Tool for First Programming Courses." 8th Australasian Conference on Computing Education, Volume 52, ACE '06, pp. 157--163. Australian Computer Society, Inc., Darlinghurst, Australia, Australia (2006).