Monday, May 17, 2010

Creating With Computers (Part VI) - The Student Reading Recorder Example

The fundamental design concept behind all of the Web 2.0 tools such as Twitter and Facebook are very similar to my simple Student Reading Recorder application. What you see on your computer screen when you are looking at Twitter or Facebook is the same thing that every single person on the planet sees, at least in respect to the layout of the elements on the screen. What is different is the content that fills in those little elements of space on your screen. The way Facebook and Twitter determines what to put in those little boxes within the layout is based on information that you generated and they store in their database. In Twitter for example, every person with an account that has selected me as someone to follow has an entry in the Twitter database that identifies my account as one that they want to follow. When I add a new tweet, that action initiates a query through the twitter database looking for all accounts that have marked my account as one that they are following. When the query locates my unique account information in somebody else's list of people they are following, it pulls my last tweet out of the database and puts it into the list of tweets of the for that individual. At least that's how I imagine it. I don't work for Twitter or Facebook, but my hunch is probably pretty close. My little reading application works the same way.


My database consists of four tables. The first table holds information about the teacher. The second table holds information about the students. The third table in the database holds information about the assessments and the last table holds information about the individual student assessment results.

The first screen of the student application pulls information from the database out of three of the tables. The start button initiates a call to the database that queries the database to retrieve the unique identification number for the specific teacher that the students types in to the "class" field. This identification number is then used to generate a drop down list of every student that has that teacher's unique identification number saved into their student record. When the student selects their name from the drop down list, a second call to the database is initiated and uses the student's unique identification number to retrieve the students current reading assessment activity. In addition, it uses the student's unique identification number to retrieve their avatar icon for the upper right of the screen. The avatar icons are titled with the student's unique identification number.

The remaining icons on the screen consists of two buttons. The red circle button begins a recording session. This recording session works with Apple's Quicktime technology and requires that the QuickTime player is installed on the student's workstation. The sound recording is actually saved to the local "recordings" folder on the student workstation. (This works in the same fashion for both the Macintosh platform and the MS Windows platform. The Linux platform does not have an Apple QuickTime player so it records audio a little different. I will describe the Linux version in a separate post.)

In order to provide the teacher with the ability to evaluate the student's reading recording from any networked computer, the green triangle button, which is used by the student to navigate between the screens, also uploads a copy of the student recording to the remote server via an FTP process.

A copy of this application is linked at the bottom of this post. One important fact, this tool has not been designed for commercial release. This is an in house tool designed for a specific goal and in a specific environment. The environment that this application is running is very robust and latency issues at home over a DSL speed connection are not experienced in the classroom.

The remaining student screens provide students with additional focus on thinking about their reading using the recording that they created in screen one. This second screen prompts the student to listen to their recording and count the number of words that they read. They can strike the space bar on the keyboard to help them count the number of words that they read aloud during the recording.



The third screen simply has them rank how well they felt they read the paragraph and allows them to drag a marker on a line to identify their rating.







The fourth screen allows the student to listen to the recording again and identify one word that they thought was particularly difficult to read aloud.







The fifth screen provides a ranking which is actually just a number that increments by five each time they do an recording activity. The screen is particularly vague as I am interested in how the students that use this tool would describe what this number represents. Obviously the more times they do an activity the more obvious it will be that the number increases.


Remember, even thought this application is functional, it primarily serves as an example of what can be done with these types of rapid application development tools. Revolution is a great tool development tool and seeing how they provide a free version and educational pricing on more complete versions there is only a small investment in time to get started.

Download Examples
Examples of the Macintosh and Windows Student Applications Available Here

In part VII I will share the teacher management components of this example application and show off some of the other features of Revolution that helps make developing tools with this product much easier than traditional programming languages.

Saturday, May 15, 2010

Thoughts On Privacy and Social Media

The has been a lot of discussion lately on the issues related to privacy on Facebook and other web 2.0 applications. The straw man argument would be, "Well, you don't have use them. Nobody is making you." The fact of the matter is that we do in this day and age and depriving students of the necessary skills and guidance with these tools puts them at a disadvantage. Would it ruin their lives if they didn't get the experience and instruction? No. But it does put them at a disadvantage in our current global environment.

