Teaching Coral before C++ in a CS1 Course

Joe Allen, Frank Vahid
2020 ASEE Virtual Annual Conference Content Access Proceedings   unpublished
Commercial languages like Python, Java, or C++, have syntactic, semantic, and compiler/interpreter issues that make them less-than-ideal as a CS1 language. The free Coral language, which uses ultra-simple statements, auto-derived flowcharts, and a web-based graphical educational simulator with clear error messages, was developed in 2017 to address such issues. Coral is designed to lead more directly into commercial languages than other educational languages like Scratch or Snap. Dozens of
more » ... ap. Dozens of schools use Coral, often as the language in CS0 courses. In this work, we experimented with using Coral in CS1 to ease students into the commercial language C++. For one 80-student CS1 section, the term's first half used Coral to teach input/output, variables, expressions, branches, loops, arrays, and functions, thus focusing on program logic and problem solving rather than syntax and semantic details. The term's second half then retaught those constructs using C++. We found what we'd hoped: the Coral-to-C++ students did equally well on the identical C++ final exam and did equally well in the course. The results suggest that instructors can start a CS1 class with Coral to enable a smooth start and to teach using an educational simulator, without loss in learning outcomes or programming capability. We indicate ideas of how Coral's introduction can be improved, which may yield further improvements.
doi:10.18260/1-2--35273 fatcat:afjt4iuwmfh75ltn7zcegn7t24