From 0 to C

  • 116
  • 3
  • 0
  • From 0 to C
    a new series of workshops that aim at teaching programming using a more creative and human approach.
  • Created by Ubi de Feo, “from 0 to C” is a new series of workshops that aim at teaching programming using a more creative and human approach.
    Through the use of tangible, hand-made objects, I try to establish a clear understanding of how a computer works and what a programming language actually is: nothing but an abstraction of what we can do as humans.

    “from 0 to C”, originates from the need to prepare students to hardware (in particular Arduino) workshops in the shortest time possible.
    During the past few years, as an Arduino trainer, I realized that while getting a LED to blink was fun, the real barrier lied in understanding the very simple code you needed to achieve it.
    in detail:
    // code here
    // code here
    For a coder that approaches Arduino, and possibly has some experience with other languages/frameworks (such as Processing or OpenFrameworks) this constitutes no issue, but for the beginner, the artist, the industrial designer who wants to start prototyping, these can appear as walls they constantly have to crash against.
    If you ask them why, most of the times the answer will be something along the lines of “I’m a creative person, this structured stuff is not for me”.
    While merely 5 years ago I considered myself a coder, now I see my role mainly as creative, because the way I solve problems involves a lot of (creative) thinking.
    My main issue has always been that I can never be happy of how I know something until I can visualize it and translate it into something that my brain can grasp and finally own.
    My experience with computers is longer than 20 years (actually getting closer to 30), and my fascination with these machines brought me to always analyze their processes in a way that could be related to what a human could understand.
    The need for visualizing, touching, physically moving has been the primary drive.
    The break-through was when I finally could see that everything a computer does is either a very dumb or very smart implementation of what, as humans, we are able to do.
    Typing, drawing, recording, solving math, simulating physics, communicating with other people and many more examples.
    The more I analyzed these things, the more I tried to split them into smaller parts, until from the bottom to the top I could trace every step and realize if I had it or not.
    This process has been evolving in auto-pilot in my head and teaching workshops, meeting people, sharing experiences, participating to online activities has kept adding blocks to this subconscious container of information until it suddenly started taking shape.
    So, after the lengthy introduction, what happens in these workshops?
    At the moment I’m trying to make modules that lead to understanding of several levels, up to teaching Arduino and explaining more about other hardware.
    The method is based on stories, anecdotes, discoveries about numbers, math, electronics etc.
    Some stories are fictional and only used to support the concepts.
    There are analogies and games I use to explain numbers and other concepts, making them easier to grasp, stimulating curiosity and helping digest topics that are usually exposed in ways that are hard to “like”
    I try helping the student to connect to things in a more emotional, sense-centered way, because if
    we don’t feel forced into something, but genuinely want to learn out of passion/curiosity, we are more prone to establish a tie with the subject, finding interest in it.
    how do we do this:First of all we put our computers away.
    There will be no code, no editor, no screen.
    The tools to become a programmer are paper, pens, tape, candy, ping-pong balls, wooden boxes, cups and other common objects.
    We start from 0, so we have to tell some stories about numbers, and how influenced by your knowledge of numbers.
    erase all you know, start learning to count and move on, through short stories, anecdotes, parallels, trial and error.
    The whole class moves through several stages of interaction with the teacher, in which they execute simple tasks and are able to document them.
    In a few hours the class is (unwillingly) turned into the human representation of a program.
    This program becomes more and more complex, but because the whole class is involved, it is simple for the single student.
    While these mechanisms are implemented more concepts are learned, and digested slowly, with breaks and more games involving boxes and ping-pong balls, the way we “count” using them, challenging each other to represent quantities in optimized ways.
    When the machine is running, all that we have is sketched out and if the system works, it’s time to write it down.
    From that point on it’s just a matter of teaching you the simple syntax of a language (it could be C, Processing, ActionScript, JavaScript. it won’t matter).
    At this point the student has a clearer vision of what he/she has to deal with, and when the logic is clear, the techniques and the virtuosity that will be implemented over years are just the result of getting better at it, and the scope of this primer is not teaching you to be the best C/Processing/Flash/Arduino/MSP coder/hacker, but one who knows what he/she is dealing with and has a better attitude towards problem solving.
    In my years as a teacher I’ve learned that the quality of interaction you have with a class defines how much they will absorb of what you have to tell.
    Inspired by how ancient philosophers used to transmit knowledge and provide stimuli to the students, participation of a class is key to the group’s success.
    The paradigm is (not really) new, and it’s evolving (for now just in my head), but it’s open to input and criticism.
    The goal of “from 0 to [...]” is to be a stepping stone in a trend to motivate people with a high level of commitment in education, and possibly start teaching other scientific subjects with the passion that nowadays is so hard to be found in schools.
    An empiric crash course in programming or hardware can help a young mind discover if he/she wants to be a programmer, an engineer, a hacker, a graphic designer, an architect, an astronaut or something else.
    I hope soon I’ll be able to make this method simple enough to target kids, as I believe only good things can come from future programmers and hackers that love what they do.
    I realize that details about these workshops are scant but I’m open to questions about them and other education initiatives by Hello, Savants!
    Please use our contact form to ask questions using “from 0 to…” as subject.
    thank you.

    ubi de feo
    Hello, Savants!
    this is what they write about it:
    Creative Applications
    Wired UK

    the pilot:
    the first workshop pilot took place at Mediamatic in Amsterdam, and it was mainly made possible by the support and enthusiasm of Deborah Meibergen.