Monday, December 26, 2016

Hard Coding with an Eight Foot Piece of Pine Lumber

Well, the semester ended and the holiday season suddenly emerged around me. Handmade gifts are always the ones I enjoy receiving the most. It doesn't matter the quality of the item, only that the person has invested their time and focus on the receiver's behalf. My daughter, Rebecca, is the one who has given me the most beautiful and precious handmade gifts over the years. She is an accomplished professional artist, but she enjoys dabbling in most every craft. One Christmas she gave me a wonderful set of crocheted Angry Birds, which I proudly display in my UGA office. I still cannot bear to discard even a picture she drew for me when she was in third or fourth grade. I have tried to give some handmade gifts myself over the years, to varying degrees of success. But again, I think the people who receive them appreciate the time and attention they represent and - even if the quality is lacking - my intent.

Okay, you are probably asking yourself what all this has to do with learning LiveCode. Well, I have long felt the same sensation in building something with wood as I do when programming. And the key word here is "build." The part of my brain and psyche that is fulfilled by the act of building something is equally satisfied with wood or software as the finished product. I feel the same sense of euphoria and accomplishment as I build something in either medium. My skill in each medium is quite lacking, but that hasn't deterred me. I've given so much focus on building software over the past few years that it occurred to me that I needed to spend some significant time on a woodworking project. The brief holiday break leading up to Christmas provided a good opportunity.

Build: A Special Word


A little more about the word "build." Many other words are used for the act of actually giving a tangible form to a design. In my field of instructional technology, a favorite is the word "develop." I've never been too fond of this word for some reason. The current interest in MakerSpaces puts the word "make" at the center. I like the word "make." It conjures up the world of crafts and I've come to really appreciate and admire people who are serious in making crafts. For example, I've finally come to see the importance and value of making personal scrapbooks using paper, glue, and scissors. I find it both funny and sad that we all loved working with these materials as children, but somewhere along the way, most of us stopped because we thought them as too childish for adult pursuits. ("Put down" is an apt phrase here for both its meanings.) "Construction" is a word I've favored for almost 30 years. Indeed, I think Seymour Papert was wise to use it to describe his theory and practice of constructionism, which is simply learning by constructing, or - as I liked to describe it - learning by building. The word also conjured up its more serious philosophical cousin - constructivism. Discussing the "N" version vs. the "V" version of the word has filled many hours of my teaching. One thing I like about the word construct is that it is easy to imagine the person using a variety of tools, those both simple and sophisticated, while probably wearing a hard hat.

But, the word build is my favorite because I think of its relationship to working with wood to create projects used in our day-to-day lives. It's easy to imagine a carpenter or cabinet maker building something on a very personal scale. Our kitchens, living rooms, and bedrooms are full of things built with wood by skilled people. And, I've long used carpentry as a favorite analogy to building software projects. Many years ago, I wrote a book titled Getting Interactive with Authorware: Building Simulations and Games.


In the preface, I featured one of my woodworking heroes - Norm Abrams - to explain what a "project approach" was all about using the metaphor of woodworking:
The project approach simply means that one learns through building complete, stand-alone projects that are interesting and have clear goals and expectations. Good projects also have an easy-to-understand structure that makes sense at the start. Games and simulations make for good projects. One might say that this book was written much in the spirit of Norm Abrams on the American public television show “The New Yankee Workshop.” Norm is a master carpenter who shows his TV audience how to build from scratch a piece of furniture or other woodworking project. Norm always starts by carefully choosing a project worthy of the effort, often visiting American colonial sites for inspiration. Once he finds a suitable subject, he then builds the piece twice — once for himself (plus to show the audience at the start what the finished product will look like) and again in front of the camera. The design that Norm follows usually includes many changes from the original, mostly to keep the construction within the reach of the amateur carpenter at home.
Although TNYW is no longer in production, you can find all of the episodes on YouTube - here's a good one:


A Christmas Present for My Wife


