Monday 3 August 2009

Overview of the Project

The basic ami of thei project is to be able to teach childrean that are in either pramary school or early secondary school basic idears of programming and remove the fear of programming.In the this i would produces a set of labs or lessons that would introduce and teach kids the basic concept of programming.
When relating to kids its very immport that presenting new ideas to them must be as exciting and inviting as possible so that they would always be encouraged and make them willing to learn.The language i intend to use is squeak which is an object oriented.
To achieve all of this a series of labs that would take the student from one level to the next never very gently making it easy for the student to enjoy and always come back finish the set lab and as a result progress is recorded.The clossroom project would allow the children to directly manipulate graphical objects called e-toys and control their behaviour makeing them carry out a specific action.

Monday 29 June 2009

Story telling Alice

www.alice.org

Story telling Alice was created by Caitlin Kellcher which was part her doctoral work in computer science.
To enable and encourage users to create animated stories, story telling Alice includes;
1) Animation that are high level which enables the user to program social interactions between characters.
2) The idea of a story based tutorial that introduces users to programming through building a story.
3) Alice has a gallery of 3D characters and scenery with custom animations which can be used and arranged to tell a story.

In Alice,to create or make a character perform an action we use something called a parameter. To make your character to do new things, all that is needed is create a new method for them. In other to create a new method,you select the name of the character you want to perform the given task in the object tree and then click on its create new method button. You give your animation a new name preferably what you would want the character to do so that you don't get confused and press the ok button. Alice on its own would then open a new method editor for the given name of the method. In this new editor, you can now teach or make a character perform a given task or set of tasks. The concept of Algorithmic thinking is made practical as in when a character is to perform a given task it has to follow an algorithm. Its from the algorithm that the designer would be able to know what comes first. In Alice there are different commands that can be used to cause a change on the animation.

Each figure has parts and in the part when you open them you would find the various methods that each of them you would find the various methods that each of them can do and this can be used in making the figure do that which is desired. The loop is use to make the character perform an action several times as required.

It becomes necessary that when a scene is laid out in Alice you'll probably want to animate it. As in squeak,every character and object in the scene you are creating has a tile in the object tree. All you do if you want to know what method a character can do is, click on the tile of the character in the object tree. Then you'll see a list of the various meths that that character in question knows how to do and if a change or modification is desired it can then be done here. To add an animation to a character all you need do is drag and drop the animation tiles into the method editor. When you have done all this, the next thing is to click the play button to see what your Alice program looks like.

The process of adding objects to your Alice world is easy. All you need do is click on the add object button. Once tou are in the Alice gallery,to add characters and screnery to your Alice world is simply by dragging cards into your scene. To get back to the main gallery, click on the local gallery.

Objects can be moved by simply clicking on them and moving them to desired position. To resize, turning the object, copying can all be possible by using the controls on the right. Making a mouse move an object, you select the control from the right button where you can select the required task. When telling a story, multiple screnes would make it more intresting. In creating a new scene, click on the create new scene button. After this has been done you can then give the new scene a new name, choose what kind of ground you want then click ok.













Developing Algorithmic Thinking(Alice as a case study)

www.sju.edu

The concept of Algorithmic thinking is used in Alice to get the reguired outcome as it is used in every basic program.Alice as must have known already is a 3-dimensional animation tool as i have recorded from "programming with Alice".

An Algorithm is a method to solve a problem that consist of exactly defined instructions. Algorithmic thinking therefore is the ability of a person to construct and understand Algorithms.Its starts from the Ability to analyze the given problem,specify the problem precisely,find the basic actions that are adequate or useful in solving the problem,you should as well be able to to think about all possible cases either normal or specific to get the problem solved,and finally at the end write out a correct algorithm to solving the problem.

Most times times students find it difficult ti think in an algorithmic pattern or way even though unknowingly its is in them. What i have found out is that the student(a kid or some one already in collegde) needs to develop his way of thinking and at the end he would realize that its all in him/her all along. For kids developing their algorithmic thinking if i may put it that way,is a very easy since its always easier to teach kids because when they understand it never leaves them. It is always easier when the student or kid is showed;
1) How to identify a problem
2) How to break down the problem
3) Hence the problem is broken down,a step by step approach to the different task would make
the over all task easier.

