Cardboard automata

Cardboard automata are machines made out of cardboard. They are often operated by a hand crank or dial to initiate the motion. As the primary axle turns, cams attached to it cause cam followers to rise, fall, or spin, depending on their geometry.

Just based on that description, who could resist diving in immediately to make one?

Not me.

Plus, I had an assignment from my Maker Space class to “make something you’ve never made before.” Bingo!

I discovered an excellent set of instructions, with pictures, created by The PIE (Play – Invent – Explore) Institute. I decided it would be a fun challenge to make as much of the project as possible out of “found” (available) items in my home.

box-cornersI cut a cardboard box in half, then reinforced the corners to prevent it from collapsing sideways. I cut a hole in each side of the box to connect an axle across it. The instructions suggested using skewers for the axle and cam shafts, but since I didn’t have any, I instead used some wooden dowels I had lying around. I thought they might create a more sturdy result. However, I didn’t have a dowel long enough to span the box, so I temporarily taped three dowels together to build my first prototype. I cut out some cams out of craft foam and slid them onto the axle at different positions.

cam-followersI also created three cam followers by cutting circles out of the foam and inserting more dowels into their centers. Then I cut three holes in the top of the box for the cam followers and connected everything together.

I chose three different cam designs for my three units. The middle cam is round and centered, which generates rotation in the cam follower. The left cam is egg-shaped, which generates rotation and vertical motion. The two right cams are round but off center, and they are positioned to be 180 degrees out of phase. Therefore, they alternate in their contact with the cam follower, which goes up and down and alternates between clockwise and counter-clockwise rotation.

tubesAt this point, when I turned the axle, the dowels wiggled back and forth and sometimes moved themselves off their cams. I consulted the instructions, which advised inserting drinking straws into the top holes so the skewers have a strong guide to keep them aligned. My dowels were far too thick for straws, so I cut up a cereal box to get a firm yet shapeable cardboard sheet. I rolled this cardboard to create tubes that were just slightly larger than the cam shaft dowels. The machine’s performance improved dramatically, and I decided it was time to glue everything down: the tubes in their holes, the cam followers to their shafts, and the cams to the axle. And it worked!

Once I had a working machine, I was free to add whatever design elements I wanted. Extending the cardboard design theme, I found instructions for how to make flowers from toilet paper rolls as well as a sprout/palm-like plant for the middle cam shaft. I glued green paper and brown felt onto the top to give it a nature-inspired look, added some paper flowers, and cut out a paper backdrop of twisting grass shapes to accentuate the feeling of motion. Finally, I used colored markers to decorate the cam followers so that their motion (and its direction) is more visually evident, since the mechanism is a focal point of the project.

Here is a longer video that explains the parts of the machine.

Which programming language should you learn first?

This question lies at the heart of all computer science curriculum design efforts, and it resurfaces year after year after year. One reason that it can never be answered conclusively is that the range of options, and the kinds of programming needs that are out there, change over time. Another reason is that it’s a holy war. For some folks, you might as well be asking what their favorite text editor is. For those folks, don’t.

But it’s a question of more general interest, beyond the computer science classroom. Douglas Rushkoff argues that everyone should be programming-literate, for their own survival, and even less extreme views highlight the benefits of computational thinking.

I’m not going to tell you what language to learn first, because I don’t have (and I don’t think there is) a fully general best-possible recommendation.

