Teaching Programming Using Android App Inventor

Ideal for a school which has Android tablets. This is feasible as many schools are using iPads, so surely somewhere will be using something better.

Task involves students using the Android App Inventor from google, which features an interface very similar to scratch.

Year Level and Topic:

This will be taught at year 10, and fits perfectly into level 6 VELS IT. This is because the VELS interdisciplinary IT standards are so vague that pretty much anything could be taught, as long as it uses a computer and can use the words “visual thinking”, “creating”, and “communicating”. This covers these three as follows:
Visual Thinking – Students are required to visualise the task of programming by both creating an interface and usual visual representations of programming blocks.
Creating – Students are required to create their own Android app, which will both be functional and based on their own original ideas and planning.
Communicating – Students will be able to communicate with their app because they will be able to share their ideas with others students who will be given the opportunity to explore what they have created on tablet devices.

This would be an ideal learning object to teach in a school which uses Android tablets. This is feasible as many schools are already using iPads, and you would expect that some schools would be using Android tablets.

The task involves students using the Android App Inventor from Google, which features an interface very similar to Scratch. Students will be able to design their own programs, and then run them on an emulator on the computer, and ultimately run them on the tablets which they use for school. This has the benefit of them being able to see real world applications of what they have created.

Students will be able to learn how to do this from both the teacher’s explanations, as well as videos which the teacher will select for students to watch.

The mash up aspect of this task comes primarily from the two forms of hardware being used, both the computer and a tablet, but also includes different media forms, such as YouTube videos and text.

Justification for using App Inventor:

The reason I chose to base this learning object around the Android App Inventor is that not only does it provide an easy introduction to programming, it also incorporates mobile technologies, such as mobile phones and tablets, and gives students a chance to experience something a bit more real from what they produce.

Also, you may have read that Google is discontinuing App Inventor, however, MIT is taking over, as the source has been released by Google.

http://web.mit.edu/press/2011/mit-launches-new-center-for-mobile-learning.html

This is great news, especially considering their work with Scratch, another great programming tool aimed at young people. To take a quote from the article:

The Center’s three directors have a long history of collaboration on educational technology. Resnick, who heads the Media Lab’s academic Program in Media Arts and Sciences, is famous for his work on LEGO Mindstorms and Scratch, two of the world’s best known and most influential platforms for introducing young learners to programming.”


The stages of this learning object will be:

  1. Students learning what the App Inventor is and how to use it.
  2. Students creating their own apps, and running them on the emulators.
  3. Students sending their apps to their tablets, and being able to show it off to their classmates and students in other classes.
  4. Marking of the students’ apps.

Prerequisites/Requirements:

  • Computers that students will be using will have the emulator software installed and ready to use.
  • The App Inventor itself is run out of the browser with ajax and java, however, students may need a Google account to access it. (http://www.appinventorbeta.com)
  • Drivers installed and USB cables to allow sending the apps to students’ tablets or even their phones. (Specific to the hardware in use)

Basic lesson outline:

  1. First lesson will introduce students to what the App Inventor is. Will watch the short video from google which shows the cat app being made and set to the phone.
  2. Teacher will run the App Inventor on the projector, showing students the basic interface, explain how the design aspect of the program works, then invite students to try designing a simple interface on their own computers. Possisbly set requirements such as a picture and two buttons.
  3. The second lesson will being to introduce the programming aspect of App Inventor. Depending on if students have had experience using Scratch or not, the level of explanation that goes into this will vary (This is because both programs use a very similar interface with puzzle block style pieces.) How to use the emulator will be shown, as well as how to send their programs to their own tablets.
  4. The third lesson will continue on from the second, but will allow students to try out making simple programs involving buttons, text, and images.
  5. The fourth and possibly fifth lesson will cover some more advanced topics such as animation and variables, as well as loops, and will have students trying out simple examples such as making a counter that increases when a button is pressed, for example.
  6. From the fifth (or sixth) lesson and onwards, students will begin work on their assignment, after having it explained to them by the teacher. The assignment is detailed below.
  7. Once the assignment is finished, students will be given the opportunity to share their apps with other students on their tablets.

Assignment:

The assignment for this unit of work is fairly flexible, and can be anything that tests the students’ knowledge of the basic programming concepts which have been taught and their ability to put them into practice in creating a final app. Here is one example of an assignment for this topic.

For this assignment, students will be required to make a game using the App Inventor, exactly what they make is up to them, but it must involve the following programming aspects:

  • Buttons
  • Text
  • Images
  • Variables
  • Loop(s)

Students could for example, make a card game, or something like whack-a-mole, or even a simple role playing game.

Students will be assessed on whether or not their final app includes the required components, as well as whether or not it runs on the tablet.

Final Words

I think I’ve covered everything that needed to be, if not, let me know and I’ll add it in :-)

Seeing as VELS IT isn’t even a real subject, you can justify teaching pretty much anything, as long as it involves the words create, visual thinking, and communicating.

Just sayin’…

I better make a start on this assignment…

Introduction

