Wednesday, April 20, 2011

Maker Classroom Resources



In your maker classroom, you might to see the resources for teaching and learning as Widespread, Shared or Scarce. How you provision your learning environment will depend on how any given supply or tool fits into these categories.

Widespread resources

These are the supplies, materials, tools that are readily available in quantity and without reservation. In many schools, copier paper fits in this category, pencils, paper clips and other traditional supplies can be had with a minimum of begging. If there is a drink machine in the building, plastic bottles should be readily available. You may also arrange a donation of some amazing resource that will be available from the community. Several years ago, I worked out a deal with a parent employed at a corporation to donate 80 Pentium II and III computers. They arrived on two pallets along with mice, keyboards and a couple of boxes of power cords. Where before the donation, computers were a relatively scarce resource, suddenly I had so many computers that they were literally stacked three machines high under the the classroom tables. After using them as computers for students to rebuild, the components had a long life. From this ubiquitous resource of compujunk, we learned a lot about how computers work, how to fix them and how to repurpose the components, all the way down to harvesting cd drives for their motors, switches and amplifier chips.

Shared resources

For some materials, tools and even spaces, it makes much more sense for them to be shared. If there is an expensive tool that you don't use all that often, it can see more action in a shared environment. This is the case with 3D printers, electronic component collections and even the work room itself. Teachers who travel with a cart know about shared resources, as do people who frequent hackerspaces, community centers and vacation camps. With shared resources, tools and supplies can be concentrated in an area where other people have access to them, an the resources' use may be sporadic. These devices and supplies may be donated equipment or purchased with the intent to share.

With shared resources, it is important that people recognize the shared nature of the device and manage their time and access accordingly. If the whole class is sharing access to the laser cutter, or 3D printer, and others are waiting on machine time, then doing short cuts or short prints will help move the whole group to get a chance to use the tool. Saving a long print or a long cut until last in line when most of the group has moved on to their next class will help get everybody through. Trying out a new process that might take a lot of machine time can prevent others from getting their ideas made. If a student is waiting for access to the vinyl cutter, she should sit near the machine watching how the other people operate the machine so that she can get her project made quickly when it becomes her turn. People sitting near the machine should use it and move along so others can get their chance. They shouldn't sit and hang out, preventing others from accessing the resource.

With shared resources, the expense can be spread out over a greater amount of users who will access it. If a 3D printer costs $1,000 and thirty people can get access to the tool in a classroom or shared learning space, the cost per person is lower than if it's bought as a personal machine that stays at home and only one or two people use it.

Scarce resources

Some materials that student and community learners can benefit from are very difficult to get, expensive or potentially dangerous if not operated properly. If your classroom has one sewing machine, and there are twenty students, this scarce resource will need to be managed. While one person uses it, another might watch, but the other students will need to be working on other phases of the project while they wait their turn. Some might be designing, preparing materials, gathering information before using the machine, and others might be finishing their work and documenting their projects with photographs, video, text and posters after sewing with the machine.

If your classroom is equipped with just a little bit of white paint, this scarce resource must be managed carefully to make sure it gets used well. Sure, maybe you could go out and buy some, but what if time or money is also a limited resource, and you can't get more? How can the resource be managed? You may also want to make a resource scarce for other reasons. Soldering irons or utility knives are resources that I personally prefer to keep as scarce resources. It makes me more comfortable knowing that there are only a few of them to keep my eyes on.Having potentially troublesome tools kept scarce helps encourage students to use their time in a more focused manner. If you have large class size, then storage space might be more scarce than if you have small class size. This will affect the types of projects that will be appropriate.

Some resources may start out as scarce, then move on to shared and ultimately become ubiquitous. Computers hold a good example here. In the early days of computers, a student would have been lucky to get any computer time. Eventually, computer terminals allowed some schools to give access, then personal computers appeared in a few classrooms. It is now fairly standard for there to be at least one computer in each classroom, making it possible for shared access. Some classrooms have widespread access where every student has a computer. Digital cameras have followed a similar arc as they have gone from unusual and expensive to standard and embedded on just about every cellphone that students may have. As more students have greater access to these resources, it becomes easier to design projects around their use.

