Showing posts with label free. Show all posts
Showing posts with label free. Show all posts

What programming language should I use/learn?

I get asked often, "Which programming language should I start with?" or "I teach _______ which language would be the best for my classroom?" My goal is not to promote one language but show you the benefits of each of the more popular choices out there and let you make your own decision. There really is no one "best" language, just the best language for what you are interested in doing.

As always I promote technology that:

  1. Enhances or encourages learning. Programming is one great way to implement Computational Thinking into your class.
  2. The software is free and open source.

Disclaimer: These are intended to be a summary. They are presented in no particular order.

Python

Free? FOSS (Free as in zero cost and open source)
Requires an installation? Yes but there are web based options like sage math notebook. Python comes preinstalled on Mac and Linux.
Strengths: 
  • The syntax is very high level so you and your students can take your ideas and very quickly turn them into code. 
  • Python is interpreted so as soon as you press enter or run the code you can see the results. 
  • It has a large number of modules and support for graphics (e.g. VPython), physics, math, language parsing and more.
  • Great for prototyping, web, data mining/processing, and almost anything!
Recommended Tutorials:
    Codingbat


Javascript

Free? FOSS
Requires an installation? No
Strengths:
  • Coupled with HTML5 and CSS allows you to add a lot of power and interactivity to your web pages and applications.
  • Gives you to access web APIs (directory of available APIs) and use other services.
FYI: Javascript fails silently (meaning if there is a bug, it just won't work the way you intended, there won't be an error message) so use lots of debugging techniques and logs to debug. This is far easier than it may sound and is useful to learn regardless of what language you are using.
Recommended Tutorial:


Processing

Free? FOSS
Requires an installation? Yes
Strengths:
  • Designed to be very easy to make something visual, beautiful and/or interactive.
  • With both Processing and Arduino, it provides an introduction to C++ that is less intimidating.
Recommended Tutorials:
    Examples in the Processing software (Select File and then Examples)


Arduino

Free? 
  • Hardware: No but Open Source (Sparkfun, Adafruit, and Radio Shack are trusted suppliers)
  • Software:  FOSS
Requires an installation? Yes
Strengths:
  • Works with off the shelf parts (e.g. motors, LEDs) to cheaply and easily build projects that sense, move, light up, etc.
  • Many "shields" are available to easily add functionality like Bluetooth, Wifi, audio, etc.
  • Hardware is relatively inexpensive (~$20-30)
  • Interfaces easily with Processing to add interactivity and data visualization.
Recommended Tutorials:
    Examples in the Arduino software (Select File and then Examples)
    Sparkfun Education

Subscribe and follow Phil for more on education and technology.

ClassConnect makes sharing resources and collaborating easy

By some estimates there are approximately 4 million teachers in the US. On any given night, weekend, holiday, teachers are thinking about what to do in their classrooms. Some are developing worksheets, others are designing projects, maybe they are searching around for something previously made. The problem is that millions of hours a week are wasted recreating these materials. Educators are professionals and they are also human beings. I believe we have better things to do with our work and personal time than start from scratch every day and with every new teacher.

Now many of us share resources already, whether it is with your colleagues at work or online but how easy is that and what happens over time? This process doesn't scale, it only helps some. There are repositories of lesson plans all over the web. But how do you separate the good from the...um not so good?

ClassConnect is driven by a passion to solve this problem. The developer behind this has put every resource he has into making this awesome, and it is awesome. My colleague Audrey at Hack Education has already done a great job of giving an overview and showing how ClassConnect is the Git Hub for Education (a code sharing platform for programmers). What I want to focus on is how easy it is to get started right away. Did I mention it's free!

We were each taught how to create lessons in our credential programs. We take pride in creating them and making them great. However, each time we create a new lesson we are running an experiment and the results of that experiment (good or not so good) cannot be refined and reapplied for an entire year until you use that lesson/project again. What makes matters worse, is we are independently running that experiment thousands of times each year! The boon of the web is to allow researchers to share their findings and to crowd source experiments to solve problems more quickly. There is no reason why we can't do the same, in fact we must.

ClassConnect makes it easy for you to find and vote up the best stuff so it rises to the top. You can also search by topic, subject, standard, file type, and even type of lesson.


