Proposal: Learning to Code by Creating a “Choose Your Own Adventure” Game

Learning to Code by Creating a “Choose Your Own Adventure” Game

Project Overview
Learning to code has become a valuable and sought after skill in a variety professions, but the assignments and projects offered in coding courses often focus around math problems or technical examples that are of little interest to learners with varied backgrounds. This project hopes to open a path for a much broader audience by creating a coding micro-course  focused around the idea of an interactive story the learner creates themselves. The content of the story can be directly related to history, language arts, or other areas of study to help encourage learners to foster algorithmic thinking related to these subjects.

The course will introduce Python, the popular coding language, to be used behind the scenes to support the interactive story and give it structure.

Students will be encouraged to create programs which are based in historical facts, deal with social issues, encourage role playing, or offer a teachable moment. Students will still be able create their own story from scratch to convey a personal experience or just a simple piece of fiction.

Students can watch videos and review materials at their own pace or get support from their peers online. The more complex problems can be brought to the classroom to refine and troubleshoot. It is anticipated that many students will be able to complete all of the work online and share their work in the coure’s online community.

Target Audience

This project will be tested with high school students, mostly in grade 9,  that have already some limited exposure to coding. Although this is where the project will first be introduced, students that don’t have any previous experience should be able access and complete the micro-course projects with limited or no support.

Resources: Learning Environments and Digital Tools

The primary location of the course will be in a hosted version of the Open edX platform at eduNEXT. This popular LMS (Learning Management System) platform is often used by universities to offer MOOCs (Massive Open Online Courses) but I will only be testing and evaluating it with a small group of high school students.

The other essential tool for this course is Trinket.io coding environment.  Using Trinket.io, students will be able to write, debug, and run Python code online, instead of just locally on their computers. It also allows for embedding of coding examples and is easily shared or downloaded to be used in a compatible Python compiler.

Planning out the interactive story in a flow chart format is a critical element of this project. Although my course materials will suggest the use of Google Drawings for creating a flowchart, for it’s easy of use and sharing, other tools such as MindMiester, LucidChart, and others are welcome as long as they student demonstrates a clear flow to the proposed story/program.

Since some of the instruction will be delivered via short video segments, YouTube was chosen for its reliability, easy of use, and compatibility with the other tools when embedding or making content accessible to a greater number of disabled learners.

Edpuzzle, a tool for inserting questions in the middle of YouTube videos, rounds out the digital tools by providing a way to check for understanding, even when you can’t see the learner, and it helps foster formative assessment. Learners are more likely to be engaged and listening when there is a immediate challenge associated with the content.

Learning Outcomes:

  • Student effectively adapts and incorporates a story into their game.
  • Student creates a descriptive flowchart that explains the choices a player is presented.
  • Student demonstrates understanding of how to create a game using the appropriate Python syntax and structure.
  • Student participates the beta testing by sharing their work and offers constructive feedback to their peers.
  • Student revises, repairs, and improves their final program and shares their experience.

 

References

Bower, Matt, John G. Hedberg, and Andreas Kuswara. (2010). A framework for Web 2.0 learning design. Educational Media International 47, no. 3: 177-198.(Journal Article).

Davenport, C. E. (2018). Evolution in Student Perceptions of a Flipped Classroom in a Computer Programming Course. Journal Of College Science Teaching, 47(4), 30-35.

Code.org Logo Made with Code

screen-shot-2016-11-05-at-12-42-06-pm

Code Is Everywhere. Or at least I see it everywhere.

I recently gave out some nice Code.org stickers to my higher level coding students and while going through some of the particulars of how to make rounded rectangle shapes in Processing’s p5.js framework when I realized we were making the base elements of the code.org logo.

This is a pretty basic version that we played with in openProcessing before we moved it to our own hosting to import a font with rounded edges.

To view version 0.1 of the logo: http://code.urbanatwork.com/p5/codeDotOrgLogo1/

To view the code:  See it here on Github

360º Photo with Bubbli at the Long House Reserve


This is photo bubble is from the inside of one of the Long House Reserver’s permanent sculptures.

