Asee peer logo

Teaching Coral before C++ in a CS1 Course

Download Paper |


2020 ASEE Virtual Annual Conference Content Access


Virtual On line

Publication Date

June 22, 2020

Start Date

June 22, 2020

End Date

June 26, 2021

Conference Session

Computers in Education Division Technical Session 6: Computer Science Freshman Courses

Tagged Division

Computers in Education

Page Count




Permanent URL

Download Count


Request a correction

Paper Authors


Joe Michael Allen University of California, Riverside

visit author page

Joe Michael Allen is a Ph.D. student in Computer Science at the University of California, Riverside. His current research focuses on finding ways to improve CS education, specifically focusing on introductory programming courses known as CS1. Joe Michael is actively researching the impact of using a many small programs (MSP) teaching approach in CS1 courses. His other interests include educational games for building skills for college-level computer science and mathematics.

visit author page


Frank Vahid University of California, Riverside

visit author page

Frank Vahid is a Professor of Computer Science and Engineering at the Univ. of California, Riverside. His research interests include embedded systems design, and engineering education. He is a co-founder of

visit author page

Download Paper |


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 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.

Allen, J. M., & Vahid, F. (2020, June), Teaching Coral before C++ in a CS1 Course Paper presented at 2020 ASEE Virtual Annual Conference Content Access, Virtual On line . 10.18260/1-2--35273

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2020 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015