9 Replies Latest reply on Sep 3, 2012 6:08 PM by steve_ssh

    Teaching Programming with Bento/FM - Proposal

    larryw

      Students need to be taught programming skills and the process thinking behind it. And the students should not have to be one of the cream to get this benefit. Every student should learn that careful thinking and a penchant for perfection is required. And in programming you can't fake it. Your system works or it doesn't.

       

      Most if not all attempts to teach programming either result in cognitive overload of the student -- having to learn too much, or the environment is too trivial that the result is not useful and the skills learned are unimportant. I'm seeing that FM at least has the ability to be used as a programming teaching tool that is also useful. The cost of FM is clearly out of reach.

       

      And use of calculators in K12 does not only not teach appropriate thinking skills, it is definitely harmful, for their kids no longer learn the basics of arithmetic and graphing, just blindly punch in numbers into their mandatory graphing calculators, and the teachers and K12 administrators believing they've done their duty to teach the T in STEM.

       

      Bento seems to me to be close to a good solution to teaching programming skills that also achieve useful results. It lacks the ability to create scripts however which I believe is necessary and also lacks debugging support.

       

      What are others views on this proposal?

        • 1. Re: Teaching Programming with Bento/FM - Proposal
          comment

          I am not at all sure that teaching Filemaker teaches programming skills. I guess it depends on how you define "programming". IMHO, if I wanted to teach kids "programming" without the extra baggage, I'd go for HTML+Javascript. It's simple enough for anyone to make a start with, offers instant results for positive feedback, and it can get as complex as you want further on. Not to mention zero cost.

          • 2. Re: Teaching Programming with Bento/FM - Proposal
            beverly

            +1 on that, Michael! Then move on to PHP (also free). JavaScript and PHP are similar (loosely) and definitely have that "programming" construct. Then move on to more complex.

             

            But I disagree with larryw. Bento does what it does, but using it for teaching programming? Keep in mind that there is education pricing for FMP. Much better choice than Bento for the purpose of teaching students.

             

            Beverly

            • 3. Re: Teaching Programming with Bento/FM - Proposal
              mbraendle

              Another good option is Processing, a meta-language based on Java for creation of images, animations and interactions.

               

              Processing is free, open source, and comes with a Development Environment including many examples.

              Processing is very well documented, there is a learning section and a reference on the website, and there exist several books, and a huge community support.

              Examples are shared on openprocessing.org

              When you learn Processing, you easily also learn Java, which is being taught in many informatics studies at universities.

              The current 2.0a8 version allows to export JavaScript code that runs on WebGL enabled browsers. With a few lines of code, you can do simple things such a this rotatable cube (use a WebGL enabled browser such as Firefox, Chrome, or Safari. In Safari, you can enable WebGL in the Developer menu; have a look at the source code of cube.html).

               

              The standard package comes with included libraries that allow to access the camera or the sound card of the computer.

              Additional libraries allow also to do robotics (e.g. with an Arduino board), computer vision, physical simulations, or to access Microsoft's Kinect.

              Such possibilities would be a challenge for those young people who want to go further and have a flair for assembling things and doing experiments.

               

              Which leads to another topic: Interrelation between hardware and software, physical world and abstract logic. One may lead to the other, both directions are possible.

               

              I remember my college friend who was son of a director of a fireworks company, and who used his C64 computer to address relays via the parallel port to control the ignition of fireworks. He was one of the proponents of electronically controlled fireworks.In addition, he wrote software that graphically simulated fireworks and used it for composition. (Me, on the other side, besides chemistry was more interested in assembling electronics for simple synthesizer modules, and having understood that sound waves could also be created digitally, was writing assembler code to create all types of sounds from my little Sharp pocket computer).

               

              How many of the kids nowadays know about the inner workings of a computer, have opened a computer, know how a computer (tube or flat) display works, know about the simplest electronic parts that make a CPU or a RAM, diodes, transistors, resistors and capacitors? How many have assembled a simple flip-flop (using 2 transistors, 2 capacitors and a few resistors) and connected LEDs or a loudspeaker to it, or constructed a radio using an electronic kit? How many have made a clavilux using a serial register, or assembled logic gates?

               

              I think one should carefully choose the right software tool that arises curiosity in young people and enables them to experiment, play, and to discover and connect related aspects. As Michael and Beverly, I'm not sure whether a database such as Bento or FileMaker might be able to do that sufficiently. HTML, JavaScript, and PHP have more potential, but are still on the very abstract side.

              • 4. Re: Teaching Programming with Bento/FM - Proposal
                s

                A similar question came up on another list I subscribe to, although more specifically about resources for teaching Java. I have pasted some of the responses below. Also if you google "how to teach programming to kids" you will get many ideas.

                I believe you can teach programming to kids using a wide variety of tools or languages, but I heartily agree with Martin:

                I think one should carefully choose the right software tool that arises curiosity in young people and enables them to experiment, play, and to discover and connect related aspects. As Michael and Beverly, I'm not sure whether a database such as Bento or FileMaker might be able to do that sufficiently. HTML, JavaScript, and PHP have more potential, but are still on the very abstract side.

                I have had a lot of success teaching kids Logo and also Lego Robotics, but primarily because those were the tools I had available.

                 

                Here are the comments and links from the other listserv:

                 

                http://sofia.fhda.edu/gallery/java/

                 

                www.programmingbasics.org

                 

                A quick google search turned up a StackOverflow post here:

                 

                http://stackoverflow.com/questions/255976/whats-a-good-way-to-teach-my-son-to-program-java

                 

                You should be able to find some great tools and advice in that post,
                including BlueJ, Kojo and some eBooks.

                 

                But I would also caution you that Java is a fairly draconian programming
                language. But if he's new-ish toprogramming, he would likely do better with a language like Python or Ruby,
                which provides the same high-quality libraries for game-type programming,
                but has much more readable syntax.

                 

                Here is a fun game to practice your Java skills:
                http://robocode.sourceforge.net/

                 

                http://www.bluej.org/

                 

                 

                The book Learning to Program with Alice is a great first step into programming.  Many people who try to learn how to program give up because the syntax is too hard.

                 

                  http://www.aliceprogramming.net/

                 

                If your student already has a programming background and won't benefit from Alice and you don't have the resources to take them further, I suggest the Programming Methodology class from Stanford available on iTunes U.

                 

                  http://itunes.apple.com/us/itunes-u/programming-methodology/id384232896

                 

                Its an introduction to software development using Java and doesn't require prior programming experience.

                 

                You can download a free Java IDE, either BlueJ (basic and good for learning) or Eclipse (full featured).  Eclipse can be integrated with Robocode.

                 

                • 5. Re: Teaching Programming with Bento/FM - Proposal
                  wimdecorte

                  Depending on the age if the kids you can use Scratch from MIT, Kodu from Microsoft or even something like NXT from Lego (which is a REALLY fun way to learn how to program).   Microsoft also has something called Small Basic which is pretty good.  Anything that is somewhat Object Oriented would be a much better intro into programming than what FM can offer in this realm.

                   

                  As in intro into databases, FM would be a good fit, not so much in programming.

                  • 6. Re: Teaching Programming with Bento/FM - Proposal
                    beverly

                    that reminds me; there's LOGO <http://en.wikipedia.org/wiki/Logo_%28programming_language%29> also known as turtle graphics. Something designed for education.

                     

                    Beverly

                    • 7. Re: Teaching Programming with Bento/FM - Proposal
                      comment

                      I have carefully avoided all dedicated learning tools, because:

                       

                      larryw wrote:

                       

                      Most if not all attempts to teach programming either result in cognitive overload of the student -- having to learn too much, or the environment is too trivial that the result is not useful and the skills learned are unimportant.

                      • 8. Re: Teaching Programming with Bento/FM - Proposal
                        LyndsayHowarth

                        Lego and the programmable robots is the best fun and a wonderful programming challenge.

                        You can build routines and subroutines and incrementally the instructions given to the robot can become more and more complex. I think of all the tools this is the best for teaching programming to kids.

                         

                        Bento teaches a structure with a few flexibilities. FileMaker is much more flexible. I think, though, that HTML/JS and (as Beverly suggests) eventually PHP teaches more about generic 'programming' skills.

                         

                        I learn't LOGO as my first intro to programming. It is amazing how satisfying it is to draw a circle with only coordinates. I think this is the kinda fun that Lego brings....

                         

                        Sent from my iPad

                        Lyndsay Howarth

                        11th Hour Group Pty Ltd

                        • 9. Re: Teaching Programming with Bento/FM - Proposal
                          steve_ssh

                          larryw wrote:

                           

                          Students need to be taught programming skills and the process thinking behind it.

                          I would elaborate by saying that students would benefit from learning problem solving skills which value both left-brain and right-brain approaches, i.e. both the rigor and the logic as well as the creativity, playfulness, and free-thinking, ideally striving to combine all of these as solutions are sought, developed, tested, realized, etc..

                           

                          Every student should learn that careful thinking and a penchant for perfection is required. And in programming you can't fake it. Your system works or it doesn't.

                           

                          I think that careful thinking, attention to detail, and a penchant for perfection are great qualities to instill.  To this list I would add having an open and curious mind, and a belief in one's own ability to make progress in learning something through dedication.  I happen to believe that programming is a great craft for learning all of the above.  I also happen to believe that these qualities can be taught across a great variety of disciplines, including, but not limited to, programming.

                           

                           

                          Most if not all attempts to teach programming either result in cognitive overload of the student -- having to learn too much, or the environment is too trivial that the result is not useful and the skills learned are unimportant. I'm seeing that FM at least has the ability to be used as a programming teaching tool that is also useful. The cost of FM is clearly out of reach.

                           

                           

                           

                          A few thoughts/comments:

                           

                          1) It would not have occurred to me to use FM as a teaching tool for that which I consider 'programming skills'.

                           

                          2) I think that Wim has a good point that FM could be a good introduction to databases.

                           

                          3) I like Michael's suggestion of Javascript - It has a few nice points going for it:

                           

                               - it has clear relevance to contemporary technology

                           

                               - it can be taught within a context that illustrates practical use (i.e. embedded within web pages)

                           

                               - it can also be taught in a more abstract context by running code within a Javascript interpreter (outside of a browser)

                           

                               - monetary cost for setting up a student is low

                           

                          4) For an age range approaching and including high school students, I would also consider Java as a possible language to learn.  I think that the success for this would hinge on having a very supportive learning environment -- I couldn't see just throwing a book and a compiler and some dry lectures to a kid and expect them to have a good time learning Java.

                           

                          5) I'm very glad to see that lots of folks responding to this post are mentioning or alluding to the importance of:

                           

                               - having the learning process be fun

                           

                               - having the learning process encourage discovery and experimentation

                           

                               - developing a sense of wonder about seeing the parts and pieces start to fall in place

                           

                          I think that Martin really captured these important points very nicely in his post.

                           

                           

                          And use of calculators in K12 does not only not teach appropriate thinking skills, it is definitely harmful, for their kids no longer learn the basics of arithmetic and graphing, just blindly punch in numbers into their mandatory graphing calculators, and the teachers and K12 administrators believing they've done their duty to teach the T in STEM.

                           

                          My heart weeps when I see the curriculum that emphasizes facility on a calculator over an understanding (or at least an appreciation) of the craft, study and theory that underlies the calculator.  My disposition, however, is not to believe that teachers are naively believing that they've done their duty by teaching such curriculum.  My view of teachers is that they happen to care an immense amount about the development of their students, and yet they are also required to adhere to a curriculum that has been decided and set elsewhere.