IMAGI- Child Friendly Programming Language Project Requirements and Main Features

Prepared by: Héctor García ([email protected]) Edgardo Rivera ([email protected]) Jariel Laureano ([email protected])

Introduction

Project Motivation With the technology industry developing at a rapid pace, the need for more programmers increases everyday. Little options exist to introduce programming to kids successfully, this is why our team decided to attack this need. By creating a new programming language focused and designed for children we will be able to encourage and motivate students at a young age to pursue STEM related careers but specifically, computer and software engineering majors. After experiencing IMAGI, kids will be able to understand the basics of programming, learn to have fun with it and be prepared to move to a more standard programming language like python or java in the future.

Features

Project Concept IMAGI is a child friendly programming language developed with the goal of introducing programming to kids in a new and interesting way from a very young age. Lines of code alone will surely have a hard time arousing any children at such a young age, this is the reason why IMAGI’s programming experience will be aided by a simple graphical user interface which will allow the programmer to interact with different characters and scenes, and create simple storylines by writing code. One of the challenges of kids as our scope is that this language must try to develop the programming instincts in the simplest way possible, avoiding complicated syntax, overcrowding of commands and ambiguity. Using commonly known words and making the programming language straightforward, as easy as talking, will be the focus. By doing this we will make sure the children understand the commands without putting too much thought into it, keeping them comfortable and confident while programming.

2

Example Program In general, the code will follow the convention showed bellow, taking into account indentation.

This convention will be used to interact with both characters and scenes. Apart from the simple commands for interaction, there is also a repeat command which will act as a simple loop and only two data types word(string) and number(integer). All this will be demonstrated below. Character Name Move Command Move Command Attribute

Word type variable and variable name

Repeat command with repeat times attribute Commands to repeat

3

When running the program all these commands will be reflected on your graphical scene which should include a simple character and a background. The character will react based on the commands issued, it will jump, move, prompt messages and much more. Commands/Tokens

Target

Jump Walk Say Domath

Character Character Character Character

Number of Attributes N/A 1 1 2

Turn Domultiple Dance Sing Grow Shrink Ask

Character Character Character Character Character Character Character

1 1 N/A N/A N/A N/A 2

Repeat Flip Run Time Word Number

Character Character Character Scene N/A N/A

1 N/A 1 1 N/A N/A

Attributes Description No attributes needed. Direction: left, right, forward or backward Text to say: raw string or word type Operator: add, subtract, multiply or divide Number/s to add: can be a raw number or a number type described below. Direction: right or left Character name No attributes needed. No attributes needed. No attributes needed. No attributes needed. Text to prompt: raw string or word type Variable to store input: word or number type Times to repeat No attributes needed. Direction: right or left Scene time: day or night Word type that will store strings. Number type that will store integers.

Implementation

Requirements and Tools The tools and requirements needed to be able to use our programming language are kept to the minimum possible so that it is easy to use in any of the most popular operating systems. It is required that the user has Python version 2.7.11 and PyQt4 installed to make sure the language can be run from the command prompt. The use of an IDE or command prompt directly will be avoided by providing an executable file.

4

Project Plan Task

Description

Start Date End Date

Programming Language Concept and Description GUI Design and Development

The team will get together to develop a proposal for a programming language to develop.

Feb. 1

Feb. 10

The team will decide on a design for the GUI to aid our programming language and work on the code development. The team will design the different scenes and characters for the programming language and will work on the code development of the animations. The team will decide on a syntax for the programming language and use one of the provided online tools to generate a scanner. The team will work on the development and testing of the parses for our programming language. The team will integrate all the previous phases on a complete application that will make the GUI work along with the scanner, parser and graphic animations. The team will work on a video tutorial on how the programming language works and write the final report and documentation needed. The team will work on the development of a simple webpage to showcase the programming language, give support and make the source code available.

Feb. 10

Feb. 15

Feb. 15

Feb. 22

Feb. 22

Feb. 26

Feb. 26

Mar. 7

Mar. 7

Mar. 24

Mar. 24

Mar. 31

Mar. 31

Abr. 7

Graphic Design and Animations

Scanner Development Parser Development GUI, Scanner and Parser Integration

Final Report and Video Tutorial Web Page Development

5

Timeline Development

Planning

1. Concept and Decription 2. GUI Design and Development 3. Graphic Design and Animations

Release

4. Scanner Development 5. Parser Development

7. Final Report and Video Tutorial

6. GUI, Scanner and Parser Integration

8. Web Page Development

APRIL

FEBRUARY 1

2

3

4

6

5

MARCH

6

7

8

IMAGI- Child Friendly Programming Language - GitHub

2. Introduction. Project Motivation. With the technology industry developing at a rapid pace, the need for more programmers increases everyday. Little options exist to introduce programming to kids successfully, this is why our team decided to attack this need. By creating a new programming language focused and designed ...

222KB Sizes 0 Downloads 288 Views