Lifehacker took a stab at characterizing a few common languages to help newcomers make this decision. Their programming language menu goes like this:

  • C: Trains You to Write Efficient Code
  • Java: One of the Most Practical Languages to Learn
  • Python: Fun and Easy to Learn
  • JavaScript: For Jumping Right in and Building Websites

  • … which isn’t quite how I would have done it. And I’m not sure these characterizations are even useful.

    I’m much more persuaded by this approach which points out that “learn a language” is not a single specific concept. It’s important to ask how *well* you want (or need) to learn the language.

    I was immediately struck by the parallel with learning natural (human) languages. When I’m going to a foreign country for a week-long conference, I learn a smattering of useful/polite phrases to help me get around and not be That American while I’m there. If I were to move to that country, I’d be willing to invest orders of magnitude more effort to be functional in the language. I don’t agonize over which language to learn; I learn the one I’m going to need.

    Likewise, the programming language you want to learn is the one you’ll need to have at your disposal. Work, school, implementation, or other constraints might dictate that to you. And if not — if you’re a hobbyist or just want to learn “programming” with no particular end goal — then does it matter? Pick a mainstream language (so that there are sufficient resources out there to aid your learning) and dive in!

    What to do with a computer

    What was the first thing you did with a computer?

    If you first encountered computers in a programming class, you probably learned to write a simple mathematical program, like calculating digits of pi or computing the sum of a list of numbers.

    Seymour Papert and Cynthia Solomon suggested that we think bigger. While computers can certainly perform mathematical calculations, they can do a lot more than that.

    “In the real world computers are used in many different ways. Some are programmed to fly airplanes; not to tell a human pilot what to do, but to pull levers with their own electro-mechanical effectors and to read the altitudes, airspeeds and what-not with their own electronic sensing devices. Computers are programmed to generate music or condition dogs by ringing bells and delivering meat powder while the modern day Pavlov is happily asleep.”)

    And they wrote this in 1972 (!).

    In their paper, Twenty Things to Do with a Computer, they suggested an alternative approach to using computers for education.

    “Why then should computers in schools be confined to computing the sum of the squares of the first twenty odd numbers and similar so-called “problem-solving” uses? Why not use them to produce some action?”

    The twenty things they suggest include making the computer draw pictures (they invented the Logo language, something I remember fondly from sixth grade), play video games, generate music, operate an Erector set, write poetry, control puppets, and more. This philosophy is very much in line with the motivation behind maker spaces and programs that encourage learning by doing, motivated by concrete goals and activities.

    While not every school has realized Papert and Solomon’s vision, there are great programs out there today, such as the FIRST Robotics Competition, that do encourage kids to learn to program and operate robots using computers. Introductory programming courses are being revamped to move away from math exercise type problems to those that put programming in a real context, like working with multimedia or addressing social issues.

    Going beyond what projects or applications computers can help us tackle, we can even use computers to learn new ways to think. I’m a big fan of the movement to teach people computational thinking skills. This doesn’t mean “think like a computer” in some derogatory, robotic way. It means learning how to come up with solutions that are efficient, repeatable, and generalizable. Jeannette Wing’s paper on Computational Thinking provides a great introduction to the idea, and it makes the case for why these skills are useful to everyone, not just computer programmers.

    In today’s world of cell phones and tablets and smart watches and embedded devices, the power and ubiquity of computers in everyday life is obvious. In fact, these items are so ubiquitous that we don’t even think of them as computers any more. We use them all the time as, well, users. These ideas from pedagogy invite us to use them as creators, inventors, and problem solvers.

    Co-creating in the classroom

    I’ve been reading a lot lately about participatory experiences in museums and other public institutions. One fascinating idea is that of “co-creation,” in which the organization partners with visitors/patrons to create content.

    This is a radical departure from the traditional museum experience in which displays are hand-crafted by subject experts and debut in their final, polished form for passive consumption. After reading about museums in which patrons can propose exhibit ideas, then work alongside staff to make them happen, I wondered if the same ideas could be applied in the (college) classroom.

    College students are generally cast in a powerless, passive role. They have paid the entrance fee (tuition), but the design, content, operation, evaluation, and educational goals of the class are entirely out of their hands. A couple of deviations from this pattern that I’ve observed are:

    • Choose Your Own Adventure (as a group): Students vote on a subset of advanced topics to be covered later in the course
    • Student as Presenter: Students each stand up in front of the class and educate their peers on a topic

    The latter is, unfortunately, usually seen as an obligation imposed on the student rather than a chance to express a personal interest or satisfy a personal need. Making the topic a wide-open choice makes matters worse, not better. The atmosphere of judgment and evaluation is too strong.

    How might we experiment with co-creation? How could students offer input on how to tailor the course for their maximal benefit, in combination with the instructor’s experience and knowledge?

    Here are some (untested) ideas for co-creation that I’d like to put out there:

    1. Motivation and content: Instead of assigning tasks that your best guess says will be valuable, take time to find out what students want to get out of the course. Pre-class polls on this subject often fill up with “this class is required for my degree” or “it’s a prereq for something else,” so it may take some prodding to get them to dig deeper to find personal reasons for being there, or things they could get out of it. Examples could help inspire useful answers, especially from previous years’ students. Are there skills they want to gain? Facts they want to know? Methods they want to learn? And why?
    2. Operation: Start the course with a collaborative brainstorm (and whittling down) of what the course rules will be, on the mundane but necessary topics of attendance, turn taking, late assignments, and grading.
    3. Evaluation: Get student input on what they think the weights of the different topics and assignments should be.

    These (and similar) ideas could give students agency, investment, and personalization in ways that just aren’t there in most classrooms today. These traits can foster increased learning and retention.

    For co-creation to be successful, Nina Simon notes, we must truly value participants’ input. We can’t simplify students into blank slates or empty vessels ready to be filled with our wisdom. That sounds preachy (and it’s not a new idea either), but I think it never hurts to take a moment to share genuine respect for and interest in your students’ individual personalities. Do they have hobbies that relate to the course topic? Do they have prejudices about the subject due to your course’s reputation, a sibling’s experience, or simply the fact that it’s a required class that they would not have chosen on their own?

    Stefan Stern warns against expecting the next big thing to spontaneously pop out of co-creative activities. “The real art is in synthesizing all the ideas afterwards and understanding the big, unlooked-for themes that underpin them.” Sounds like good fodder for organizing a syllabus to me!

    While relinquishing control can be a little scary and even more chaotic, I think it can also make the teaching process more fun, inspiring, and educational for the educator. Each offering of the class would be different. We assiduously poll students at the end of the term for the highly prized course evaluations. Why don’t we also assess the course’s value by polling the teachers to find out what they learned, or how they benefited?

    Human library

    What if books were people? Or people were books?

    The Human Library is an organization that organizes and inspires events in which participants can “check out” a human Book for a conversation. The Books are people who volunteer to express roles that are often the subject of negative prejudice, like The Police Officer, The Male Nanny, or The Atheist. Readers page through a catalog of Books and choose one to check out.

    The University of Arkansas has its Human Library catalog online where you can see more examples. Some that caught my eye are “Come, Learn Braille” and “10 Reasons to See Ukraine.”

    I love this idea. I remember the first time that I realized that a written book could have the power to give me experiences that I would never have in my own life. This happened in middle school, while reading Orson Scott Card’s “Xenocide,” which features a main character who has an obsessive-compulsive disorder. This was something I knew vaguely about, but reading Xenocide put me so far into Han Qing-jao’s head that I felt her emotional ups and downs and the pangs of her compulsions. (The fact that these are interpreted as religious imperatives, in the book, made it all the more poignant.)

    And if a book could come to life and have an interactive conversation with you, what then? It’s known that real-life contact with someone from a marginalized demographic can change world views and overturn prejudices. Contact with the stranger makes them less strange. Contact with the unknown can also reveal your own previously unknown prejudices.

    I expect that reading a human Book is a powerful experience, and the context in which it is framed is brilliant. If you are not already a member of a particular group, you might hesitate to strike up conversation with a Muslim or Jew or Christian or street sweeper or circusmaster or gay parent or grocery bagger — how would that begin? But we are already comfortable with brushing up against Books with very divergent ideas in a Library, where anyone is free to check out anything. And these Books are there because they want to engage in conversation; you need not fear that you are being invasive. Your questions are welcomed.

    The Santa Monica public library hosted Human Library events in 2008 and 2009, and Loyola Marymount University had an event in 2012. I’ll have to keep my eyes out for other Human Library events so I can try one out in person!