I take the subject of Algorithmic thinking as a very important one because,it makes the idea of programming a more friendly subject since the student does notbsee a very big problem but small chunks or bits of task to be done.







Wednesday 24 June 2009

Minutes of meeting(23/06/09)

The meeting started with my supervisor explaining more what the project investigation entails.
He said that its in three stages :
1) What the software does and how its different from other softhwares like scratch,Alice,etc.
2) Types of educational theory about the software and having in mind your defined audience and i
should research on that.
3)Looking at the internet on what other people have done on projects that are aimed at teaching
programming.

After all this has been done,materials that was reviewed/studied would be documented and as such would be brought together by then an idea of what i would do should be clear.
It was stressed that i should think on what subject matter i would be teaching,the target to be taught and what design platform would be used which is the implementation phase.

Search what other have done on trying to teach kids programming, look into story telling Alice(www.Alice.org)


Tuesday 23 June 2009

Programming With Alice

Resources - Learning To Program With Alice
By Wanda P.Dann
Stephen Cooper
Randy Pausch

Programming as a course,in this book was taken to a different level with the concept of keeping things simple.Introductory programming has always been a frustrating course for many students,and with regards to the topic in mind(Teaching kids How To program) it would even be more difficult.
The Alice system represents a breakthrough in teaching object-oriented computing.In Alice objects are visible,because they are represented as three-dimensional human,animals,furniture,etc. Computation is displayed via animations making it interesting in passing the idea of programming to students. Programming using Alice system takes an innovative approach to the subject.
A student in programming course should learn algorithmic thinking and expression,which is expressing in a logical way how an object can perform a task. Abstraction as a major part of programming explains learning how to communicate complex ideas simply and to decompose problem logically. One basic idea that is obvious in programming is that problem can be solved in different ways but all getting the same goal/results. Its also important to note that since they are many ways to solve a problem, Some are inherently better than others.

The approach allows students to author on screen movies and games,in which the concept of an object is made tangible ans visible. In Alice on screen,on-screen objects populate a 3D micro world.Students create programs by dragging and dropping program elements(is/then statements,loops,variables,etc.) in mouse-based editor that prohibits syntax errors.The Alice system provides a powerful,modern programming environment that supports methods, functions variables, parameters, recursion,arrays, and events.

Thursday 18 June 2009

A Look at Scratch

Site visited - www.en.wikipedia.org/wiki/scratch

Scratch is a new programming language that lets the user to create their own interactive stories, animation, games, music, and art. It is a language that makes it easy to create your own interactive stories, games, and animations and share your creations with others on the web.

It was developed by the life long kindergarten research group at MIT media lab. This group develops new technologies that, in the spirit of the blocks and finger paints of kindergarten,expand the range of what people can design, create, and learn.

Basically,scratch is an interpreted dynamic visual programming language based on Squeak and implemented in Squeak. Being dynamic, it lets code be changed even as programs are running. It has the goal of teaching programming concepts to kids and teens and letting them create games, videos, and music. It can be downloaded for free and is being used in a wide variety of in-school and after-school settings around the world. In Scratch all the interactive objects, graphics, and sounds can be easily imported to a new program and combined in new ways. That way, beginners can get quick results and be motivated to try further.

Scratch is designed to help young people (ages 8 and up) develop 21st century learning skills. As they create and share Scratch projects, young people learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.

It became porpular in teaching teens how to program because,of the ease with which programs can be made; the statements and data structures are simple and are at least partially written in common spoken language, and the program's structure can be designed as a jigsaw puzzle is, with detachable blocks of code that can be moved around and fitted together.





Tuesday 16 June 2009

Concluding Tutorials from Wave Pace

21 (Using the Joy stick)

The task in this lesson is to guide the sketch to touch somethings and leave out some. To make this is by using a tool called joy stick which is in the supply bin. The joy stick makes it a little more easy in moving sketches to target.

Lesson 22 (Flipping sketches; relational tests)