Photo bubbles like this are nothing new, they have been been around for probably close to 20 years, but the ease of use of the Bubbli iPhone app is pretty nice.  Apple had their version of a photo bubble with Quicktime VR that allowed you to do it and stitch photos together but it was tricky and very time consuming. Microsoft had an iPhone app a few years ago called Photosynth and it was pretty good but didn’t have great support. The Bubbli version has some neat controls and its guided setup is well done and mostly intuitive. The final element that sets Bubbli apart is the addition of captured audio that I didn’t use because of nearby noise but could make many photo bubbles more engaging. It’s worth a try the next time you’re in an interesting fairly static location without to many moving elements.

Long House Reserve - Buckminster Fuller inspired sculpture

Long House Reserve – Buckminster Fuller inspired sculpture

Titled:  Fly’s Eye Dome, 1998
Designed by Buckminster Fuller
Produced by John Kuhtik

The Long House Reserve is located in East Hampton, NY.

Simple Lorenz System in OpenSCAD

lorenz System OpenSCAD

UPDATE: There is an online version of this here. Just use the customizer to see how it works!  https://www.thingiverse.com/thing:1187587

Chaos theory scientists often like to use this model to show how small changes in initial conditions can result in unanticipated behavior is systems.

This is the Lorenz System that can be tinkered with to see how small changes can have unpredictable results.

This model wasn’t intended to be printed but was more of a challenge to see if it could be modeled in this program.

I would like to thank Dr. David Morgan, atartanian and JeanInNepean for the heavy lifting when it came to this project.

 

Geared Heart Keychain – A Thingiverse “Featured” Model

Ah to be Featured!  (it totally made my week)
“It was all part of the quest (to be featured) and now that the popularity ride is over it only leaves me wanting more.”

The idea of creating something that could be a “hit” on Thingiverse has been a frequent topic of conversation in the 3D Modeling and Fabrication classes I’ve taught for the past two years. With so much talent on Thingiverse I feel quite lucky to have my 3D Geared Heart  featured.

I continue to find it interesting to hear the challenges that some folks have had and the reaction to the model when it works as planned.

The model was meant from the very beginning to be an easy single print (print in place) design that required no support or raft removal. We also wanted it to be something that had moving parts and wasn’t too large or time consuming to print.

Using the “standard” settings on a Makerbot or Ultimaker it usually take only an hour to print and should come off the build plate with moving gears.

Many people have thanked me for sharing my design and some of asked to use it for different purposes. The feedback from the community has been nearly all positive and in some cases touching.

Comment: Thank you for a great design. I run a small charity in the UK, one of the issues is cardiac problems. So I have printed red with white gears which is our charity colours. Our members love them. As do the cardiac staff at the local hospital.

A great design not just for Valentine’s

Our site is http://costellokids.com


Screen Shot 2015-02-24 at 12.57.11 AMAlthough there were lots of folks saying nice things it is obvious that there are still going to be people out there that are looking to make a buck off your model. It only took 9 Days until I found it showing up on a website in India being sold for 320 Rs. (~$5USD) .

This isn’t the first time something like this has happened to one of my designs. The day I posted the heart on  Thingiverse I asked a co-worker if he wanted to print one by which he quickly quipped, “no, I’ll just buy it on ebay next week.”


DATA – the ups and downs of internet popularity

From a data and statistics standpoint it is interesting to look at the climb and fall of the “Featured” items in relation clearly less popular designs. It would be really interesting to be able to see where most of the traffic is coming from and when are the most popular times of the week. Even if that isn’t available it is still nice to get this view:

Screen Shot 2015-02-24 at 1.10.14 AM

 


 

A Few Final Thoughts… 

Talking with people in person I find that most folks quickly get around to the question of “How much money did you make on your design?”  Trying to explain that my model has been downloaded over 11,000 (update: 18,000) times and that I didn’t expect any money from it when posting it is something that makes folks question the whole Open Source/Maker movement that I often talk about in the Innovation Lab.

(2am, bedtime) … More to come…later.

The Voronoi Remixed 3D Printed Owl

 

Owl VoronoiTHE IDEA:
My 6 year old is really in to owls at the moment. Her Owl Themed Birthday party was loads of fun and that led me, as a good hacker Dad, to play around with some of the popular owl models available on Thingiverse.

