kwartzlab makerspace

Archive for the ‘Member Blogs’ Category

May
19
2013

First Glimpse into the Soul of a Tamagotchi

By » 48 Comments

I dumped the ROM of a Tamagotchi using the code execution ability I posted previously.  I wrote 6502 code that dumped each byte of the memory space of the Tamagotchi, and output it over port A (which is usually the Tamagotchi button input) via SPI.

Writing out the in port will likely shorten this Tamagotchi's lifespan. Sometimes Tamagotchis must suffer in the pursuit of science

Writing out the in port will likely shorten this Tamagotchi’s lifespan. Oh well …


Read the rest of this entry »

May
7
2013

Code Execution on a Tamagotchi

By » 77 Comments

I achieved arbitrary code execution on a Tamagotchi using a bug in figure ROM processing. This capability should allow me to dump the Tamagotchi code ROM after some analysis, as well as allow me to ‘hack’ my Tamagotchi using the full capabilities of the microprocessor.

Hip hip horray!!

Hip hip hooray!!


Read the rest of this entry »

Mar
28
2013

Call for Makers

By » 6 Comments

Are you or your organization doing something awesome with technology, art, crafts, science, food, or music? Show it off at the Waterloo Maker Faire on Saturday June 15th at Kitchener City Hall!


WMMF-CallForMakers

Any groups or individuals interested in participating should complete the simple application at http://makerfairewaterloo.com/ by the end of April.

Mar
22
2013

Reflections on my first Serious Teaching Experience

By

This article is cross-posted

It’s no secret that I’m not impressed with the current state of University education. I’ve spent a long time griping about the various issues, and pointing out ways I would do it differently. None of that makes any difference, however, until I actually do something about it.

While my issues are with post-secondary education generally, my primary expertise (especially of late) is in Computer Science and Software development. So, I developed a curriculum, found a community, and started teaching a class.

Teaching one class does not constitute a solution, but it does provide a learning experience for me. The class is over half done now, and in the rest of this post I will be examing things I have tried and what I have learned.

Hands-on Learning

Since my approach is focused entirely on education, I did not assign any exercizes early on. I provided students with the tools needed to play with the concepts on their own, and set them free to hack. This turned out to be too open-ended. When encountering a new concept for the first time, many students simply had no concept of what direction they should take their explorations in.

I am now providing some concrete exercizes to the students, but really I need to find a way to integrate more hands-on learning into the class itself. This is made more difficult because of the pacing I chose for this version.

Pacing

Probably the biggest experiment in this first version of the course is the pacing I am using. The class is an overview of Computer Science from both the perspective of functional abstractions and low-level machine implementation. It is designed to give students a flavour of what parts of Computer Science they might find interesting for further study. I am doing the whole thing in 8 weeks.

The amount of material I am covering would normally be covered in two or more semesters at a University. Why am I doing this? For two reasons: so that students have less time to get bogged down on individual details (since, as an overview course, this is not about depth), and also to find out how fast one can reasonably progress without hopelessly confusing students.

While I cannot be sure without more experiments, I am also beginning to suspect that the pacing increases student engagement (at least for the sorts of students I have solicited). New material every single class means that students do not have an opportunity to tune out because “we already talked about this”.

While the pacing is definitely hurting the students’ ability to deeply absorb the subject matter, I conduct informal experiments periodically to determine understanding. Students in general seem to be grasping concepts, and find themselves coming back up to speed on items they failed to retain quickly enough to demonstrate a level of penetration.

Students

For this course, primarily because of the pacing, I solicited students with prior knowledge of computer internals and programming. I started out with a good mix of students from various backgrounds, but certain students (about half of the 10 I started with) dropped the course fairly early on.

Students who stuck with the course were precisely those students who had both enough knowledge of computer internals to handle the pace, and enough of a deficiency in prior experience with Computer Science-related material to be interested in an overview. I hope to run both slower and more in-depth courses in the future in order to serve other sorts of students.

While prior knowledge of the basics seems to be helping the students’ ability to comprehend new material, it also occassionally poses a distraction, since I cannot present any idea as strictly new. I need to improve my ability to communicate an idea that is “new” in the context of a course, without speaking as though no one present has ever heard of it before.

From the Top and Bottom

The concept of my particular curriculum for this course is to start at the “most” abstract and “most” machine-specific concepts, and work inward. This is in stark contrast to most first-year Computer Science courses, which start out in practical programming, move on to machine specifics, and then later on do algorithms and (maybe) more abstract (actual) Computer Science.

Students have indeed struggled with the seemingly-abstract concepts, especially early on when they may not yet even have a basis on which to understand “why they care” about the abstractions that are possible. This is partly because of my failure to spur adequate hands-on learning, and partly because of the ordering. On the other hand, the juxtaposition of abstractions and related implementation details has already more than once resulted in realizations about the nature of the abstractions (“that product type is just like a struct!”)