Part of the problem has been created by ourselves. If we had been teaching students how to use computers and technology beyond word processing and creating PowerPoint presentations for the last twenty years, our students wouldn't need Facebook to collaborate and communicate. They could be creating their own social networks, just-in-time, when they are needed and have complete control over their design and data. Imagine if you could roll our own "Facebook" as simple as creating a PowerPoint presentation. The server, database, and your code, all in your pocket, or stashed in your sock drawer at home available to those that you choose.

Friday, May 14, 2010

Creating With Computers (Part V) - The Tools

As I mentioned in Part II, my early interest in computers and education was launched when I first discovered HyperCard in the mid 1980s. The ease at which you could quickly create a custom application to do what you wanted it to do and to address a specific task was very enticing. The continued development of HyperCard by Apple lead to more and more possibilities including the ability to incorporate multimedia into custom applications. In my opinion, Hypercard was the ideal computer development tool for the classroom teacher and allowed for the development of instructional materials tailored to the needs of individual students. HyperCard eventually was retired by Apple, but other companies picked up where Apple had left off. Development tools such as SuperCard, ToolBook, and Metacard continued to evolve the HyperCard development model. This model of application development based on objects and events began to gain more and more popularity to the extent that one such tool, HyperStudio, became very popular with students and teachers. Though this tool was similar in design, it is targeted more toward students and is not as versatile as the previously mentioned software tools. However, it provides an excellent starting place for students to understand many of the important concepts of application development.

In 2003 Runtime Revolution purchased Metacard and used it to develop Revolution. RunRev, as they are now known, has developed mutliple versions of Revolution and address the needs of the wide range of users. RunRev produces versions of Revolution that run and compile on all three major operating systems, Windows, Linux, and MacOS X. Applications developed in Revolution can also be deployed as browser plug-ins similar to Adobe Flash applications. One attractive feature of Revolution is projects designed and developed in one operating system, such as Mac OSX can be compiled and deployed as standalone applications on Windows and Linux operating system. Future versions of Revolution are in the works that will provide deployment on mobile operating systems such as Google's Android.

Developing in Revolution is done by dragging objects from palettes to your window and then programing those objects using Revolution's Transcript programming language. Transcript is very similar to HyperCard's HyperTalk programming language and uses very English language like commands. The following example should help to better illustrate this description:



In Part VI I will begin to tie the conversation back to my example, the student reading tool, and share the necessary steps of connecting the student tool to a remote database.

Thursday, May 13, 2010

Creating With Computers (Part IV)

As we turn to more and more web based applications, the importance of a databases to store content used by the application becomes more and more important. Google Docs essentially is one very large database. When you log in to your Google Docs account, it pulls information in its database that is related to you and displays it within a template window of your web browser. Clicking on one of the documents in the documents list, you have previously created in Google Docs, results in another call to the Google database and this time returns the content related to the title of the doc that you clicked on. My little student reading application will mirror this type of database operation, but instead of displaying the information in a web browser window, it will display the information in a custom application. Understanding how databases work with computers will be a central skill as we move forward in developing our ability to control computers and use information constructively.

My experiences with databases and computers stems primarily from my work with setting up content managements system and blogs. Applications such as Mambo/Joomla, Moodle, and WordPress use databases to store content. Each of these applications use a database called mySQL. MySQL started out as an OpenSource database application at approximatly the same time that the Apache web server software was released. These two applications have supported a great deal of innovation that has been developed on the world wide web beginning in the mid 90's. In any case, my experience is pretty limited and my point is that with just a little knowledge you can begin creating something that takes advantage of a backend database to support a custom application.