I borrowed the older Makerbot Replicator Dual for the weekend, mainly to print out an Owl Cookie Cutter I made in Sketchup 8 (that’ll be a different post). But after printing out the cookie cutter I found myself replacing a stepper motor and rebuiling the extruder (that hasn’t worked for a year). To celebrate this rebuild I looked for a good dual extrusion print to try.  Since I couldn’t find a good owl one, yes we’re still on an owl kick, I remixed our favorite owl from Tom Cushwa using a Voronoi pattern.

The files can be found on Thingiverse here.

THE PROCESS:
I started with MeshLab and struggled through the soundless tutorial below. Then I took the result and did some MeshMixer boolean runs to create the two separate .obj files.  I finished it all off with a trip to NetFabb’s online file repair tool. The whole process took a whole lot longer than I thought it would but so far the results have been pretty nice for a first go at it.  (I am tempted to do a video of the whole thing if anyone would be interested?)

Printing Topless… and Bottomless

Sometimes you run across great models/files on Thingiverse or elsewhere on the net that are solid objects that you’re supposed to print without a “roof” or top layer. The same is sometimes true about printing objects without a floor or bottom.

If you’re using Cura, Slicer or other non-Makerbot software you can find these setting available in the advanced settings, but on Makerware/Makerbot software it is a bit tricker. You’ll need to create and modify a custom profile.

I am not sure why they don’t simply create an “Expert” tab that allows for simple check boxes to turn these features on and off. There have been a couple of folks posting tools to give it that functionality but some of them are more complicated than what we’ve done here.

(Wow, I just checked YouTube and don’t see a video that I thought would be there…. )

Screen Shot 2015-03-03 at 12.30.01 AMTo edit your profile: Go to the “Settings” tab and then click and expand the “Advanced options” . At the bottom you’ll see a “Create Profile” button. Click it and give it a meaningful name.

I often put many of the settings in the name title, S2F20L02 (for shells:2, Fill 20%, Layer Height 0.2mm).

Now you can click on “Edit Profile” if you have TextWrangler on your computer then I suggest using that.

These are the lines that I changed in my file. Note that we have two MakerBot printers with dual extruders so I like to make put a temp in for each extruder.

Screen Shot 2015-03-03 at 12.12.17 AMThese variables are spread through out the miracle.jason settings file so it might be easier to edit with a program like TextWrangler, BrioFlexTrack4which is my preference.

"extruderTemp0": 220,
"extruderTemp1": 220,
"platformTemp": 60,

"roofThickness": 0.0,

"floorThickness": 0.0,

"infillDensity": 0.0,

"doRaft": false,

You can see my entire settings file and one I have used for NinjaFlex (with a special extruder) on my GitHub here.

If you are feeling daring or want to try out other features hidden away here refer to MakerBot’s Custom Slicing documentation here.
Thing shown: “Brio Flex Railtracks” by romanjurt
http://www.thingiverse.com/thing:661462

 

NinjaFlex – Flexible 3D Printer Filament in a MakerBot Replicator 2X

simple 3d printed vase in ninja flex
NinjaFlex printed “Simple Vase”

Take Away:
Definitely a challenge to print with but the rewards might be worth it depending on your end goals.

The Journey:
It might have taken a day or two worth of fiddling around to get the extruder together on our MakerBot Replicator 2X using MakerBot’s extruder upgrade kit ($8: consists of a spring, bearing and a screw). The instructions for the upgrade on the Makerbot site is for a Replicator 2 (NOT the 2X) and the thickness of the extruder block and how they line up are all different so that was a dead end at first.

I ended up using the Thingiverse extruder files created by 3FPD (our make pic: http://www.thingiverse.com/make:87985) and I finally got the stuff to load without bending and buckling (too much).

Lastly it took a day or two of fiddling with the MakerBot profiles to find the right mix of heat/retraction/speed and so on to get a successful print. (for us it didn’t work with the recommended settings and temps)  Above you’ll see some of the prints leading up to the pretty well done Simple Vase print.

The MakerWare (now MakerBot) profile that I used to create the finished “simple vase” and the iPhone 5 bumper posted by Adafruit