My woodworking project was a special Christmas gift for my wife this year. I really wanted to push my current skills and develop some new skills. Most of my efforts over the years have been creating outdoor projects featuring mostly 2X4s. My projects have included a storage shed, a deck, a few picnic tables, several benches, two chicken houses, simple fencing, and some wooden gates thrown in along the way. If the project involved 2X4s with a fairly wide margin of error, I was your man. The challenge I gave myself this time was a piece of indoor furniture that my wife would find useful and beautiful. The margin of error now was very small. Finding the right piece of furniture was key. I checked out a bunch of woodworking books from the library - all included at least one of the words "simple," "easy," or "children." One book I really enjoyed reading was Build It Together: 27 Easy-to-Make Woodworking Projects for Adults and Children by Katie and Gene Hamilton. I loved the concept and especially the simplicity of the projects. (The photos were fun to look at as each featured a child building one of the projects with a parent.) Each of these books - even the simplest - contained knowledge and skills I did not have. So, similar to my learning LiveCode, each helped me to extend my own skills and knowledge just a tiny bit. And over time, it adds up.



Just as time was running out to build something in time for Christmas, I found the perfect project - a hallway bookcase that I found in the book The Complete Guide to Easy Woodworking Projects: 50 Projects You Can Build with Hand Power Tools, published by Black & Decker.


The design has those three essential elements proposed by the architect Vitruvius several thousand years ago - firmness, commodity, and delight. This bookcase is meant for the underutilized space of a hallway with a small footprint that tapers off toward the top, making it less likely to bump an elbow into it. I think the delight comes from the simplicity of the design and its well-balanced, visual form. Here's a photo of the finished piece:



I won't bore you with any more details, other than repeating that I experienced that same wonderful, satisfying feeling of building something special. And yes, it did involve several pieces of eight foot pine lumber - but not one 2X4.

I wish everyone a wonderful, healthy - and peaceful - 2017.



Wednesday, December 14, 2016

Lloyd Taking Inventory: What Have I Actually Designed in the Past 34 Years?

The fall semester at the University of Georgia is coming to a close. I taught two design courses this semester and am hunkered down reviewing student projects. As usual, I'm very impressed by the creative work of our students.  I've encouraged my students to try to think of themselves as designers, so I always try to model being a designer as part of my teaching approach. The great thing about taking on identities such as designer, writer, or even researcher is that you don't have to be great or even good at it. You just have to do it with passion and confidence. Indeed, the current writing on design thinking makes it clear that good or great designs usually only come once in awhile and only in the midst of a slew of other designs that never see the light of day.

With that as the context of this post, I've been trying to remember all of the major design projects I've been involved in during my career as a professional educator. These are the ones that rose to the level of good or useful and took significant time and effort to produce. Put another way, these are the ones that saw the light of day. Also, the only examples I include here are software design projects. So, I don't include the design of any of my classroom instruction or any initiatives in which I've been involved. For example, none of the +-10,000 or so PowerPoint presentations I've created qualifies for this list. As another example, about six years ago I was asked to build an initiative by a former dean of our college of education to try to engage faculty in innovative forms of instruction supported by technology. This was a major design effort on my part, but it is not included here because it was not software design.

Each of the software described below deserves a full and long explanation, but I'll obviously not do that here. My goal is simply to "take inventory" and provide a short description of each.

Serendipity (1982)


This was my first published software. Serendipity consisted of nine games and activities for elementary school children, most targeted at fifth graders, the grade I taught. The story of its creation is far too long to tell here. The short version is simply that I decided to learn Applesoft BASIC programming on my own on the Apple II family of computers. At the same time I was a brand new elementary school teacher. Fortunate for me, right after graduation from the University of Pittsburgh I landed in an elementary school in rural New Mexico who had a progressive principal who saw technology as the future of education. He found in me a willing participant in his vision of technology supporting teaching and learning. It was a wonderful time to be a teacher interested in technology, which I now refer to the romantic period of educational computing. That is, there were no rules, directives, mandates, or restrictions. I was free to experiment.

Of Serendipity's nine activities, here were the ones I was most proud of:

Mineshaft: This remains as probably my most successful game design, as judged by students' level of engagement and learning. It is an educational game for learning fractions through estimation. A miner left his miner's pick down in the mine and it was your job to go and fetch it. You competed against another player. The mine was actually a number line shown in a vertical direction. Each player entered a fraction, then their respective mineshaft elevator would be lowered to that level. The player who came closest to the miner's pick would see the pick get loaded into their elevator, taken back up to the surface and deposited on their side of the screen. The first player to win a certain number of rounds was the winner. The cool thing about this game was that you really didn't need know anything about fractions to enjoy the game. You could learn about fractions through discovery learning. Another cool thing is that you never worried about getting exactly the right answer. In fact, this was almost impossible to do. Instead, the game promoted the important skill of estimation.