However, this platform is only as good as the resources we share. For every colleague you add, you get additional storage for your files. But get this, for every file you share publicly, it doesn't count against your quota! A great way to store your files in the cloud and an even better incentive to share. I shared this resource on Google+ and within a day I had more storage than my Dropbox. Plus I was now able to share it with you and have you benefit as well! You can even add a class online so you can share the entire curriculum or resources (I used it with my robotics team to maintain shared resources).

You can add anything: a link to your favorite YouTube video, a file, Google Doc, or an entire folder.  Click the share button to the right of the file and check the box that says Public, you just saved another educator valuable time!


Don't forget to add tags and a description to make sure we can easily find it.


Now you have access to some of the best projects and assignments I have found or made over time. Some of it was mentioned on this blog, but having it all in one place and searchable makes it much more convenient. Did I mention that you can claim a url? http://www.classconnect.com/brokenairplane/shared, head on over and claim yours to easily share. I'll add more as time goes on them, but the important thing is to share the best so over time we can refine and remix it for our own needs and continue to iterate.

By doing this, over time we can develop a large community developed collection of best resources. Imagine back to when you started teaching, wouldn't it have been wonderful to be able to use others resources (perhaps you were lucky enough to have a great mentor) and focus on your pedagogy and finding your feet? Then as time goes on you make the curriculum your own, refine and share like others shared with you. I would imagine we could crowdsource a lot of our resources and have great lessons, projects, puzzles/problems, etc. ClassConnect is inspiring a movement called United We Teach, I've joined the movement to help my fellow educators and our students, will you?

Stay connected with BrokenAirplane.

Sage Removes Barriers for Technology in Math Classrooms

If you are not yet using programming with your math and science students, you might have a couple of excuses why.

1) I don't have the time to learn (give me 30 minutes)
2) My school won't let me install the software.

Technology in schools is difficult especially if you are working with older hardware or infrastructure. Many schools will only install new software at the beginning of the year, but if you are going to start programming you'll want to get started now.

Sage makes programming more convenient than ever while adding in some powerful math packages. You might see your graphing calculator's packaging saying it can carry you through college, Sage will take you from elementary math to your PhD and beyond. Created by William Stein with the intention of being a powerful free and open source alternative to technology like Mathematica.

You might wonder how Sage changes anything. Well Sage contains multiple programming languages so you are not constrained to one, but more importantly the Sage Notebook provides the ability to program in the cloud. While there are other options out there, Sage makes it really easy and puts it all together in a dead simple interface.


Let's explore the Sage Notebook (the cloud based version).

There are so many options for logging in, you can create a Sage Notebook account, use your Google/Yahoo/OpenID credentials or you can browse the worksheets without logging in.

Much like Geogebra, you can browse the public worksheets of other people in the community of users.


Click New Worksheet. Once in the worksheet, you can click on the drop down menu that says Sage and see how many options you have for languages. This covers the many programming languages one would need. If you are just starting out, you may want to use Sage, Python, or R (statistics).

If you read this blog, you know I love Python for its simple syntax and ease of use. With Sage you don't have to give that up, the syntax is essentially the same.

To see what really makes Sage a great fit for math try entering a fraction and hitting Shift+Enter. In Sage, fractions are treated like an actual object. You can multiply it, add two fractions, and all of the other manipulations you would do on paper.


A feature very popular in Wolfram|Alpha is the equation solver. Try this out in Sage:


It couldn't be easier to graph:




Once you have a worksheet you can share it with people so they can interact with it or publish it for viewing. In fact most of the examples in this post can be seen here. Just click on the buttons in the upper right of the workbook.
This is just meant to whet your appetite, there are so many different ways this can be used, especially when you consider all of the different functionality and the ability to work online and save/share your work. The documentation is very helpful and there are numerous tutorials created by the community to help you learn. Take a look at Sage's tour for more examples of what is possible.

You will not be disappointed as this is no toy but a powerful full mathematical suite. Student will love this for the same reason they love Geogebra. It takes abstract concepts and manipulation of symbols, variables, and functions and treats them like objects in a game. Now you can play with the math as opposed just focusing on calculating.

Being able to quickly see the effects of an equation or its graph means students can draw conclusions faster rather than being unnecessarily distracted by the arithmetic or plotting of points.  I hope you will take me up on this invitation to use this free tool. The hard work that the Sage community has put into making this available to all should not be in vain.