What are the Widespread, Shared and Scarce resources in your learning environment? How do you manage students' access to various devices and supplies to get the most learning out everything students can use?



Sunday, February 13, 2011

Programming Play


This project is similar to the Program a Person project from a few years ago. The main idea is to create a format for teaching programming through combining storytelling and object oriented code.

The participants in this project would be students/learners who don't know much about code, but are familiar with stories. Any age group could work. If there were participants who knew a bit more about programming, that would be great. This is also a great way to combine the disciplines of theater, writing and programming.

Everything that exists in the story has to be defined/instantiated/called as an object in the code.

Some objects would be:
theStage
theAudience
aCharacter
aHouse

For example, if the story were The Three Little Pigs, there would be calls for:
theStage = thisStage //stages can be given a variety of attributes, small, large, classroom, with lights, etc
theAudience = thisAudience //adult, children, deaf, blind, etc
aCharacter = littlePigOne aCharacter = littlePigTwo, aCharacter = littlePigThree, aCharacter = bigBadWolf,
aHouse = strawHouse, aHouse = stickHouse, aHouse = brickHouse
etc.

As the story develops and unfolds, the code would be displayed, highlighted, spoken to the audience. This could be be a line or block of code that is shown on a card. It could be shown on a display on a screen adjacent to the stage. It could also be spoken by a narrator (also an object instantiated above). Audience members could have a copy of the program or script, or they could write the program as they see the show.

Actions would be defined by a line of code:
littlePigOne build stickHouse;
bigBadWolf printf "I will huff and puff and blow your house down";

Desired outcomes:
The end result would be that participants would have a better knowledge of how code works, and could start to see the way programming applies to everyday situations. A pretest and posttest could identify learning that results from this technique.
This experience could be followed up by:
  • A more elaborate play programmed by participants
  • Type based programming projects
  • GUI based programming projects
  • Discussions of how aspects of a program could be acted out
  • Allowing the language of programming to be used in conversation to explain how things work in the world
If you are interested in helping develop the idea, keep the conversation rolling. If you have a teaching situation, try it with your students. I'm not aware of other projects that are similar to this, but surely somebody has done something along these lines.

Programming Play

This project is kind of similar to the Program a Person project I wrote a few years ago.

The main idea is to create a format for teaching programming through combining storytelling and object oriented code.

The participants in this project would be students/learners who don't know much about code, but are familiar with stories. Any age group could work. If there were participants who knew a bit more about programming, that would be great. This is also a great way to combine the disciplines of theater, writing and programming.

Everything that exists in the story has to be defined/instantiated/called as an object in the code.

(my syntax is sloppy below...)

Some objects would be:
theStage
theAudience
aCharacter
aHouse

For example, if the story were The Three Little Pigs, there would be calls for
theStage = thisStage
theAudience = thisAudience
aCharacter = littlePigOne aCharacter = littlePigTwo, aCharacter = littlePigThree, aCharacter = bigBadWolf,
aHouse = strawHouse, aHouse = stickHouse, aHouse = brickHouse
etc.

As the story develops/unfolds, the code would be displayed/highlighted/spoken to the audience. This could be be a line or block of code that is shown on a card. It could be shown on a display on a screen adjacent to the stage. It could also be spoken by a narrator (also an object instantiated above)

Actions would be defined by a line of code:
littlePigOne build stickHouse;
bigBadWolf printf "I will huff and puff and blow your house down";

The end result would be that participants would have a better knowledge of how code works, and could start to see the way programming applies to everyday situations.
This experience could be followed up by:
  • A more elaborate play programmed by participants
  • Type based programming projects
  • GUI based programming projects
  • Discussions of how various aspects of a program could be acted out
  • Allowing the language of programming to be used in conversation to explain how things work in the world