Pinpoint: This was another game where the player learned about estimating mathematics. The game was really just a form of the classic guessing game where one person thinks of a number between, say 0 and 100, and the other person has to try to guess what it is. In this game, a picture of a radar screen appeared on screen. The idea was that the mystery number was located at the center of the cross hairs. As you took guesses, your "shot" was shown on the radar screen a certain distance away from the center. The closer to the center, the better your guess. This was another game that my fifth graders really enjoyed.

Waffle: This was a math game for two players that borrowed from the games of bingo and connect four. A 4X4 grid appeared on the screen. At the start of each round, each player would choose a "target number," such as 20. The goal was to take turns choosing to place an integer from 1-9 in one of the squares. If a row or column eventually added up to your target number, you won a bunch of points.

Estimation Baseball: This was another math estimation game for two players. The idea was very simple. Give the player a seemingly tough math problem, such as 439 X 675, with very little time to solve it. Let's imagine giving the student only 15 seconds with a beep every five seconds. Each beep signals a "strike." If you don't enter some answer (i.e. swinging the bat), you strike out. If you enter a number, it all depends on how close you estimate the correct answer of 296,325. Learning to quickly round each number to the nearest hundred would give you a much simpler problem of 400 X 700, which is 28 plus four zeros, or 280,000. This might result in a double or a triple. Get even closer and you hit a home run. But, estimates that are far off the mark result in an out. Shortening or lengthening the time between strikes is an easy to increase or decrease the challenge.

Professional Class Golf (1984)