If you are already using Sage (and I know many of you are) be sure to share in the comments or on Google+ how you are using it.

Stay connected and check out the other tutorials on BrokenAirplane by following the links on the top and the most popular posts on the sidebar.

Android + Science with Physics Gizmo

Science equipment can be expensive and yet many of your students have Android phones. Why not put this incredible technology to use for learning. Physics Gizmo allows you to collect scientific data in your classroom, at home, or even in space using only the phone.

Download Physics Gizmo from Google Play

Physics Gizmo is Open Source
I've put the source to Physics Gizmo on GitHub. If you are interested in helping me develop a tool for students to collect and analyze scientific data in an affordable way I encourage you to join the project.


Physics Gizmo on GitHub
Discussion Group Forum

For inspiration, here's an experiment using Physics Gizmo - via +Roberto Catanuto (@RobertoCatanuto)


Version 2.3
This version no longer requires you to turn on Bluetooth when the app starts. The only time you need to turn it on is if you wish to use two phones as a photogate (see below).


Version 2.2
Physics Gizmo is updated to version 2.2 for phones running Gingerbread, Honeycomb, or Ice Cream Sandwich.

If you are running Ice Cream Sandwich (Android version 4.0), this update brings with it a visual refresh in alignment with the new look and feel.

For everyone else, Physics Gizmo will no longer close if you choose not to turn on Bluetooth. This is a bug I have wanted to resolve for a while, and I appreciate your patience.

Bluetooth is necessary to connect two phones as a photogate (video), but if you don't turn on Bluetooth the other sensors work just fine.



Version 2.0
Now there are more opportunities to conduct scientific experiments with your phone.

New Sensors
Using the phone's proximity sensor (usually in the upper left of the phone), Physics Gizmo has three new options for collecting data:  
  1. Photogate Pulse - Triggered each time the proximity sensor is covered. Use it to count events. 
  2. Photogate Pulse with 2 Phones (Beta, only for Android 2.0+) - Connect two phones for accurate event timing. Similar to the 1 phone photogate but one phone starts the timer and the other one stops it. If you are tired of inaccurate experiments from human error with a stopwatch this is for you. See how long it takes for an object to fall or roll down a ramp like Galileo's and more! With Bluetooth's range ~30 ft/10 m there are many possibilities for learning. Watch a video of the 2 Phone Photogate in action.
    1. Click yes to turn on Bluetooth Discovery mode.
    2. Select another phone running Physics Gizmo from the list.
    3. The timer starts when the first phone's proximity sensor is triggered.
    4. The timer will stop when the second phone's proximity sensor is triggered.
  3.  Pendulum - Notoriously difficult to time accurately, an event is recorded for each completed full swing/period (two triggers) of a pendulum passing by the proximity sensor. Watch a video of the pendulum sensor in action.
Note:
  • If you don't see the new sensors your device does not have a proximity sensor (some tablets). 
  • If you don't enable Bluetooth in the beginning, you will not see the 2 phone photogate.


Updated Accelerometer Sensing
  • Continues to sense from the accelerometer even if the screen is turned off (note: be sure to try this with your phone as results may vary). Useful when the phone is in your pocket on a roller coaster.
User Interface 
  • New layout with higher resolution.
  • When finished sensing, press the "plus" button to add more time and sense again.
  • Pressing the question mark button in the upper right opens contextual help for you to successfully use Physics Gizmo and upload your data.

Using Physics Gizmo
  1. Turn on Bluetooth to access all sensors.
  2. Select your sensor
  3. Give your data a name or leave it with the time and date.
  4. Set the timer.
  5. Click start to collect data.
  6. Upload your data to analyze later using Google Docs, Fusion Tables, Geogebra etc. It is also saved in the ScienceData folder on the SD card as a csv.
Think of all of the experiments you can do, considering how much more likely you are to have enough phones in the classroom to do the experiment

I am really excited to see it used by students. I was originally inspired to create the app for my colleague who takes his students to Magic Mountain for Physics Day. Now they can collect accelerometer data on all of the rides and analyze the data back at class! That data will help them build their own roller coasters. The photogate sensors were inspired by my other colleague who creates pinewood derby cars but was always looking to improve the accuracy of the racing data.

The point is, now students can learn science with a phone they already use everyday. Please share in the comments how you used the app!