In developing the mySQL database for my application, I used a mySQL application running on a hosted service called On-Rev. On-Rev is a relatively new service provided by RunRev, the makers of the application development tool I am using to create this student program. There are many benefits to using the On-Rev service with Revolution, however what I'm about to describe can be achieved with any hosting services that provides the mySQL database application. The mySQL database is primarily controlled via the command line. What this means is that there is no primary graphic user interface for the mySQL application. This was done on purpose to maximize performance capabilities of the database application and to conserve valuable microprocessor cycles to server your data and not a "pretty" user interface. Fortunately, there have been a number of "front ends" to the mySQL database that provides a more graphic user interface for manipulating the database (for those of us that have grown up clicking a mouse). The application I will be using is called phpMyadmin and it is a web based front end to the mySQL database. Using this tool you can easily create new databases, new tables within the database, and new fields to store your information within those tables. If you choose to use a mySQL database hosted on a commercial services provider, such as On-Rev, there is a good change that the phpMyAdmin tool will be available to you for manipulating the mySQL database.

For my student reading application, I decided to develop four tables within the database. Each table went with a particular component of the student reading application.
When developing your database, it is important to spend quality time thinking about all its pieces and how they will interact with your application. It is much more difficult to make changes to your database after you begin to create the actual desktop application as any new changes made to the database could have unforeseen consequences which will take time to decipher and fix in the desktop application. As with most things, careful planning upfront is crucial to eliminating difficulties later.



In the next part, I will begin sharing how the student desktop tool is going to be created and how the desktop tool exchanges information with the remote database.

Monday, May 10, 2010

Creating With Computers (Part III)

Revolution is like a software Erector set. With a little bit of familiarity with the language, it is very easy to quickly create custom applications. I began the process of developing this tool by thinking about the ultimate goal, a software tool that students would use to hopefully improve their reading. I started with the ultimate goal in mind, and then worked back to components that would make that goal successful. The following is a list of features that I determined the student component should incorporate:

  • Simple student log-in a first grader could master.
  • The ability for a student to easily record themselves reading a passage of text.
  • The ability for a student to easily play back their recorded audio file.
  • A strategy to allow students to concentrate on what they read by providing them with a tool to count the number of words they read within the time limit.
  • A simple scale that allows students to rate how well they feel they read the passage.
  • The ability to identify at least one word that they felt was the most difficult to read.
  • A number presented at the end of the activity that represents their ranking/total score.

My hunch is that these described activities would help to improve a student's reading ability by steering them to think more acutely about their reading. Research has shown that special needs students actually do quite well working in a student-computer environment. The computer is often less threatening and students are less likely to be nervous or suffer from performance anxiety when in front of a computer as opposed to in front of their teacher. This I thought would hold true for all students. I envision this student tool being used in a center or independent group activity where students have 15-20 minutes at each activity.

After defining the components of the student software, it was time to decide on how it would be designed. I knew that I would want to be able to retrieve student work so that the students' teachers would be able to evaluate their students' work post activity. In order to do this, all student input would have to be stored in a database. Fortunately for me, Revolution provides this ability quite easily and I will be describing this process in a later section.

As I continued to work backward from the student activity component, my planning resulted in three supporting components. The first is the main administrator tool for creating teacher accounts. The second component is the teacher tool. The teacher tool should allow for the creation of individual student reports based on the students' activities. In addition, teachers should be able to create, edit, and delete students accounts. Finally, teachers should be able to create and edit new assessments/activities and assign assessments/activities to students in their class.