If you are interested in helping develop the idea, keep the conversation rolling. I have a teaching situation in Pembroke where we could test it out, or you may have a venue that you'd like to work with. I'm not aware of any other projects that are similar to this, but surely somebody has done something along these lines.

Sunday, December 13, 2009

Designing in Sketchup

BaseAssembly.jpg

In my Principles of Technology class, we're using Sketchup to design the parts we will make for the Mendocino Motor. Though we'll fabricate the parts with hand and power tools, you can also use Sketchup to make the files needed to cut parts on a mill, Makerbot, Shopbot or other CNC tools.

The Mendocino Motor project appears in the Teachers' Pet Projects section in MAKE, Volume 20, page 79.

Here are some techniques to design parts for the motor:

First get familiar with the Sketchup interface. This is pretty easy, the software is rather intuitive. A good place to start is by making whole shapes with the rectangle and circle tools. Draw a shape, then use the Push/Pull tool to extrude it up or down. You can make a shape on the side of another shape, then pull it out or push it in. Make some shapes. Mouse over the tool icons and you should see the name of the tool in a popup.

You can also do some neat stuff with the Move tool. If you have a cube, draw a line at the midpoints (again, mouse over, and watch for the popups). If you pull the line up with the Move tool. This will give you something that looks a lot like a roof of a house on the cube. If you pay attention to the color of the line while you are moving it, you'll see that it takes on the color of the blue axis if you are pulling straight up. This means that you are moving parallel to the Z or vertical axis.

As the designers made the software easy to use, it is not very straightforward to resize objects and move features. Some other CAD software packages, such as ProDesktop, ProEngineer, Blender, Solidworks, AutoCAD, Rhino and more definitely do have measurement features that are probably easier to access. In general, these other packages are harder to learn, a tradeoff for their greater precision and parametric features. These other software packages (excepting Blender) will also set you back more than a few bucks, though most offer student/educator versions and discounts to help out some of us.

To get a more accurate design out of Sketchup, you'll want to start paying attention to the measurement box on the bottom right side of the screen. If you make a rectangle and then type in the dimensions you want it to be and hit the enter key, the rectangle will be the size you specified. For reference, I've made a set of screenshots of just about all the steps taken in this tutorial. The tools themselves are not shown on the screenshot, but you can tell which tool is being used by looking at the icons in the toolbar. The measurements of all the parts are listed on the MendoMeasurements page of the course's wiki.

For the base of the motor, we need to make a 3 3/4 by 9 inch rectangle. Draw any rectangle to the right of the origin intersection. Immediately after, type the size, 9, 3 3/4 or 9, 3.75 and hit enter. The rectangle should be resized along the x axis. The first number is the distance along the x axis, the comma separates the x and y values, and the second number is the distance along the y axis. You can check the measurements with the Tape Measure tool.

Next, we'll want to extrude the shape up 3/4 of an inch. To do this, we use the Push/Pull tool. Switch to the tool, then hover over the rectangle. You will see the shading change. Click the mouse and push up any distance. To size the extrusion, type 3/4 or .75 and hit the enter key.

To place the grooves that the magnets will sit in, we need to make some guides. The grooves will be half of the thickness of the wood, or 3/8" and they will be 1/2" thick. Use the Tape Measure tool to make the guide. In the tool, first click on the bottom or top edge of the shape. Drag down and type 3/8 to place the line. It should be a dotted line. On the front edge of the block, make a guide that is 2 1/4" from either end. To locate the other side of the groove, measure towards the middle of the block 1/2" and place another guideline. Next, use the Line drawing tool that looks like a pencil to draw in the three lines of the groove. Once the lines are in place, you can use the Push/Pull tool to remove the material of the groove. Once the file is complete, save it as BaseWithGrooves.skp.

