Coral: An Ultra-Simple Language For Learning to Program
Published 2019
Authors
Dr. Alex Daniel Edgcomb
zyBooks, A Wiley Brand
Prof. Frank Vahid,
University of California, Riverside
Prof. Roman Lysecky
University of Arizona
Abstract
University-level introductory programming courses, sometimes called CS0 (non-majors) and CS1 (majors), often teach an industry language, such as Java, C++, and Python. However, such languages were designed for professionals, not learners. Some CS0 courses teach a graphical programming language, such as Scratch, Snap, and Alice. However, many instructors want a more serious feel for college students that also leads more directly into an industry language. In late 2017, we designed Coral, an ultra-simple language for learning to program that has both textual code and a graphical flowchart representation. Coral’s educational simulator was designed hand-in-hand with the language. Coral was designed specifically for learning core programming concepts: input/output, variables, assignments, expressions, branches, loops, functions, and arrays. Coral is intended as a step in learning; once Coral is learned, students might transition to an industry language, which is mostly learning syntax since the student has already learned core programming concepts via Coral. This paper describes Coral, including the design philosophy and pedagogical considerations. This paper also includes data on usage and perspectives by 159 students of Coral during Fall 2018, finding that students with minimal programming experience can independently learn Coral input/output, variables, branching, and loops in fewer than 3 hours on average by independently completing the readings and homeworks. Coral has been used by about 2600 students at 21 universities.