Coral: An ultra-simple language for learning to program

Alex Daniel Edgcomb, Frank Vahid, Roman Lysecky

Research output: Contribution to journalConference article

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.

Original languageEnglish (US)
JournalASEE Annual Conference and Exposition, Conference Proceedings
StatePublished - Jun 15 2019
Event126th ASEE Annual Conference and Exposition: Charged Up for the Next 125 Years, ASEE 2019 - Tampa, United States
Duration: Jun 15 2019Jun 19 2019

    Fingerprint

ASJC Scopus subject areas

  • Engineering(all)

Cite this