The next two parts are easy to make in Sketchup. The upright is 3 3/4 square and 3/4" thick. When you make the rectangle to start the part, put the coordinates in as 3 3/4, 3/4. This will save you from having to rotate it later. Use the Push/Pull tool to extrude it up to 3 3/4. Save this file as Upright.skp. To make the mirror, use the same process. Make the rectangle with the measurements of 3 3/4, 1/8 and then push it up to 3 3/4. Save this file as Mirror.skp.

Now you have three parts that you have designed. To put them together, you create a new file that you will save as BaseAssembly.skp. Bring in the first part you made, BaseWithGrooves.skp. Place the part at the origin of the three axes. It should snap into place at the origin. While the part is selected, you can go to the Edit menu and Lock the component. This will keep it from moving around later.

Next, you bring in the Upright.skp. Go to the File menu and choose Import. Then find the part. If you also place this part at the origin, you can move it into place with the move tool. You can also eyeball its placement, but let's go for accuracy. Use the Orbit tool to move the view around so you are looking at the origin. You can roll the scroll wheel on the mouse to zoom in and out, or you can use the zoom tool. Click on the upright component with the Move tool, it should have a blue box around it. Select the bottom corner closest to the origin of the axes. Move it up on the Blue axis a bit and type in 3/4. This should place it on the top of the BaseWithGrooves part.

To place the Mirror.skp part, do the same thing. Import the part and place it at the origin. Move it up 3/4" and then move it along the RED? axis 3/4" It should be now placed on top of the BaseWithGrooves and alongside the Mirror part. Save the file.

You can also do some neat visual styling of the parts by selecting them and using the paint bucket tool to color them. If you want to color one face different from the others, you will need to select the part, then go to the Edit menu and choose Explode. This will allow you to change the part, even paint the faces different colors and more.

Saturday, November 21, 2009

Wear your helmet EVERY TIME YOU RIDE

On Tuesday afternoon I went for a refreshing bike ride near my house. Somehow or another, I got clotheslined on a dog's leash as I rode down a dirt path. I flew off my bike at a high rate of speed, landing square on my head. Several hours later, I came to in the ER of the local hospital babbling and repeatedly asking my wife Liz the same handful of questions over and over. Angela was at horseback riding during my misadventure, and ended up staying the night at our neighbor's house and we're tapping our network of friends to get her delivered to and from her many activities.

Physically, I'm kind of a wreck, my head, knee, shoulders, elbow and neck hurt. Mentally, I'm foggy, talking slow, tired, unable to focus on much, can't take much screen time, and overall kind of slow.

Years ago I decided to always wear a bike helmet. I had a bunch of bad spills as a teenager, but that seemed to stop around the time I started wearing a helmet. This was my first big spill since my reckless youth, and probably worse than any I had as a kid.

On Tuesday, I hopped on my bike, helmet on, probably with music going through my headphones, wearing a favorite hoodie and red jacket. Behind the seat I've got a blinky LED array to help my rearward visibility.

Through (probably) no fault of my own, I hit the dog's leash at full speed down hill. The bike stopped, but my body took flight. I ragdolled on the trail where I was peeled off the ground by my neighbor, the EMT. I assume the other end of the leash held the woman who called 911. I bet her arm hurts pretty bad.

Most of the whole day of Tuesday is gone from my memory. Wednesday was a wash, as we waited until after 6pm for the last consult. Thursday went to three doctors' visits that I couldn't drive myself to. Friday held only one dr visit, but I needed rides to and from. This week I missed three days of work, and next week looks like a washout as well. Substitute plans just aren't the same for the students as having me in the classroom.

This has been an enormous disruption, and there is plenty left on the plate. What I would ask of you, my bike riding friends, is to keep this in mind every time you get on a bike, skateboard, set of skis, snowboard or experimental homebrew vehicle. You don't know what will happen to you as you ride, and you cannot control how you will land. Even with a helmet, your life can become amazingly complex in less time than you an say 'look out!'

At the risk of coming off preachy, let me just say:
WEAR YOUR HELMET EVERY TIME!




Labels: , , ,