Language-neutral programming intro courses, which may use flowcharts or pseudocode.
The zyBook starts with flowcharts and eases into code, so learners visualize code execution (a hard part of learning programming). The zyBook has many examples, integrates the simulator, and has auto-generated/graded homework exercises involving tracing and writing Coral. We’ve created a zyBook, Fundamental Programming Concepts, to teach programming concepts (input/output, variables/assignments, branches, loops, arrays, functions), using Coral. Learning programming is much more than learning a language’s constructs.
We’ve made the Coral simulator free for students and teachers, and created a tutorial for learning Coral’s constructs. Recurring themes: use simple intuitive syntax, avoid multiple ways of doing same thing reduce ways for learners to make mistakes, simulator detects many common errors. No return statement upon reaching function’s end, return-variable’s last value is returned.Uses “returns nothing” for no return value, not less-intuitive “void” or unspecified.Ex: Function FeetToCm(float numFeet) returns float numCms.Simple explicit function definition syntax, including having “returns” at end for better readability.Array size set once: In declaration, or before element access - enables dynamic array but limited to minimize mistakes.Array size accessible via myArray.size, simplifying iterating through array.Logical operators are words and, or, not, rather than symbols.Real if-elseif-else construct, not nested if-else’s as in C/C++/Java.One item (variable or string literal) per output statement.Get and Put statements are intuitive, like pseudocode: Put x to output.All variables declared at top of function.Only integer / float data types (and string literals for output), enough to learn programming concepts.3-space indents for nesting: More readable than arbitrary indents (Python) or braces (C/C++/Java), and less error-prone.One statement per line, and no need for semicolons.Email: Language design decisionsīelow are some language design decisions that focus on easing learning. of California at Riverside, and the Univ. Learners can then write programs to solve problems, like finding the max in a set of numbers, and then easily move to an industry coding language.Ĭoral is an effort by computer scientists at zyBooks, the Univ. Coral has a web-based simulator, and unites code and flowcharts.Ĭoral helps learn key programming concepts - variables, assignments, branches, loops, arrays, and functions. Some flowchart languages exist, like Raptor, but require installation, don’t run on tablets or smartphones, and lack a matching code language. Industry coding languages, like Java, C++, C, and even Python, have syntax and nuances that trip learners.
Coral looks like industry languages (Java, C++, C, Python), but with ultra-simple syntax, plus a visualizing education-focused code and flowchart simulator. Some emphasize “computational thinking” so look different from industry coding languages, or don’t have a flowchart view. Many languages attract people to programming, like Alice, Logo, Scratch, and Snap.
Students install nothing, they just program and execute. Visualizing simulator: A free web-based Coral simulator shows step-by-step execution, variable values, inputs being consumed, and outputs.Code/flowchart unity: Coral has a flowchart version, so teachers can start with flowcharts and lead to code, or with code and visualize with flowcharts.Simplicity: Coral only has constructs needed for basic programming concepts, and each construct is simple.Coral is an ultra-simple language for learning programming.