How Did I Get Here 
A while ago I created an app using Python and Android so everyone could collect data for science experiments. That post became one of my top all time read posts. But, I worried that all you did was read it. You see, I made a couple of mistakes that I wouldn't let students get away with:
  1. I made it relatively difficult to access. The instructions are there, and it would probably take about 20 minutes to get the app on your phones, but 20 minutes is a huge chunk of time in the Internet world and we have so much to do. I have seen people pass up learning Geogebra because they thought it would take too much time to learn!
  2. My second mistake was I didn't push myself to learn. Instead of learning Android programming, I asked all of you to do the work of getting it working so I could play it safe with Python. 
I decided to fix that right away. Now I love Python for its syntax, therefore Android (which is built upon Java) seemed more complex than I would have liked. But, if I wouldn't allow a student to get away with that, then I certainly couldn't.

So I did what I always do when trying to learn something new: I read, and read, and read until I stored up all of the confusing syntax and methods in my head. Keep in mind that this didn't make any sense to me whatsoever. 

Then I came across this excellent tutorial by Chris Blunt. It takes you through the setup, installation, and programming of an android timer app. The clear instructions, pictures, and hints made it really simple to see how an Android app comes together. Eureka! Everything clicked together and suddenly, I was writing all kinds of additions to the app. 

Now, that makes it sound pretty simple huh? Well there were still plenty of bumps in the road, but I did learn than programming for Android is a lot easier than I thought and it makes sense once you get the hang of it. Not to mention I had two powerful tools that kept me going. 
  1. Eclipse - It's free, it's open source and it's incredible! It will generate templates, spell check, find errors, suggest fixes. I can't imagine how I would have come this far without it. 
  2. The Web - Yes, I know it sounds obvious, but books take too long to root through and sometimes your question doesn't fit the examples in the book. I must give special appreciation to Stack Overflow which always seemed to have the right answer. Although, when it had a similar answer, but not the exact one I needed, it pushed me to understand the concepts even more.
The Apress are my favorite Android books so far. I used, Android Apps for Absolute Beginners, Beginning Android 3, and I just ordered Learn Java for Android Development so I can gain an even deeper understanding of how this works. I intend to fully immerse myself in Android programming this year so I can make some apps that can support learning.

Connect with BrokenAirplane and stay up to date with the best resources in education.

Follow my microblogging on Google+

I'm Not Texting I'm Programming!

Update: This app is available now as Physics Gizmo on Google Play.

No less than a century ago, it was possible to learn everything we knew about science. The only requirements were an ability to read, an extensive library, and perhaps the equipment to carry out your own experiments. Now we have entered a new era of science where literacy is more widespread and between the Internet and Libraries we have every resource imaginable at our fingertips.

Two big problems remain, science has diversified and grown so much that it is difficult for scientists to know everything about their own field let alone another. The other issue is how science equipment remains financially out of reach of amateurs and explorers. The major scientific research is driven by that which will have a financial return and so science for its own sake is limited. This is even more evident in schools who are cutting science to save the rest of their budgets and focus on less expensive (and more tested) subjects This must change if a steady stream of innovation is to continue.

The hacker spirit is a deeply embedded part of science. Now out of necessity and pure enjoyment, many are directing their attention away from software development but to hardware. In the August issue of Wired, the BioHacker movement features those who wish to reduce the cost of doing Genetic analysis.

Do you know where these DIY Biologists expect to see the most impact? Schools! For students to do science instead of just reading about it. Arduinos, Makerbots, Robotics, and more are forever changing the opportunities students have to create.

At my school we spent a lot of time in labs and projects. What was lacking was quality data. Unfortunately the tools and sensors available to students are expensive and limited. So I did what I always do, I sat down and wrote some code :)

I love my Android phone and each day I hear about the insane number of new activations everyday. The smart phone is getting smarter and cheaper just as technology always does. Just as we saw an explosion of Desktops and later Laptops in the 1990-2000s, we are seeing an even speedier rate of adoption of smart phones. While looking at my phone one day, I realized how many sensors/tools it has built in seamlessly to its interface (Internet, Accelerometer (motion sensor), Gyroscope, Light, Sound) which if purchased separately would be thousands of dollars and would not play well with each other.