This golf game remains my magnus opus. It was also designed for the Apple IIe and was programmed using BASIC. It was my second software package published. Interestingly, the publication of this game coincided with my transition from classroom teacher in New Mexico to doctoral student at Penn State. I have vivid memories of working on it in both places. (Note: I know there are DOS 3.3 emulators out there that will take old software programmed in Applesoft BASIC and allow the software to be played on modern Apple computers. Unfortunately, getting the code from the 5.25" disks to the Internet is a "bridge too far.")

Fig Newton (1985)


This was the software I designed for my dissertation research at Penn State. It involved a fundamental tutorial about Newton's Laws of Motion lasting about 45 minutes. My research topic was learning through visualization, specifically animation. I built a bunch of simple physics animations to accompany my physics narrative. I studied the difference between animated and static images. Fig Newton was designed using SuperPilot for the Apple II family of computers. Few people know about SuperPilot, but it was the preferred authoring choice at Penn State at the time. Despite knowing and greatly preferring Applesoft BASIC, I went with the flow and learned SuperPilot.

Fig Newton Redux 1 (1988)


After I graduated and became an Assistant Professor of Educational Technology at Texas A&M University, I decided to go back to programming with Applesoft BASIC. I reprogrammed my Laws of Motion tutorial in BASIC. I recall one motivation to do so was so that I could begin to include gaming and simulations within the tutorial. Although one could actually program the needed algorithms in SuperPilot, the execution was very, very slow to the point that it was unusable. And, it felt good going back to BASIC. I used variants of this software for my many research projects in the schools for many years.

Space Shuttle Commander (1990)


This was my attempt at putting into practice everything I had learned with my research. Space Shuttle Commander (SSC) included a series of games and simulations in the context of the player commanding the space shuttle. All of the tutorials I had created became available as student resources, creatively rebranded as "flight school." I was very proud of SSC, particularly because NASA agreed to publish it within their Educational Technology division. The software was given away for free to all interested teachers.

Fig Newton Redux 2 (1992)


I'm actually amazed how long the Apple II family of computers remained viable in the schools. But, eventually, the inevitable happened and the Apple II family was replaced with Macintosh or Windows computers. I think it started to happen in earnest around 1991. I had begun learning a new authoring tool called Authorware a few years earlier. Gaming and simulation software created with Authorware in the early years ran very slowly, similar to SuperPilot, but due to advances in the Mac platform eventually the speed became satisfactory and I made the jump from BASIC to Authorware. This happened about the time I moved from Texas A&M University to the University of Georgia in 1993. I again programmed many different variants of my laws of motion tutorial, games, and simulations for use in my research agenda at that time.

The Rogue Refrigerator (1995)


For awhile I focused attention on the relationship between distance, velocity, and acceleration as the learning topic within my research agenda. If you know anything about physics, you know this is among the most fundamental set of principles in physics. Indeed, the history of physics more or less began with these ideas. Some historians point to these principles as the first serious examples that gave rise to the invention of calculus. One example of a game and simulation combination involved an activity in which just the graphics - and hence the context - of the simulation changed. For example, we had the ever-popular spaceship example with an engine accelerating it faster and faster. But, another example used a graphic of a refrigerator being pushed by one or two people (they resembled twins). The idea of a fridge on the loose really struck the fancy of the research participants, though in the end this example produced the least effective learning. But, it was fun to play.

Nowhere Road - The Game (1999)


Our program at the University of Georgia changed the design of our masters curriculum to focus on a studio approach to learning. This included sharing one's design prototypes as they were developed with one's design community for critique, while also journaling about the design. Again, in the spirit of modeling all this I designed Nowhere Road - The Game, which involved the adventures of a mild-mannered professor who bicycled to work most days. Along the way, he had to deal with mean dogs and impatient drivers. The game also tried to teach the benefits of safe cycling. I again used Authorware to design this. Fortunately, the journal I kept is still available.

Project Shop (2000)


Project Shop was a federally funded to help people with mild to moderate intellectual disabilities. Video and interactive software was developed in the context of grocery shopping. The grocery store is an interesting place, both cognitively and socially. There are so many opportunities to build many forms of literacy and to learn socially accepted behaviors. Having a dually-diagnosed son with autism, I learned early how difficult the grocery store was for him to figure out. The grant allowed us to produce some very fun, motivating videos that became "anchors" for a variety of activities found on an accompanying CD. I can claim only a portion of the design effort that went into Project Shop. The credit goes to the entire team, which included Dr. John Langone and Dr. Thomas Clees, special education faculty and colleagues of mine at UGA. We also had some outstanding graduate assistants, included Michael Matzko. Mike was one of the most talented software designers I've ever had the pleasure to work with. The topic of Mike's doctoral dissertation was the design of the Project Shop software. We used Authorware to build the software which, unfortunately, makes all our excellent work inaccessible. Very sad irony.

WWILD Team (2000)


Around 2000 I became very interested in designing online learning environments. I began to learn about how to build databases for use in dynamic web sites. I learned how to program Active Server Pages (ASP) using a simple Microsoft Access backend database. The WWILD team was my first large project. WWILD stands for "World Wide Interactive Learning Design" team. I envisioned the entire world acting together as type of organized design effort. Interestingly, the WWILD team anticipated the rise of learning objects because the site promoted the compilation, curation, and review of interactive learning "modules." Yes, I had high hopes for this site. The site remains active and functional.

Lloyd's Personal Learning Management System (2002)


The early examples of learning management systems (LMSs) were very crude and I was very disappointed in them. So, I decided to make my own custom LMS for various courses I was teaching to use an alternative. I built a rather clever design using ASP and Microsoft Access which allowed me to early create new sections of the course for use with new students in subsequent semesters. It proved popular enough that many of my colleagues at UGA asked to use my system when they were tapped to teach these courses. This online system still works, but I stopped using it about five years ago when UGA finally adopted a more robust LMS.

Graduate Degree Portfolio Management Site (2005)


For many years I was graduate coordinator or department head or program coordinator, or a combination thereof. One of the most confusing tasks was managing graduate student portfolio meetings. Many people have to be consulted just to schedule one. Then, it becomes a game of reminders to make sure everyone shows up at the right time and the right place. So, I solved this problem by building a management site for all of the graduate student portfolios. The site doesn't contain the portfolios themselves, just links to them, along with committee members and room numbers. The web site also manages the approval and completion process as each portfolio undergoes several reviews. This has been one of my most successful projects and in the end saved a lot of people a lot of time, especially me.

In Search of Lost Wisdom (2006)


This was special activity I designed for my online teaching of instructional design to help me teach task analysis. I built this activity because, frankly, I was dissatisfied with my teaching of the task analysis unit. I didn't like teaching it and, not surprisingly, my students didn't like learning it. I had been touting the advantages of game-based learning, so I decided to practice what I had been preaching by designing a game to do the teaching for me. This is now one of my and my students' favorite parts of the course. This was also designed with ASP and was added to my custom-built LMS for the instructional design course. (Note: I also built a public portal for my LMS, which required quite a bit of effort. It's been used by about a dozen or so instructors in the USA. It still works. In fact, I used this portal myself this semester to run the game during one of my courses. It worked great and students seemed to really like it.)

