kfrog graphics language for kids rami habas - project manager kyoho satsumi - system architect...

14
KFrog Graphics Language for Kids Rami Habas - Project Manager Kyoho Satsumi - System Architect Hidemitsu Izawa - Tools Guru Murat Dogru - System Integrator Gaurav Pandey - Tester

Upload: phebe-butler

Post on 18-Dec-2015

220 views

Category:

Documents


5 download

TRANSCRIPT

KFrog

Graphics Language for Kids

Rami Habas           - Project Manager Kyoho Satsumi       - System Architect Hidemitsu Izawa     - Tools Guru Murat Dogru           - System Integrator Gaurav Pandey      - Tester

Introduction

• KFrog is an imperative, interpreted language for generating 2D graphics

• Motivationo To solve a real-world problem as presented in "Human 

computing skills: rethinking the K-12 experience" o To segue kids and adolescents into a computational way of

thinking•  KFrog language features

o Simplicityo Randomnesso Concurrencyo Portability

Example - Olympic Flag

Source Program     Output

Syntactic constructs

• Syntactic basic blocks: expressions, statements, declarations, and function definitions

• Syntactically simple and intuitive

• Line terminator serves the purpose of a statement terminator.

• Supports user-defined functions, and has some predefined functions.

• Allows only local variables , i.e. each function has its own scope.

    void break repeat speed leftcurve    decimal continue clearscreen startdraw rightcurve    real return reset stopdraw center    logical if pondsize forward goto    true else pondcolor turnright random     false while frogcolor turnleft

Syntactic constructs

Key Words

/*Olympic Parallel*/main () {            pondsize 720,480            new frog {                    frogcolor bule                    goto 160,200                    startdraw                     circle(80)                    stopdraw             } 

                ...

}

void circle (decimal radius) {        leftcurve radius,360}

                  

  positions the frog

calls the circle function

receives radius of decimal type

directs the frog to move to the left along a circular arc

Syntactic constructs

sets up frog's color and its drawing

 creates a frog object

Interpreter Architecture

 

FrontendOlympic.kfrog program Syntax Tree

LexerParser

WalkerInterpreter

LexerParser

Frogaction

list

Backend

Concurrency support • The Frontend defers the

execution of all the actions for later

• The Backend executes the actions concurrently using threads

Backend

• Java Swing Animation • Concurrent Frog Animation = Multithreaded program• Each frog = Thread

State• color• speed• location (x,y) ...etc

Action• forward• turnleft ...etc

Software Purpose

Java SDK ver6 Development Environment + Target Lang

Windows XP, Vista, Linux Operating System

Eclipse + ANT IDE

ANTLR Frontend

Subversion + Google Code Version Control + Issue Tracking

Google Docs, Presentation Document / Presentation sharing

Development environment and support tools used

Validation

1. Save the output of debug message from Console into a .debug file   

2.  Design the Test File on    the basis of Gold Standard representation and save as .gold file

Testing Algorithm

pondsize 720,480    pondcolor white    1 new Frog {    1 frogcolor blue    1 speed 5    1 center    1 goto 160,200     1 leftcurve 80,360    1 stopdraw

    1 }......

<pond xsize="720" ysize="480" color="WHITE">   <frog id="1" speed="5" color="blue">        </center>        </goto xvalue="160" yvalue="200">        </startdraw>        </curve type="leftcurve" radius="80" degree="360">        </stopdraw>   </frog> ......

ValidationTesting Algorithm

3) Load the content of both the files into two data structures 

4) Compare both data structures and suggest the final outcome={PASS,FAIL} 

Debug 1 new Frog#{#1 frogcolor blue#1 speed 5#1 center#1 goto 160,200#1 startdraw#1 leftcurve 80,360#1 stopdraw#1 }# Gold1 new frog#{#1 frogcolor blue#1 speed 5#1 center#1 goto 160,200#1 startdraw#1 leftcurve 80,360#1 stopdraw#1 }#

Gold File: T13OlympicParallel.gold & Debug File: T13OlympicParallel.debug >> Result: PASS

Conclusions• Lessons learned

o tangibles ANTLR Java Swing Java Concurrent Programming

o intangibles Optimizing everyone's contribution under the given

constraints Team dynamics could be NP-hard

• Highlightso Parallelism can be visualized by the use of multiple frogs

• Future worko Add a language keyword that allows the user to choose

between parallel and sequential execution

Why KFrog?

http://www.youtube.com/watch?v=nZef5s5PlsEhttp://www.youtube.com/watch?v=jN2lk1LjLR4