So I wrote a program which logs motion and then uploads it to your Google Docs account. You can see some screenshots below of the results.

Jumping up and down

Dropping my phone (onto a pillow)

To do this, I used sl4a (Scripting Language for Android). With this you can code in Python, Ruby, Javascript (and more) and do almost anything with your Android phone. It has a built in editor so you can quickly type code into the phone (hence this post's name) or you can code it in your favorite editor and then transfer it to the SD card on your phone.

Why did I use sl4a instead of making a nice pretty app using Android's SDK? This application uses the Google Doc APIs (basically commands to communicate between an app and and a program like Twitter or Facebook) and Python. If you look at the code it could be done by any of our students with a free weekend. It may look a little complicated at first but there are just a lot of function calls to save code. Just like most other Python code, it reads like a story (login, get the parameters, sense, upload).

I believe sl4a could take students who may or may not have used App Inventor or Scratch to the next level and open up a world of possibilities to them. sl4a has been used to send collect data on a phone being launched into space and many other exciting projects involving Twitter, Robots, Arduino and more!


I wanted to use sl4a so everyone who knows Python could see the code and hopefully improve on it. I don't have the time right now, but I would love to see other sensors added, the ability to review and display the data/graph on the phone, interface with Arduino, and store data on the phone if it logs data longer than 1 minute, and perhaps even add a pretty GUI. I'm hoping that by open sourcing this, others will want to jump on board and help out. Cellbots have set the bar really high and have their own incredible data logging app and if they integrated Google Docs uploading I would say their app is perfection.

My hope is as more educators/students realize their ability to create, scientific tools will become available to all. People like Steve Dickie, the Arduino team, Geogebra, and many others are working really hard to ensure that the cost to do STEM is reduced dramatically.

You could walk into your class on Monday and ask your students how many of them have an Android phone, you may be surprised that there are enough for one per group. Think of all of the experiments you could do with nothing else but your phone. I can't wait for this year's Magic Mountain Physics Day and see how many students could get data from a roller coaster and directly upload it to their Google Docs (and check it while still at the park from the GDocs Android app).

Look how easy it is to make a little popup on your screen!
import android
droid=android.Android()
droid.makeToast("Hello Android")


If you want to give this a shot, go to the sl4a website and download the apk (the installer). Your other options are to click this link, or scan the barcode on the right with your Android phone. Follow the User Guide to get Python (or the other languages) installed on your phone.

Now, you are ready to start coding on/for your phone. There are some great tutorials on the sl4a website, I also recommend the book Pro Android Python with SL4A. In my code below I list a few other resources that were helpful to the doScience project.

If your code is relatively small you can share it via barcode but this app falls just above that threshold. So you can copy and paste it from below (just please respect the Creative Commons licence) into your Python Editor or download the doScience file directly. Save it to your SD card in the sl4a/scripts folder. This code must be run on a phone or a computer connected to a phone running an sl4a server (much simpler than it sounds).

Note: It will ask you to login to your Google account. As you can see from the code below, no one is able to access that information since it is kept hidden from even the developer by the dialogGetPassword method in line 41.

I hope this app inspires you to do something great. If you know how to program, build, create will you please lend your talents to this projects or the many others out there. If you don't know how to create, then learn as it is the most incredible thing to be a Maker and you will inspire others. Before you know it, the revolution will be underway (oh wait it already is, come join us)!

Subscribe and Connect to BrokenAirplane and stay up to date with the best resources for your classroom.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
'''This code is licenced under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Unported Licence.
Created by Phil Wagner 2011 www.brokenairplane.com. This code allows data logging and uploading to Google Spreadsheets.
It exists so students can to do Science when 
the cost of Science Equipment is too expensive. Additional features can be added
but this paragraph should always remain in the code.'''

#Future features - Additional Sensors, Review, Display Data/Graph on Phone
#interface with Arduino/ADK

#Helpful Resources:
#http://code.google.com/p/android-scripting/ (sl4a)
#http://code.google.com/ (Google APIs and resources)
#http://www.adaptcode.com/using-google-spreadsheets-as-a-database-in-the-cloud/
#http://gdata-python-client.googlecode.com/svn/trunk/pydocs/gdata.spreadsheet.text_db.html

import android
import time
import gdata.spreadsheet.service
import gdata.spreadsheet.text_db
import string

droid = android.Android()

dt=100 #Time between sensing

def countdown():
    #3 Second Countdown and Vibrate
    droid.vibrate(100)
    time.sleep(1)
    droid.vibrate(100)
    time.sleep(1)
    droid.vibrate(100)#3 second countdown
    time.sleep(1)
    droid.vibrate(300)
    return

def login(myEmail='example@gmail.com', password=''):    #Get Email and Password and login
    while password == '':
        email = droid.dialogGetInput("Email", "Enter the email account where the Data will be uploaded to:",myEmail).result
        password=droid.dialogGetPassword("Password", "Enter the account password where the Data will be uploaded to:").result
        try:
            client = gdata.spreadsheet.text_db.DatabaseClient()
            client.SetCredentials(username=email, password=password)
        except gdata.spreadsheet.text_db.BadCredentials:
            droid.dialogCreateAlert("Username or password incorrect.")
            droid.dialogSetPositiveButtonText("OK")
            droid.dialogShow()
            redo = droid.dialogGetResponse()
            password =''
            continue
        else:
            return client

def spreadSheetSetup(client, defaultTitle = 'Science Data'):
    versionNumber = client.GetDatabases(name=defaultTitle)
    if len(versionNumber) > 0:
        droid.dialogCreateAlert('Science Data %d' % len(versionNumber))
        droid.dialogSetPositiveButtonText("OK") #Yes option box
        droid.dialogShow()
        understood = droid.dialogGetResponse()
        spreadsheetTitle = defaultTitle+' '+str(len(versionNumber))
    else:
        spreadsheetTitle = defaultTitle
    return client.CreateDatabase(spreadsheetTitle)

def time2Sense(defaultTime=5000):
    maxTime =0
    #Enter time for sensing
    while maxTime == 0: ##How long to sense?
        try:
            maxTime=int(droid.dialogGetInput("Time", "How long to collect data (in milliseconds):",str(defaultTime)).result)
        except TypeError:
            droid.dialogCreateAlert("Please enter a numeric time")
            droid.dialogSetPositiveButtonText("OK")
            droid.dialogShow()
            droid.dialogGetResponse()
            continue
        if maxTime > 30000: #30 seconds max for optimal upload
            droid.dialogCreateAlert("Warning this could take a long time to upload.")
            droid.dialogSetPositiveButtonText("I accept the risks")
            droid.dialogSetNegativeButtonText('New time')
            droid.dialogShow()
            check = droid.dialogGetResponse().result
            if check['which'] == 'positive':
                return maxTime
            else:
                maxTime = 0
                continue
        return maxTime

def doScience():
    droid.dialogCreateAlert('Are you ready', 'Click yes to begin sensing, or no to cancel')
    droid.dialogSetPositiveButtonText("Let's do science!") #Yes option box
    droid.dialogSetNegativeButtonText("Nah let's cancel") #No option box
    droid.dialogShow()
    return droid.dialogGetResponse().result

def senseAccel(endTime,dt=100):    #Sense and store accel data
    timeSensed=0
    tempScience = []
    droid.startSensingTimed(2,dt) #dt = time between sensings
    while timeSensed <= endTime:
        tempScience.append(droid.sensorsReadAccelerometer().result) #add new accel data to list
        time.sleep(dt/1000.0)
        timeSensed+=dt
    #Stop Sensing
    droid.makeToast("Done")
    droid.vibrate(300)
    droid.stopSensing()
    return tempScience

def main():
    db =spreadSheetSetup(login())
    endTime = time2Sense()
    ready = doScience()
    if ready['which'] == 'positive':
        countdown()
        science = senseAccel(endTime,dt)
        table=db.CreateTable('Accelerometer',['t','x','y','z']) #Beware spreadsheet column names cannot be uppercase if you are going to add to them later http://code.google.com/p/gdata-python-client/issues/detail?id=363
        droid.dialogCreateHorizontalProgress('Progress','Uploading to Docs',len(science)*3 )
        droid.dialogShow()
        progress = 0
        time = 0
        for data in science:
            table.AddRecord({'t':str(time),'x':str(data[0]),'y':str(data[1]),'z':str(data[2])}) #AddRecord requires strings as arguements str()
            progress+=3
            time+=dt
            droid.dialogSetCurrentProgress(progress)
        droid.dialogCreateAlert('Done', 'Go check your data on Docs')
        droid.dialogSetPositiveButtonText("OK") #Yes option box
        droid.dialogShow()
        droid.dialogGetResponse()

if __name__ == "__main__":
        main()

Google Translate Toolkit for Collaborative Language Learning

I was speaking with my school's Spanish Teacher and she was frustrated at how Google Translate was sometimes incorrect or not aware of nuances. Google Translate works by analyzing documents in different languages to discern the syntax and rules by which these languages play by.

This allows languages to be translated into one another that might not have been before (e.g. Korean to Armenian) but is a constantly evolving process and the primary way Google Translate collects data might prevent it from understanding some slang or dialects that are not as well published.



Recently, I discovered the Google Translate Toolkit which allows for collaboration on a text. Upload or type in a text, and share it like a Google Doc. Collaborators can work to translate the text and even selectively translate with Google and other online resources.

With so much information in English, taking a useful website, Wikipedia page, or tutorial and working with your students to convert it into another language would help make the world a little smaller. Students are already working to translate texts, why not crowdsource time to translate something that would help everyone else. Imagine how your students will benefit from working on an actual document off the web (and the prior discussion of which documents would be most useful) and helping others while better learning their language.


It's not often enough that technology is able to support the learning of languages and cultures, I hope you will find ways to use this free and easy service to create an exciting project while helping others around the world.

Blender 3D Modeling Resources for Education

Subscribe to BrokenAirplane!

When I show Blender to educators, they immediately say show me how you do that so I can use that in my classroom!

When they see Blender's interface for the first time they want to run away. It is overwhelming but once you spend an afternoon with it you discover that it isn't confusing, its powerful and packed with features.


For those of you who have never heard of or used Blender, it is 3D rendering software allowing you to create models for video games, CAD printing, and now a movie! It was the technology behind the OVRP Virtual Bike and did I mention it is Free and Open Source?

I agree it has a learning curve but for many, this is an opportunity to learn a software that is highly applicable to their future career without costing them the thousands for a proprietary software like Maya.

Blender is the perfect software to prove what Patrick and I say about learning technology because you as the teacher have little if any experience with it.

We cannot wait until we are masters or pros to use a technology with the students. There are too many and it would take too long. You should not let that stop you from using it. Show it to your students and they will learn more than you ever thought possible. While the following are not all of the resources out there, these are the ones my students and I have used with success. That is the great thing about the Blender community, there are so many choices out there.

Video Tutorials:
HamsterHill - These are the tutorials that my students started using to learn Blender and they are great, his accent occasionally trips you up but they are easy to follow nonetheless.
IraKrakow -  For more advanced topics these were very helpful.
BlenderUnderground - Very well made and high quality. If you are looking to become a master of Blender, these would be a great first step towards professional level knowledge.
Tutorials for Blender 3D - If you are creating a video game or movie with Blender, these tutorials are for you. logic blocks, textures, and the Blender Game Engine are all covered well in here.
Blender Cookie - Excellent suggestion from Black Stormy covering a wide variety of concepts from start to finish as well as those concepts beyond modeling (particles/physics/lighting/etc)

Text Based Tutorials:
Blender 3D: Noob to Pro - An incredibly well done community generated wiki that will take you through all of the essentials. Patrick and I were at a conference together and spent much of our time working through the exercises in this book. It prepared us to make the Virtual Bike tour and Patrick's class' 3D movies. Go step by step or reference it (and yes I know it's spelled n00b, I'm just copying the website).

Keyboard Shortcuts - This is ESSENTIAL! There are so many commands and features possible and you will waste a lot of time trying to find them in the menus. After using Blender for a while you will remember them as well as the other Windows/Mac keyboard shortcuts you should be using.

I'll continue to add to this list as I come across them as I do with my Android, Free Software, Humanities, Math Science, Geogebra, and Programming Resources lists.

Subscribe to BrokenAirplane!

Google Doc Discussions for Hybrid Learning

Subscribe to BrokenAirplane

Google Documents rock! Where else can you get a free document editor that you can share and collaborate with others? Recently, Google released Discussions which were an improvement on the comments you could embed within a document. With discussions, you could leave a comment and have it be sent to a recipient, who could in turn reply in conversational form. Now students could work together to refine their work and teachers could give feedback all leading toward beautiful work.

With recent improvements, you can track when the last time a page was accessed and what they said. This was rolled out without much fanfare, but for educators, it makes a big difference! Typically to get this kind of data you would need to use a classroom management software like Moodle or Edmodo, both fine tools but they require you to leave what you are doing and go somewhere else on the web. All of this is within the Google Apps that you are already using.

This summer, Patrick and I are working on a hybrid multimedia/graphic design summer school class. We wanted students to be able to work from all over the city without having to come into town. Plus Patrick wanted to be able work with students while he and his Graphic Novel project students are exhibiting at Comic Con (congratulations to them by the way). A concern with the hybrid class was "seat time", how would the school be able to certify that the students had worked long enough to qualify for the Carnegie Credit Hours? 

With Discussions, that problem was resolved. With the class a mixture of synchronous face-to-face video conferences, and asynchronous independent work students could demonstrate their mastery as well as seat time with time logs in their Google Doc. We are really excited about the prospect of conducting a full class without a classroom. More on our successes and struggles will appear in the next few weeks I am sure but I figured that many could benefit from this and I wanted to get the tip out as soon as possible. Enjoy!


Subscribe to BrokenAirplane for all of the relevant technology and education news/information. 

Autodesk123D Brings Free CAD to Everyone

Subscribe to BrokenAirplane

As as an educator, I am strongly in favor of free software. Classrooms have a difficult enough time without having to pay for expensive technology. While I personally favor Open Source, I have long been puzzled at why more companies do not provide free education software. It is in their best interests to ensure a continuous cycle of users and how could a company guarantee that better than by providing them an opportunity to learn their software at a young age.

Autodesk, has taken steps to support the maker and STEM community by releasing Autodesk123D for free to the public. Autodesk is famous for its CAD (Computer Aided Design) software which allows for fast and high quality designs of most major products on the market. Many who could have learned this software were unable to because they were unable to afford the high cost for a software licence. Free alternatives exist but they have either a steep learning curve, or were not powerful enough to do effective designing.

Note: Students who are members of the FIRST Robotics Competition have access to free student versions of all Autodesk Software. As if you needed another reason to start a robotics team.

Autodesk 123D's website provides you with the option to download the software (Windows Beta currently), as well as search and find already created models. This can expedite the process when you only need to modify a design as opposed to creating it from scratch. You will also find resources for printing out your model when it is done. Yes, that's right, the 3D Revolution is here and the cost of printing a prototype for fun or marketing has dropped dramatically.

Once you have downloaded the software, you will find introductory videos to get you started. Clicking on Learn More brings up the Support Website which has great videos to take you through the steps to make your first design and beyond. Considering how much Autodesk training usually costs I am happily surprised at their realization of how much this will benefit them in the long run by creating a larger base of users.

Autodesk123D has the feel of Autodesk Inventor with enough features to create a design. It is similar to Google Sketchup in many ways while being oriented towards CAD more than architecture.

Users will be able to get practice working with the workflow and part hierarchy which is critical to good CAD design. This allows the designer to see how parts are connected and see the settings and features of each part and sketch.


The design buttons are similar to Google Sketchup so if you have any experience with that software you should be able to pick up the process faster. It starts with a sketch which is then extruded (pushed/pulled) to the size you want. Like Autodesk and Sketchup you can specify the exact measurements. The other buttons allow for the insertion of Primatives or basic shapes, duplication and reflections, and assembly. The familar view block and zoom/pan tools are there as well.


My other favorite part of this program is the wise decision by Autodesk to not cut off its effectiveness by cutting it off from the rest of the community. Autodesk123D allows for saving and opening in its own special extension but will also work with STEP, Autodesk 2007, DWG, and STEP files. This allows users to access the FIRST and VEX CAD libraries of premade parts. One can also open Google Sketchup files showing they are willing to play nice with others.

This is a great piece of software but also a great decision by a company who is and will likely remain an industry standard for a long time based on decisions like this. This product is capable of inspiring and empowering design and creation and I hope more companies decide to provide free and useful versions of their software for training but also for those businesses and organizations that cannot justify an expensive software licence. There are so many tools out there that make this an exciting time to be apart of STEM. The more people who have access to these creative softwares, the better for us all.

Subscribe to BrokenAirplane for all of the relevant technology and education news/information.