All these components require the storing of their data in a database. The creation of the database and the resulting tables in the database will be described in a later blog post.
(image courtesy of: http://www.flickr.com/photos/hinkelstone/2765597758/)

Friday, May 7, 2010

Creating With Computers (Part II)

I was talking with my wife about some of her work with her English learner students. She was sharing all the assessments that they incorporate into their daily instruction and their practice for encouraging and modeling strong reading skills. I began thinking about the types of software that have been promoted to help students with their language arts, specifically reading skills. Scholastic's Read 180, Accelerated Reading, and Auto Skills came to mind. I was wondering how well those current software tools promote students to critically evaluate and think about their own reading skills? How many of these tools really get students to think about their reading?

These ponderings then turned to other thoughts as to what the ideal activity, or activities are to encourage students to think about their reading skills? Would an activity that promotes students thoughts about their reading skills even in the most basic activity fosters the needed attention to improve their reading abilities? What would those activities look like and what software tools are there that provide this instructional strategy without direct teacher participation? I could not think of one software tool that would promote this type of self-directed learning strategy that was simple to use, and could be started and completed in it's entirety in a 15-20 minute block of time, and provide the teacher with a record of the student's work.

The previous two paragraphs essentially defined the question or the task. Since I could not think of a software solution currently available, I decided to just create one myself. Granted I am not a classically trained software programmer. I'm what's referred to as a hack. Somebody who can get the computer to do what they need it to by "hook or by crook" at least in regards to software programming. My passion for technology in education began in the mid 1980s when I was introduced to the MacPlus and a new program on it called HyperCard. I fondly remember learning the trick to unlock the HyperCard Player so that it would divulge it's hidden software authoring tools. Though HyperCard is no longer being developed, there are a number of tools that have have picked up where HyperCard had left off. One such application, and my current favorite is Revolution by RunRev. This application is very similar to HyperCard. It is event driven and utilizes standard English resembling code. Many people earn their living developing in Revolution. One of the nicest features of Revolution is that you can develop on one platform and deploy on Macintosh, Windows, and Linux platforms. Soon RunRev has claimed you'll be able to deploy on the iPhone/iPad and Windows Mobile too. If you are interested in learning more about Revolution, they have a free version you can download called RevMedia.

Now that I had defined what I needed, an application focusing on reading that fosters students self assessment and analysis of their own reading, I set out to define the components.

(Photo courtesy of http://www.flickr.com/photos/ricardojesusflores/)

Thursday, May 6, 2010

Creating With Computers (Part I)

In the educational technology circles that I inhabit, a lot of discussion has taken place around the new Apple iPad. I've been interested in two opposing conversations that have taken place surrounding this new device. On one hand are those that feel this new device is going to change everything in regards to how we think about the personal computer and public education. On the other hand is a group of individuals who don't doubt the device will be a big success but that the device won't change education too much because it is primarily a device to consume content. There are some truths to both arguments and only time will really present the clear picture. However, after 19 years in public education, from what I have seen, the adoption of technology into everyday regular instruction has been limited at best. Sure there are pockets of innovation, but most of our instructional practices and strategies over those 19 years have not warranted the use of technology. The majority of technology use in schools has required that students know some fundamentals with the computer, where to save files, how to use a web browser, how to create a new slide in PowerPoint, and how to search using Google, etc. etc. For the most part, these skills can be taught after about two hours of instruction and some practice. My son did not need any training on how to use Facebook or locate the latest Flash based arcade game. If you know how to write, and have some familiarity with a keyboard, you are already a master of every social networking tool that's been and will be developed. Not surprisingly, the reasons for why computers and technology have not been utilized in a manner that takes advantage of their innate capability to create and innovate stems mainly on the primary charge of our educational institutions. Our focuses has been on eliminating the achievement gap, and improving our scores on state standardized tests. These are not bad goals, but our world is changing and our current goals are the same as every other developing country.

What is going to distinguish our students from those students in China or India?

I remember hearing a respected member of the community, out of frustration at the current budget mess suggest that we could save money by reducing our electrical costs by removing the technology tools, computers, projectors, etc. If you think about it, in ridiculous sort of way, turning off all the power to an average school may not hurt their standardized test results provided you had classrooms with windows or lots of candles and you'd save some money. Nobody would truly advocate for this but I am just attempting to make the point that what we currently evaluate our students on does not necessarily necessitate that we use technology to prepare them for these assessments.

We need to begin thinking about how we can instill in our children qualities that distinguish them from the rest of the world. One of the tools that we've had at our fingertips for the past 20 years, but have neglected to put it into use for this endeavor is the computer.

In (Part II) I will begin sharing a model of using computers that can provide us a strategy for distinguishing our students from the competition and showcase their many diverse talents.

(image courtesy of Xuoan's Dailies http://www.flickr.com/photos/xuoan-dailies/4089162168/)