Using the free Coral language and simulator to simplify first-year programming courses
Published July 26, 2020
Authors
F. Vahid
University of California, Riverside, zyBooks A WIley Brand
J. M. Allen
University of California, Riverside
A. Edgcomb
zyBooks, A Wiley Brand
R. Lysecky
University of Arizona, zyBooks A Wiley Brand
Abstract:
Using the free Coral language and simulator to simplify first-year programming courses
Many engineering majors require first-year students to learn programming. Unfortunately, commercial languages like Python, C, C++, and Java were designed for professionals, not learners, and thus have nuances that can cause students to struggle. Such struggle can lead to frustration, low grades, and potentially to dropping their programming classes or even switching majors. The Coral language was created in 2017 to address this issue. Coral is ultra-simple, looking almost like pseudocode, with fewer than 10 instruction types. Coral has a free web-based educational simulator, which auto-derives a graphical flowchart, and which executes the code and flowchart visually while showing variable updates in memory. Unlike other educational programming environments like Alice, Scratch, or Snap, Coral was designed for college students, with an emphasis on leading smoothly into a commercial language. Though Coral is now used by many thousands of students in CS0 classes at dozens of universities, in Fall 2019 our university experimented with introducing Coral in its CS1 class, where one 80-student section was taught programming in Coral for the first 5 weeks, then C++ for the second 5 weeks. Those Coral-to-C++ students did equally well on the identical C++ final exam compared to the students in other class sections who learned C++ the entire term, and their code style was better. Coral-to-C++ students’ evaluations were also very positive, and teachers reported an exceptionally smooth class startup using Coral. The C++ class sections were already highly optimized with strong performance and excellent student evaluations. These Coral-to-C++ results suggest that Coral can be used to enable a simpler and smoother start to a freshmen programming class, while still achieving the desired learning of a commercial language. And, as the Coral approach is improved, one might begin to see Coral-to-C++ students outperforming C++-only students as well. The Coral simulator and tutorial are available for free online [1].