Next Steps

I still have to finish teaching this class, and will report more at that time. Some of my students (and also other members of the Kwartzlab community) have expressed interest in an Operating Systems implementation course, based on my Writing a Simple OS Kernel series of posts. I hope to run this course mid-summer, and structure it purely as a project course. This should give me more experience with the ways that hands-on learning can be effectively brought directly into a class.

I am also excited about the idea of running other more in-depth courses, based on community interest. From a “Computer Science for Programmers” side I would like to run a course I’m calling “Advance Abstractions” (dealing with advanced concepts in control flow and data modelling) and also a non-course structured as various talks by various contributors on specific data structures and algorithms.

I would also like to run the “slow version” of this same course, targetted at complete beginners. The problem with this version is that it requires participants to have more time to dedicate to the course. We’ll see where that goes.

Mar
12
2013

Satellite in the Shed at KI-X

By » 2 Comments

satellite in the shed

The Knowledge Integration eXhibit is running this week at the University of Waterloo. One of the exhibits, Satellite in the Shed, discusses the history and significance of the DIY movement and what it means for the resilience of our society.

IMG_2454

The exhibit includes and interview by our own Robert “Gus” Gissing and photos of the works of Bernie Rohde.

It also includes other cool projects, like a a homemade exercise bike, a video game controller and a haptic rangefinder glove.

IMG_2455

IMG_2461

The exhibit only runs one more day, Wednesday, March 12, noon to 6pm.

Mar
4
2013

Tamagotchi Sound (or Why Tamagotchi “Gangnam Style” is Techinically Infeasible)

By » 6 Comments

I looked into the sound capabilities of Tamagotchi items. Unfortunately, while the hardware seems able to play a wide range of notes at different volumes, this functionality is not available through the figure.

IMG_00000334

Tamagotchi Sound


Read the rest of this entry »

Feb
25
2013

Tamagotchi Items

By » 1 Comment

The one feature of Tamagotchi figures I haven’t looked at yet is items. When a figure is attached, Tamagotchis can buy items at shops and use them. Items vary vastly in what they can do, from headphones that cause your Tamagotchi to dance around in headphones until you remove the figure to refrigerators that make your Tamagotchi less hungry when they eat from them to vacations that show a clip of your Tamagotchi seeing the sights.

USA Tour Item

I took my Tamagotchi to see the statue of Lincoln. What did you do for your Tamagotchi today?


Read the rest of this entry »

Feb
11
2013

Kitchin’ It In Kitchin’ Er

By

Oh hay thar mister kitchenette
k0
Lookin pretty sweet with your shiny blue walls, you cookie forge you

The range has a hood, the hood has a range, and soon there will be cookies. Soon.
So what else it can do?
k1

Maybe Taylor can elaborate what happened here
K2

<blink>THE KITCHEN HAS WATER!</blink> :D

 

Thanks to Taylor, Rob, Ben, Mark, Steph, Ed, Cedric, Karl, Bob, Kevin, and countless others who made it happen, and are continuing to finish the buildout!

Five days until the grand opening…lots of work left to do!

Jan
27
2013

Pandora Buildout Update

By » 2 Comments

We’re pressing ahead with building out Pandora and twisting it to our sinister ends! Yay!

 

The front room is still busy and cluttered, but stuff is slowly starting to get put away.

DSCN0259

 

The clean shop is starting to look like a real work zone!  The laser cutter and soldering table is ready for setup, and venting has been routed.  Also, carpet!

DSCN0256

 

 

Here’s the heavy equipment room.  Things are starting to find a home!

DSCN0257

 

 

Heavy Lab, from the garage door. LOOK OUT COFFEE CUP, YOU’RE IN A SHIRT PRESS!

DSCN0258
Upstairs is the clubhouse area. You’ll have to imagine the TV and couches, but they’re coming.

DSCN0252

 

The kitchenette/cookie forge is coming along!  There’ll be a fridge to the left, and flooring underneath.

DSCN0251

 

The storage area is assembled, and has allowed us to get a lot of bins & boxes off the floor & sorted!

DSCN0253

 

And finally, the most exciting room of all, the newly-expanded bathroom!  Now with art!

DSCN0248

 

Come on by and check it out for yourself next Tuesday night, because it’s changing day by day!

 

Jan
20
2013

Tama-Go ROM Format

By » 3 Comments

I’ve been continuing to work out the format of the Tama-Go figure ROM. Using the figure simulation circuit I set up in my last post, and a digital logic analyzer, I’ve determined the purpose of most of the data in the figure ROM.

No one say ‘cross talk’ and maybe it won’t happen

 


Read the rest of this entry »