In this lesson a sketch is made to flip in the opposite direction. When the rotate icon is used in the halo it does not flip it but only rotates the sketch. To flip a sketch on the viewer the rotation style is changed to flip left right and the heading is changed to negative of what its value was.
Also a kind of test was explained here that when a sketch move to another sketch,the other sketch should have a form of reaction. All this can e possible by opening the halo of both sketches and getting the view open and a test from one of the sketches and the exact tile is dragged to the scrip and manipulated to get a functional script.

Lesson 23 (Sound recorder)

As the lesson start the concept of having a tile dragged out and kept outside the book so we can see as values changes was explained and the tile tile dragged out is called a watcher.
In making a different sound (customize/your own) from that which is on the category,the supply bin is opened and sound recorder is dragged out. The recorder button is clicked and the sound or message is recorded then after which the save button is clicked so that it opens a tile and the sound recorded is saved as a tile and can be used in the script.
It was also explained how to embed text,sketches, on a page so as to have all jobs embedded on a page so it does not stay on the desktop and not appear the way that is expected. This can be done by clicking the menu button on the halo of the text or sketch and embedded is clicked and options of in the page is chosen and this keeps the text or sketch on the page.
The lesson also explains how to read a text on every page and save on that page so that children that cant read can understand the story which is called the narration track.

Lesson 24 (Advanced start over)

In this lesson emphasis is placed on organizing the script already made so that things don't get too scattered and looking for scripts becomes difficult. This can be achieved by simply putting a start over on every page of the book. It would be useful to name every page so that it makes sense. Its also important to note that you never forget that every start over script should always have a pause at the end.

Lesson 25 (Obtrudes test,random movement)

Copies of sketches are made and renamed for the next page.When increasing the size of a sketch, it is useful to keep hold of the shift key on the keyboard so that the size is kept but just enlarged.
A sketch is made to fall, and when it does fall,as it gets to the bottom of the page it should reappear in adifferent position. To make this happen a test known as obtrudes is used. It is found on the test category on the viewer.The tile is dragged and placed on the script then datas are manipulated, The pallet(this icon looks like the supply bin icon on the halo) on th script has some tools that the sketch can use in getting it to do what it needs to get done.

Lesson 26 (Siblings,is used under move test)

The sketch halo has a duplicate key but also when the shift key is held and the duplicate key is clicked it produces siblings which is not a duplicate. The siblings are not duplicate because,it shares the same script with its original sketch. When siblings script is changed it affects all the other siblings.
The goal here is to make a sketch have copies without actually writing different scripts for the different sketches.In this lesson,we are to make a sketch disappear when the mouse is on it. To make this happen a new test is open and from the view, under the category section,a desired tile of make sketch hide is added to the script and this does the trick.

Lesson 27 (Following a path)

The path is drawn and the move script of the sketch is opened. A new script is opened and named,a move forward tile is dragged to the script then a test tile is dragged and droped on the script. The test would be carried out by dragging a tile of choice and tested.

Lesson 28 (Adding variables,book tiles)

To get the siblings fall at different positions,avriables are used since if the speed is changed for a sibling it does not actually work because it goes through for all of the siblings and that is why the variables are used here to change the positions of the siblings. The random tile is also used here to add some random behaviour to the falling sketches and that makes the project more exciting.

Lesson 29 (Image import,turn towards)

In this lesson we would be using the same tiles.An image can be copied from files already stored on the system and can be gragged to the page of your project and used at a sketch. This can be done by gragging the sketch to the pageds of the project and made to do stuffs as any other sketch.
In this lesson it is explained how a sketch can be made to always face another no matter the movement of the other sketch. To make this happen the one of the sketches is made to face the other by opening its halo and the appropriate tile is dragged and brought to its script.A tile known as turn towards is dragged from the view to achieve this.Other tile and test are also added to the script so as to get all desired outcome.

Lesson 30 (Script parameter,object catalog)

The aim of this lesson is that a sketch moves to another and when it overlaps it causes an action. A script i developed for the other sketch so that when the sketch overlaps it something should happen.The parameter is another programming concept. Basically what it does is using the same code but passing passing different numbers to it. Lesson 21 (Using the Joy stick)

The task in this lesson is to guide the sketch to touch somethings and leave out some. To make this is by using a tool called joy stick which is in the supply bin. The joy stick makes it a little more easy in moving sketches to target.

