Coral: An Ultra Simple Language for Learning to Program

Slides:



Advertisements
Similar presentations
CS 106 Introduction to Computer Science I 02 / 12 / 2007 Instructor: Michael Eckmann.
Advertisements

Loops –For For Reading for this Lecture, L&L, Part of 5.8.
Chapter 7: User-Defined Methods
Computer Science A 1: 3/2. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated.
Writing algorithms using the while-statement. Previously discussed Syntax of while-statement:
Warm-Up: Monday, March 3 List all devices you can think of that can be used to input information into the computer.
CSC 1051 M.A. Papalaskari, Villanova University Repetition CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Input & Output In Java. Input & Output It is very complicated for a computer to show how information is processed. Although a computer is very good at.
Chapter 5 Loops.
Student Performance Improvement using Interactive Textbooks: A Three-University Cross-Semester Analysis Alex Edgcomb*, Frank Vahid*, Roman Lysecky°, Andre.
October 28, 2015ICS102: For Loop1 The for-loop and Nested loops.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC1401 Strings (text). Learning Goals Working with Strings as a data type (a class) Input and output of Strings String operations.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Java iteration statements ● Iteration statements are statements which appear in the source code only once, but it execute many times. ● Such kind of statements.
Truth and while Today 15 Minutes online time to finish the random/Swing programs. Truth tables: Ways to organize results of Boolean expressions. Note Taking:
CSC 1051 M.A. Papalaskari, Villanova University Algorithms Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Building java programs, chapter 3 Parameters, Methods and Objects.
Reading input from the console input. Java's console input The console is the terminal window that is running the Java program I.e., that's the terminal.
How the Session Works Outline Practical on arrival Talk 1 Reflect on practical Clarify concepts Practical exercises at your own pace Talk 2: Further concepts.
COP 2551 Introduction to Object Oriented Programming with Java Topics –Introduction to the Java language –Code Commenting –Java Program Structure –Identifiers.
import java.util.Scanner; class myCode { public static void main(String[] args) { Scanner input= new Scanner(System.in); int num1; System.out.println(“Enter.
Computer Science A 1. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated editor,
CS 100Lecture 11 Introduction to Programming n What is an algorithm? n Input and output n Sequential execution n Conditional execution Reading: Chapter.
1 Flow of Control Chapter 5. 2 Objectives You will be able to: Use the Java "if" statement to control flow of control within your program.  Use the Java.
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Decisions and Iterations.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Intro to Programming STARS College of Communication and Information Florida State University Written by: Hannah Brock Alissa Ovalle Nicolaus Lopez Martin.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Testing and Debugging UCT Department of Computer Science Computer Science 1015F Hussein Suleman March 2009.
MS. NANCY HARRIS LECTURER, DEPARTMENT OF COMPUTER SCIENCE CS 149 – Programming Fundamentals (Accelerated)
Sophomore Scholars Java
Object-Oriented programming for Beginners LEAPS Computing 2015
Lecture 2 D&D Chapter 2 & Intro to Eclipse IDE Date.
Chapter 2 Clarifications
CSC1401 Input and Output (and we’ll do a bit more on class creation)
Lecture 16: Introduction to Data Types
Multiple if-else boolean Data
Chapter 6 More Conditionals and Loops
Primitive Data, Variables, Loops (Maybe)
Sixing Lu, Loukas Lazos, Roman Lysecky
TK1114 Computer Programming
SELECTION STATEMENTS (1)
CS Programming I Jim Williams, PhD.
Something about Java Introduction to Problem Solving and Programming 1.
­­­An Analysis of Common Errors Leading to Excessive Student Struggle on Homework Problems in an Introductory Programming Course Common errors that lead.
Introduction to the C Language
­­­Python Versus C++: An Analysis of Student Struggle on Small Coding Exercises in Introductory Programming Courses Nabeel Alzahrani1, Frank Vahid1,3,
Chapter 6 More Conditionals and Loops
Programming for Visually Impaired Learners
Java Language Basics.
SELECTION STATEMENTS (2)
CS 200 Primitives and Expressions
Module 4 Loops and Repetition 2/1/2019 CSE 1321 Module 4.
Introduction to Java Brief history of Java Sample Java Program
by Joe Michael Allen, Frank Vahid, Kelly Downey, and Alex Edgcomb
An Analysis of Using Many Small Programs in CS1
CSC1401 Input and Output (with Files)
Repetition Statements
by Joe Michael Allen, Frank Vahid, Kelly Downey, and Alex Edgcomb
CSC 1051 – Data Structures and Algorithms I
CS Week 2 Jim Williams, PhD.
CS Programming I Jim Williams, PhD.
Review of Previous Lesson
Random Numbers while loop
Nabeel Alzahrani1, Frank Vahid1,2, Alex Edgcomb1,2
Repetition CSC 1051 – Data Structures and Algorithms I Course website:
Presentation transcript:

Coral: An Ultra Simple Language for Learning to Program Alex Edgcomb1, Frank Vahid1,2, Roman Lysecky1,3 1zyBooks 2Computer Science and Engineering, University of California, Riverside 3Electrical and Computer Engineering, University of Arizona rlysecky@ece.arizona.edu https://corallanguage.org Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Coral language Coral language Designed with equivalent code and flowchart versions Educational simulator designed hand-in-hand with language Designed specifically for learning core programming concepts: input/output, variables, assignments, expressions, branches, loops, functions, and arrays Prepares students to transition to an industry language Coral: Code view integer x Put "Enter number" to output x = Get next input Put 2 * x to output Coral: Flowchart view Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Why a new language? CS0/CS1 courses often use an industry language Created and used by professional programmers (e.g., Java, C++, Python) Industry languages designed for professionals, not learners Complex features can confuse new learners One long-time instructor put it: "even Python has its ‘Gotchas’" public class Demo {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        System.out.println("Enter number: ");        int num = scan.nextInt();        scan.close();        System.out.println(2 * num);    } } Java concepts needed: classes, methods, parameters, … x = int(input('Enter number: ')) print(2 * x) Python concepts needed: functions, type casting, dynamic typing, … Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Why a new language? Block-based programming (Scratch, Snap, Alice) Simpler syntax visualized via connecting patterns Helps attract people to computing, especially in K-12 Instructors/students often want a more serious feel for college courses No direct lead into industry languages Raptor flowchart languages Flowchart visually captures the execution model Helpful if a standard layout is used, but that's not typical Windows-only application Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Coral language and simulator Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Coral: Student usage data Early data on student usage ENGR 1: Required 1-unit Freshmen course on professional development Fall 2018, 159 students Assigned 28 sections (across 4 chapters) from the Programming Concepts zyBook that uses Coral Reading: Consists of brief text, animations, and learning questions Homework: Consist of about 5 levels that get incrementally harder and provide immediate feedback via auto-grading Assignment Due Time Spent (Avg. Minutes) Chapter 1: Basic input and output Chapter 2: Integer and floating-point variables Middle of term 80 Chapter 3: if-else and operators in branching Chapter 4: while and for loops 5 days later 88 Survey 1: Prior programming experience Survey 2 Survey 3 Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Coral: Student survey responses Survey Question End of ch 2 End of ch 4 The flowcharts were easy to understand. 0.9 The code was easy to read and understand. 0.8 The code was easy to write. 0.3 0.2 I often struggled with writing the code for the challenge activities. -0.3 -0.1 I think I like programming. 1.2 1.6 I often was frustrated by issues with the programming language. 0.4 0.6 Both code and flowchart views easy to understand Minor amount of frustration Liked programming Range: -3 (Strongly disagree) to +3 (Strongly agree) Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Conclusions Coral is an ultra-simple language that focuses on teaching core programming concepts Coral may be useful in CS0 to give students a flavor for programming, or CS1 to teach core programming concepts before transitioning to an industry language In 168 minutes, students with a little programming experience independently learned Coral Students tended to report that the flowcharts and code were easy to read Coral has been used by about 2600 students at 21 universities Coral: Code view integer x Put "Enter number" to output x = Get next input Put 2 * x to output Coral: Flowchart view Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu

Thank you, Gracias, Danke, Merci, Tak, ありがとう, Kittos, Dank je, Grazie https://corallanguage.org Roman Lysecky, University of Arizona, rlysecky@ece.arizona.edu