Recommend Documents

The Nile Programming Language - GitHub
Skia (Chrome, Android) ... if (currE->fLastY == curr_y) { .... Speedup on 40 core machine. 1. 10. 20. 30. 40. 0. 5. 10. 15. 20. 25. 30. 35. Cores. S p eed u p ...

The Ruby Programming Language - GitHub
You'll find a guide to the structure and organization of this book in Chapter 1. ..... Determine US generation name based on birth year ...... curly braces: "360 degrees=#{2*Math::PI} radians" # "360 degrees=6.28318530717959 radians" ...... of comput

Child theme Development - GitHub
Apr 7, 2014 - So the only HTML you have to write in on the position of

Build Your Own Programming Language with JavaScript - GitHub
Build Your Own. Programming Language ... Parser generators! OMeta-JS. Jison. PEG.js. JS/CC ... ook/LISP%201.5%20Programmers%20Manual.pdf.

Programming - GitHub
Jan 16, 2018 - The second you can only catch by thorough testing (see the HW). 5. Don't use magic numbers. 6. Use meaningful names. Don't do this: data("ChickWeight") out = lm(weight~Time+Chick+Diet, data=ChickWeight). 7. Comment things that aren't c

Interactive Console for the C Programming Language ... - GitHub
ccons. Interactive Console for the C. Programming Language. COMP 490 - Computer Science Project I. Concordia University - Winter 2009 by Alexei Svitkine.

Bro Network Programming Language & Bro-ids v2.1 - GitHub
HTTPS. SMTP. POP/IMAP. SSL/TLS. VPN. SIP. (DTLS). SSL/TLS USE CASES. + Credit Checks. + Authorization and Accounting. + Supply Chain Management. + e-Commerce. + Marketing. Widespread ...

Pawn The Language - GitHub
1. Foreword. “pawn” is a simple, typeless, 32-bit “scripting” language with a C-like syn- ... language in my publication in Dr. Dobb's Journal and the years since. .... cesses and runs on conforming Pawn programs —either interpreters or com

Programming Mobile Web - GitHub
Wordpress. Theme. Plugin. Joomla. Theme. Add on. Drupal. Module. Theme. More … Forum. Vanilla. esoTalk. Phpbb. More … More … Web server. Apache.

Open Shading Language 1.9 - GitHub
1 Introduction. 1. 2 The Big Picture. 5. 3 Lexical structure. 11. 3.1 Characters . .... OSL shaders are not monolithic, but rather can be organized into networks of ...

The C programming Language
A preprocessing step performs macro substitution on program text, inclusion of other .... Chapter 1 is a tutorial on the central part of C. The purpose is to get the ...... As an illustration of some of the bit operators, consider the function getbit

FRC Java Programming - GitHub
FRC Java Programming Last Updated: 1/11/2016 ..... NI Update Service .... network. When you have entered the team number and the roboRIO is connected, ...

Programming ESP8266-01 - GitHub
Programming ESP8266-01. Using ... Use Arduino IDE 1.6.5 (not higher). Page 7. Start Upload in Arduiono IDE via FTDI. • If you are using this board press the left.

Elementary programming - GitHub
VI Machine code. 9 .... nothing but consumes the same amount of time. zjmp %23 does : ... takes a register and displays the character the ASCII code of which is ...

Heterogeneous Parallel Programming - GitHub
The course covers data parallel execution models, memory ... PLEASE NOTE: THE ONLINE COURSERA OFFERING OF THIS CLASS DOES NOT ... DOES NOT CONFER AN ILLINOIS DEGREE; AND IT DOES NOT VERIFY THE IDENTITY OF ...

The C programming Language
3. The for statement. 4. Symbolic Constants. 5. Character Input and Output. 1. .... assignment or a function call, can be a statement. Pointers provide for .... The only way to learn a new programming language is by writing programs in it. The first 

The C programming Language
developed, since both the system and most of the programs that run on it are written in C. The language, however, is not tied .... Most can be written in C, and except for the operating system details they conceal, are ... Chapter 7 describes the sta

child- and youth-friendly land-use and transport ...
1. http://oecdpublications.gfi-nb.com/cgi-bin/ OECDBook-Shop.storefront/. Accessed April 14, 2005. 26. See Health aspects of air pollution: Results from the ...

VDM-10 Language Manual - GitHub
Overture Technical Report Series. No. TR-001. May 2017 ... Document history. Month. Year Version Version of Overture.exe Comment. April ... Contents. 1 Introduction. 1. 1.1 The VDM Specification Language (VDM-SL) . ..... 13.3.1 Classes .

ActionScript® 4.0 Language Specification - GitHub
Dec 13, 2012 - Computer Software Documentation,'' as such terms are used in 48 C.F.R. §12.212 ... Dec 5 2012 Added syntactic support for variable-length unicode escape ...... 365. Expression. 366. ReferenceExpression = Expression. 367.