Python is a high level programming language with a syntax very similar to written English. Because of this, and the wide variety of resources on it available, it makes it an ideal language to teach in VCE Information Systems. It is listed as an approved programming language for this subject (http://www.vcaa.vic.edu.au/correspondence/bulletins/2010/June/vce_study.html#4).

Why Python?

Python provides a great introduction to programming for people who have no prior programming experiences. There are a number of reasons for this:

  • Easy syntax. Not as strict or complex as languages such as C++ or Java,
  • Easier to understand by just reading, similar to pseudo-code.
  • There are a lot of resources available online for learning Python, especially in relation to new programmers. (http://wiki.python.org/moin/BeginnersGuide/NonProgrammers)
  • Easier to debug. This is especially important for those with no programming experience.

Finally, Python does what the course aims to do, that is, teach the basics of programming such as variables, program flow, input, output, etc., without burdening the student with irrelevant low level considerations such as including headers and compiling.

Resources

Because Python is commonly used as an introductory programming language, there are a lot of resource available which are aimed at people who have never programmed before.

I was just playing around with Scratch for the last few hours and I put together this crappy little tank shooting game. Didn’t bother following the tutorial, it all seemed fairly self explanatory.
When you start it it randomly generates some terrain then puts a tank in the middle. From there you can change the power/speed of the bullet and the angle it fires. Once fired, using sin and cos it will shoot in the direction you are aiming and be (crudely) affected by gravity. Also, yes, looking at the code, it is pretty dodgy. x + (0 – y) instead of x – y, lol, it’s too much effort to switch things around so it stayed bad.

Here’s a link to it if you want to try it out http://scratch.mit.edu/projects/rbriscoe/2071474

Here’s a video of it:

And here’s all the code for it:

TI-BASIC is the programming language used on a range of TI graphics calculators, such as the TI-83 series and the TI-84+ series. This is of consequence because these calculators are commonly used for high school mathematics, especially in higher level classes when graphing functionality is required.

The best thing about programming in TI-BASIC is that is can be done completely on the calculator itself, with no need for a computer.

There are a number of benefits to teaching students how to program TI-BASIC, and could be taught during IT or integrated into a maths class.
Firstly, TI-BASIC is a great introductory programming language, and features most things you would expect, such as input, text and graphics output, variables, conditional statements, loops, etc. Unfortunately not functions, but it has goto statements.
Secondly, if integrated into a maths class, TI-BASIC can be used to help students understand various formulas by creating programs using them. These range from simple things such as converting a temperature between fahrenheit and celcius, to advanced things such as interfaces for creating graphs, etc. The major benefit of doing this is that the students are required to extend their knowledge and create using what they have learned, rather than just remembering.

There are a number of resources available for learning how to program in TI-BASIC, ranging from beginners guides aimed at people who have never programmed before, to things a bit more advanced. Here is a list of some of these resources:

TI-83 Plus BASIC Programming Tutorial: A Beginners’ Guide
http://www.ticalc.org/programming/columns/83plus-bas/cherny/
This guide outlines most of the functions you would want to use when programming. It does not cover programming basics/theory however.

TI-BASIC Wiki
http://tibasic.wikia.com/wiki/Main_Page
The TI-BASIC Wiki has information about all aspects of the language and is a great resource for learning as well as reference. The site contains pages about individual functions which explain how they work and their usage, as well as introductory guides to programming in TI-BASIC.

http://tibasic.wikia.com/wiki/Beginner%27s_Guide_to_Programming_TI-BASIC
http://tibasic.wikia.com/wiki/TI-Basic_84_Programming
Both of these guides give a good introduction to programming in TI-BASIC, and is worth reading both together as each explain certain topics better than the other, for example, the second provides a very good introduction to variables.

Continue reading »

I just went through and deleted just about every comment on here, due to them all being spam. The first few comments weren’t so I left them, but anything that was mixed in with them is gone :-( Hopefully with the confirming comments thing turned on it should be a lot cleaner from now on :-\

Here are use cases along with a diagram of the Learning Area IT Wiki system. It has been kept fairly abstract, as we are not at all concerned with the workings of the wiki at a database level, etc.

Use Case Diagram

Actors:

  • Student Teacher – People participating in the LAIT subject, who will be contributing and maintaining this wiki.
  • Teacher (Without Edit Privleges) – Any teacher who is able to view the wiki but not contribute or edit.

Use Cases


Use Case 1: Create Page


Scope: Learning Area IT Wiki
Level: user goal
Primary Actor: Student Teacher
Stakeholders: All users of the system, as page creation is necessary for all other use cases.
Precondition: The wiki must be set up and functioning.
Main Success Scenario:
1. Student Teacher tries to create a new page.
2. Student Teacher enters the name of the new page, according to accepted naming conventions.
3. Page is created (if not already existent) and student teacher is forwarded to the Edit Page case.


Use Case 2: Edit Page


Scope: Learning Area IT Wiki
Level: user goal
Primary Actor: Student Teacher
Stakeholders: All users of the system, as content creation is necessary for the wiki to be useful.
Precondition: The wiki must be set up and functioning and the page to be edited must exist.
Main Success Scenario:
1. Any of the following scenarios are applicable to the edit case:
1a. Edit the title of the page.
1b. Edit the content of the page.
1c. Edit the page’s tags (add, remove, etc).
1d. Remove the page from the wiki.
2. Save the changes to the wiki database.


Use Case 3: View Page


Scope: Learning Area IT Wiki
Level: user goal
Primary Actor: All actors
Stakeholders: All users of the system.
Precondition: The wiki must be set up and functioning and the page to be viewed must exist.
Main Success Scenario:
1. User requests a page from the wiki.
2. The page requested is returned for the user to view.


Use Case 4: Search for Page


Scope: Learning Area IT Wiki
Level: user goal
Primary Actor: All actors
Stakeholders: All users of the system.
Precondition: The wiki must be set up and functioning.
Main Success Scenario:
1. User requests a listing of all pages related to their search term.
2. All pages matching this are returned to the user, allowing them to view them if desired.


© 2011 IT Learning Area Suffusion theme by Sayontan Sinha