Project Promote (2006)


One of the cool tools I built for my custom LMS was a question & answer (Q&A) tool to allow all questions asked by students to be archived and then searched later by them or future students. It worked pretty well. I presented this tool to a group of faculty and administrators in the Office of the Vice President for Instruction at UGA and it generated some interest. An interesting design emerged from these conversations to build a Q&A-type tool where assistant professors could ask sensitive questions posed to a group of senior faculty. The VP gave me a little bit of money to hire a graduate student to build this online tool. I thought it was a great idea, however, the tool just never took off. It was that case of "we built it, but they did not come." Too bad.

Catch Sunny (2011)


This was my first serious LiveCode project. I was working on a large grant meant to support people with disabilities transition from school and home into independent living in the community. This app was meant to help the team understand the ability of people in the target audience to use and interact with the small iPhone interface. Sunny is one of my pet dogs. I randomly put a picture of Sunny on the screen and the task was to click on Sunny (i.e. catch him) as quick as you can. If successful, the size of the icon of Sunny was reduced a little bit. If errors began to occur, then the icon's size was enlarged. The app tracked the user's success and error rate. It also tracked where errors were occurring. I also used this project to learn how to build a native iOS app for the iPhone. This was my first app that appeared in the iPhone App Store.

Lunar Hotel Shuttle (2012)


This physics simulation game was the original inspiration to start this blog, so click here to read more about it.

Statistics in Education for Mere Mortals (2013)


I entered the MOOC world in 2013 by proposing, then building a MOOC to help instructional design professional in particular, but really anyone, learn and use fundamental statistics in their work. I've taught this MOOC eight times, with a regular schedule for future offerings (a new section begins every February and July). The fundamental software design for this MOOC is a series of videos that revolve around each participant building their own Excel spreadsheets from scratch. We start with computing the mean and standard deviation, and end by computing an Analysis of Variance (ANOVA). All of the videos used in the MOOC are available on YouTube.

PersuadeMe (2013)


PersuadeMe is an interactive web site that promotes learning how to write evidence-based argumentation. The design of PersuadeMe was a group effort, but I led the design effort and also was the programmer for the team, building the site using HTML, PHP, and MySQL. We received a very small grant of $25,000 to build the prototype, but this funded only a small portion of the time needed to build the site.

Lloyd's Video Analysis Tool (2016)


I've blogged extensively here about the design of this app. Here is a last blog post I published about this app.

Lloyd's Q Sort Tool (2016)


I've also blogged extensively here about the design of this app. Here is a link to my first blog posting about it.

Closing Thoughts


As I wrote in the opening section, most designs never see the light of day. A good example of this is the fact that I have designed and written about 31 unique projects in this blog since I began it in January 2013, almost four years ago. However, of these I include only three in the list above - Lunar Hotel Shuttle, Lloyd's Video Analysis Tool, and Lloyd's Q Sort Tool. But, that's OK because each of the projects contributed in some small way to my overall understanding of LiveCode and consequently to the design of these three projects.

As I reflect on the list above, I wonder about many things. What exactly does this list represent? Although this blog post seems long, one must remember it represents 34 years of my professional life. That fact makes the list seem very, very short to me.

Finally, I keep an old Apple IIe in my office and every now and then I power it up to play some of my older software. Of all the software I programmed for the Apple IIe, the one I play first - and usually the only one play - is Professional Class Golf II Pebble Beach. Even with the old graphics, simple sound effects and keyboard only input, I still think this is a fun game. Good design, like good music, stands the test of time.