Lesson 22 (Flipping sketches; relational tests)

In this lesson a sketch is made to flip in the opposite direction. When the rotate icon is used in the halo it does not flip it but only rotates the sketch. To flip a sketch on the viewer the rotation style is changed to flip left right and the heading is changed to negative of what its value was.
Also a kind of test was explained here that when a sketch move to another sketch,the other sketch should have a form of reaction. All this can e possible by opening the halo of both sketches and getting the view open and a test from one of the sketches and the exact tile is dragged to the scrip and manipulated to get a functional script.

Lesson 23 (Sound recorder)

As the lesson start the concept of having a tile dragged out and kept outside the book so we can see as values changes was explained and the tile tile dragged out is called a watcher.
In making a different sound (customize/your own) from that which is on the category,the supply bin is opened and sound recorder is dragged out. The recorder button is clicked and the sound or message is recorded then after which the save button is clicked so that it opens a tile and the sound recorded is saved as a tile and can be used in the script.
It was also explained how to embed text,sketches, on a page so as to have all jobs embedded on a page so it does not stay on the desktop and not appear the way that is expected. This can be done by clicking the menu button on the halo of the text or sketch and embedded is clicked and options of in the page is chosen and this keeps the text or sketch on the page.
The lesson also explains how to read a text on every page and save on that page so that children that cant read can understand the story which is called the narration track.

Lesson 24 (Advanced start over)

In this lesson emphasis is placed on organizing the script already made so that things don't get too scattered and looking for scripts becomes difficult. This can be achieved by simply putting a start over on every page of the book. It would be useful to name every page so that it makes sense. Its also important to note that you never forget that every start over script should always have a pause at the end.

Lesson 25 (Obtrudes test,random movement)

Copies of sketches are made and renamed for the next page.When increasing the size of a sketch, it is useful to keep hold of the shift key on the keyboard so that the size is kept but just enlarged.
A sketch is made to fall, and when it does fall,as it gets to the bottom of the page it should reappear in adifferent position. To make this happen a test known as obtrudes is used. It is found on the test category on the viewer.The tile is dragged and placed on the script then datas are manipulated, The pallet(this icon looks like the supply bin icon on the halo) on th script has some tools that the sketch can use in getting it to do what it needs to get done.

Lesson 26 (Siblings,is used under move test)

The sketch halo has a duplicate key but also when the shift key is held and the duplicate key is clicked it produces siblings which is not a duplicate. The siblings are not duplicate because,it shares the same script with its original sketch. When siblings script is changed it affects all the other siblings.
The goal here is to make a sketch have copies without actually writing different scripts for the different sketches.In this lesson,we are to make a sketch disappear when the mouse is on it. To make this happen a new test is open and from the view, under the category section,a desired tile of make sketch hide is added to the script and this does the trick.

Lesson 27 (Following a path)

The path is drawn and the move script of the sketch is opened. A new script is opened and named,a move forward tile is dragged to the script then a test tile is dragged and droped on the script. The test would be carried out by dragging a tile of choice and tested.

Lesson 28 (Adding variables,book tiles)

To get the siblings fall at different positions,avriables are used since if the speed is changed for a sibling it does not actually work because it goes through for all of the siblings and that is why the variables are used here to change the positions of the siblings. The random tile is also used here to add some random behaviour to the falling sketches and that makes the project more exciting.

Lesson 29 (Image import,turn towards)

In this lesson we would be using the same tiles.An image can be copied from files already stored on the system and can be gragged to the page of your project and used at a sketch. This can be done by gragging the sketch to the pageds of the project and made to do stuffs as any other sketch.
In this lesson it is explained how a sketch can be made to always face another no matter the movement of the other sketch. To make this happen the one of the sketches is made to face the other by opening its halo and the appropriate tile is dragged and brought to its script.A tile known as turn towards is dragged from the view to achieve this.Other tile and test are also added to the script so as to get all desired outcome.

Lesson 30 (Script parameter,object catalog)

The aim of this lesson is that a sketch moves to another and when it overlaps it causes an action. A script i developed for the other sketch so that when the sketch overlaps it something should happen.The parameter is another programming concept. Basically what it does is using the same code but passing passing different numbers to it.