Showing posts with label programming for kids. Show all posts
Showing posts with label programming for kids. Show all posts

Wednesday, August 04, 2010

Computational Thinking, Programming…and the Google App Inventor – SmartBean


What were Papert’s views on children, computers and "powerful ideas”? Are they relevant today? Why should we introduce our kids to programming and how? Find out all the answers to these and more in this article - Computational Thinking, Programming…and the Google App Inventor that I recently co-authored with Charles Profitt, leader of the NY State Ubuntu Local Community.

(Incidentally my older son was at the Googleplex in Mountain View recently for a 3-week "Computational and Programming Experience" camp for 14-year olds that is designed with similar goals in mind..)

Saturday, November 14, 2009

Expanding the Technology Curriculum to Include Foundational Elements of Computer Science for K-8

[Cross-posted on SmartBean]

What started as a germ of a idea over a year ago in this post titled - The Ideal Technology/CS Curriculum for Middle School and caught the eye of ISTE's Anita McAnear, editor of Learning and Leading with Technology (L&L) and national program chair of NECC, has now appeared as a full length article in the November 2009 issue of L&L. (Yes, it does take that long for the submission, review, approval, editing, and final publication process at L&L. I first submitted the article in November 2008, it was approved in Jan 2009, sent to me for revisions in April 2009, final edited version sent to me for review in August 2009 with a promised publication date of November 2009!!) Thanks Anita, ISTE & L&L!

Computer Science Not Just For Big Kids



It is sad more than surprising that computer science, which has been a bona fide discipline for over half a century now, has found little to no space in K-12 curricula. As a result, most students go through their school years naively equating computer science to simply computers or computer programming. As the Dutch computer scientist Edsger Dijkstra said, “Computer science is no more about computers than astronomy is about telescopes.”

Computer science is the study of the theoretical foundations of information and computation. Given the amount of exposure students get to the science of the physical, living and non-living world, it does not make sense to completely ignore a science that governs much of the technology and the nature of the “form” in which we transact information on a day-to-day basis in our techno-saturated lives.

In addition to a basic understanding of the essential definition of what computer science is, students can and should also get exposure to some of the foundational elements of the science of computing which gel well with the broader goals of 21st-century learning. These elements include algorithmic thinking, Boolean logic, functional abstraction, and data organization and management. Problem-solving, critical thinking, and information organization and management can be reinforced through delving into these aspects of computer science. The wonderful thing is that most of these concepts of computer science build on mathematics, and some of them on school-level mathematics.

The advantage of this early exposure to the fundamental elements of computer science is that it will give high school students who opt for courses in programming a more solid foundation of algorithmic thinking and data structures—the basic nuts and bolts of the mechanics of computer programming. Additionally, it will give students a better sense of their own interest in this field, supported by a better understanding of the science itself.

Here are a few ways to incorporate these concepts into the curriculum.

Algorithmic Thinking

Simply put, an algorithm is a well- defined set of steps required to complete a task. It is essential to understanding how and why information technology systems work as they do.

Detailed task breakdown is an important aspect of algorithmic thinking. In my robotics workshops, I usually devote a session or two to algorithmic thinking before I introduce students to programming. One fun exercise involves writing a set of detailed steps in plain English to guide a blindfolded student partner to perform a certain task. I often weave ideas of exception handling, iterations, and conditional actions into this exercise. Writing “pseudo code” in this manner also helps expose students to an essential skill that programmers often employ when they embark on a new program that requires them to think through the algorithm before they start to code the program.

Fortunately, we have access to programming environments that make it easy for teachers to drive these ideas home. For example, Alice (www.alice.org) is an excellent tool to support the development of algorithmic thinking, as is Scratch from MIT Media Lab (scratch.mit.edu). The visual feedback that students get from Alice and Scratch allows them to relate the program to the action they see on the screen and helps them refine their programs, an essential part of problem solving and programming. Earlier environments such as LOGO also helped achieve those goals in addition to allowing children to easily experiment with ideas of repetition, functions and subroutines, parameter passing, and even recursion.

Algorithmic thinking helps students make that step from problem to program. This involves being able to define and state a problem clearly; break the problem into smaller, more manageable subproblems; and describe the solution in a well-defined set of steps. . This is an important skill that students can transfer to problem-solving situations in other subjects too.

Boolean Logic for Critical Thinking

Boolean logic (or Boolean algebra) is a form of symbolic logic that is the basis of the arithmetic of computers. George Boole’s pioneering work in this field was published in the book An Investigation of the Laws of Thought, which describes how the logic of human thought can be reduced to a few simple, general, logical “operations” (much like the basic operations of mathematics).

Students can be introduced to the idea of logic in language arts or mathematics. Premises, conditional sentences, denials, and drawing inferences from sets of everyday sentences can form a soft introduction to the idea of logic even before introducing symbols and operations. Here is an example:

If the Giants beat the Dodgers, then the Giants win the pennant.
If he is out, then the Giants beat the Dodgers.
He is out.

What is the conclusion?

The beauty of Boolean logic lies in the simplicity of its operations: and, or, and not. When I was first exposed to the ideas of symbolic logic, I remember thinking that this was a mighty useful way for people of any age to learn how to think and argue logically as well as to find fallacies not only in political arguments but also in day-to-day arguments with parents, siblings, friends, and peers. This could certainly be one way to teach children to think critically and analytically.

Data Structures and Databases

Data structures go hand in hand with algorithms as an essential aspect of programming. Simply put, data is the stuff that is manipulated or worked on by operations and expressions in a program. To enable this process of manipulation, computer scientists organize this data in structures known as arrays, lists, trees, tables, stacks, queues and “heaps.” A database, similarly, is an organized collection of data, usually stored as records in tables.

Fortunately, we have access to spreadsheet software such as Microsoft Excel and database management software such as Microsoft Access that could be used to introduce students to the fundamentals of data structures for organization and management. Free or low-cost alternatives of such software are also available.

Spreadsheets can teach students how to organize data in simple, intuitive ways for easy access and retrieval. Children should be encouraged to use spreadsheets often and for a variety of data-organization tasks. For example, students could list and organize websites they visit for a school project or while researching a topic. Have students add keywords or tags to another column in the spreadsheet. They can organize the website data in separate worksheets for different units in a subject so that the organization helps delineate data that doesn’t necessarily belong together while still keeping related materials together. Spreadsheets can also be used for storing and organizing data for planning field trips or events, or for data collected in science or social studies projects. Google Spreadsheets allow several students to work on the same spreadsheet.

Teachers should also use spreadsheets to introduce students to the idea of sorting and ordering data. When does it make sense to sort or order data, and when is unordered data just as useable? Will sorting help future storage and retrieval? If so, how should the data be sorted? Such questions will get students thinking about the basics of organizing data in ways that make manipulation easy.

Students in middle school who have been exposed to spreadsheets could graduate to databases with a database management tool like Microsoft Access. Through the process of database design, students learn to analyze the information they are working with and identify the underlying dimensions of the content to organize it for meaningful search and retrieval. They learn to identify relationships between different types of data. Through the act of simple database querying, students can bring to bear their knowledge of Boolean logic and constructs such as and, or, and not while getting a sense of how the process of Internet search is conducted.

Teachers can get their students to engage in simple projects with clearly defined goals. A database that helps retrieve children’s books in the library by genre is one example. Such a project would require students to analyze the nature or elements of the data to be organized, design the database, populate the tables with data, and, finally, formulate and run simple queries. Database design also helps students build analytical, critical-thinking, and problem-solving skills.

At a time when we all grapple with a surfeit of data and information, being able to classify and organize it for sense-making as well as easy and intuitive access and retrieval is certainly a skill that children of this Information Age should develop early in school.

All three skills and concepts described above—algorithmic thinking, Boolean logic, and data structures— could be easily integrated into the elementary and middle school math, language arts, social studies, science, and technology curriculum, and would work well to expose students to a few basic ideas of the “science of computing.”
Shuchi Grover is an educational technologist with graduate degrees in computer science and education. An alumnus of Harvard University, she is currently pursuing a PhD in the Learning Sciences and Technology Design Program at Stanford University.

Reprinted with permission from Learning & Leading with Technology, November 2009, Vol. 37 No. 3; Copyright 2009, ISTE (International Society for Technology in Education).iste@iste.org, www.iste.org. All rights reserved.


Kids programming environments mentioned in the article:

Friday, July 25, 2008

Randy Pausch Lives on in Alice

[Update: I blogged about this originally on April 10th, 2008, but wanted to promote this to the top of the heap today as Randy Pausch passed away a few hours ago.

Here are a couple of great lines (lessons?) from his famous 'last lecture':

Experience is what you get when you didn't get what you wanted.

The brick walls are there to stop the people who don't want it badly enough. They are there to stop the other people.

RIP Randy Pausch...]

-------------------------------Original Post (from April 10, 2008) ---------------------

Or I should say "Randy Pausch will live on in Alice".

55 minutes or so into his now famous "last lecture" (more on that lecture later), Randy Pausch (47-year old terminally ill star professor of Virtual Reality at Carnegie Mellon) states
"To the extent that someone can live on in something, I will live on in Alice."


Well a post on Alice belongs in this blog, since so many posts have been devoted to talking about programming environments that help kids be creators rather than consumers of cool stuff like games, and digital stories and 3D worlds in cyberspace. These environments make it easy for kids to program i.e. make possible what is inherently pretty tough to do. In the process, they also teach kids to problem-solve and learn concepts of computer science like algorithmic ways of thinking and ideas like "messaging" and "objects" and "behaviours" or as Pausch calls it - the classic "head fake" - where you learn stuff without realizing that you're learning stuff (a great way to teach kids stuff that they think is too hard or beyond their reach).

So, what is Alice?
"Alice is an innovative 3D programming environment designed with middle and high schoolers in mind, that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience."
There's a wealth of material on the website on how Alice can be used to teach computer science to Middle and High School kids through creating story-telling and 3D-gaming environments (with characters from the popular PC game 'Sims').

Randy Pausch says of Alice "To think that millions of kids are having so much fun learning something that is so hard (programming)...that's pretty cool ... that's a legacy I can live with".

Of the lecture here's all I will say, it's a must-see for parents, teachers and children (old enough to internalize the import of his lessons on life and living), delivered with the clarity of thought and passion that only comes from knowing that you have but a few months to live, and by a man who has obviously accomplished plenty, lived a rich life, and had a lot of FUN doing all the things he's done. Here it is....

Saturday, October 20, 2007

Itching to Scratch!

It's everywhere around me these days - every elementary and middle schooler at Aditi, where I spend a day every week, is itching (pun most certainly intended) to create a fun project on Scratch - the exciting new programming environment that has emerged from MIT Media Lab (and can be downloaded for free). I have blogged about Scratch here before, and of course am a huge fan of the tool myself, so it's great to see the current buzz on Scratch these days.

I had the pleasure of watching some grade 4 students yesterday proudly present their "Stories of Invertebrates" created in Scratch as part of a Science unit. I offered them some useful suggestions to help them make their stories even better, and also suggested to the teacher to create a class account on the Scratch community website and upload those wonderful creations there. The kids are excited at the thought of uploading their projects - a great incentive to polish up their stories and add titles and credits (one of the suggestions I made to them).

My 11-year old son just finished creating a quiz in Scratch (for 1st-3rd graders) on an Indian Panchatantra Classic (which he has also made into a movie using iMovie, to be shown to the kids before the quiz) in honor of the upcoming International School Library Day that will be celebrated at his school on Monday, Oct. 22.

I recently discovered a community of "Scratchers" on Facebook as well, discussing new Scratch ideas and sharing notes on how to engage kids with this new technology tool that has such tremendous potential in any learning context.

I have had the pleasure of knowing and meeting many of the people at the Media Lab who are working on this project. The great news for us educators in India is that this environment, which currently supports some European languages in addition to English, will soon be available in Indian languages as well. I have actually been helping to build and test a beta Hindi language Scratch environment. It's such a kick!

Anyway, back to BLC07 (see previous post) - I was surfing YouTube and found a sweet little movie uploaded by Ewan Macintosh, from the Scratch preconference workshop at the MIT Media Lab during the Building Learning Communities conference in July this year.

So here's Scratch and Playing a "Banana Phone" for your viewing pleasure...

Thursday, July 19, 2007

The Lifelong Kindergartner

I have, on several occasions over the last few years, interacted with Mitch Resnick of the Lifelong Kindergarten group at MIT Media Lab. I finally had the opportunity of seeing him in his element on a larger stage (literally) at the November Learning conference where he delivered the keynote address this morning. The audience loved his demos of the PICO cricket kit and Scratch. His enthusiasm is/was catchy. His group is christened "Lifelong Kindergarten" at MIT Media Lab - and I don't think there can be a better proponent than Mitch of the "spirit of kindergarten" - learning through imagining, creating, playing, sharing - that his group is attempting to bring to learners of all ages (5-99) through their creations and products.

Mitch shared the philosophy of learning that drives the work of the Lifelong Kindergarten group - a philosophy that is so evident in the Mindstorms kits, the PICO Cricket kits, and now Scratch as well.

As Alan November remarked at the closing session of Day2 - this framework of learning could well drive all teaching across all grades in schools. An idea well worth mulling over...The devil, as always, will be in the implementation, I suppose!

Tuesday, May 29, 2007

Scratch officially released by MIT Media Lab

[Also posted on educatorslog.in]

You may recall my earlier post here - Children, Computers and Powerful Ideas about kids and programming. I'd mentioned Scratch - a great programming environment for kids of all ages to get creative with computers that was due to be released by MIT Media Lab. Well it's here! Fun, easy, colorful, wysiwyg, lots of features, great online community for sharing your projects.

Check out this MIT press release as well as links to Mitch Resnick's videos about the product that are linked from the site and go ahead and download this free, fantastic product...

---------------------Mailer from Mitch Resnick announcing Scratch-------------------------

New software from Lifelong Kindergarten Group at the MIT Media Lab

As you may know, our research group at the MIT Media Lab has been
working for several years on a new programming language, called
Scratch, that enables kids to create their own interactive stories,
games, music, and animations.

This week, we are officially releasing Scratch and launching the
Scratch website (http://scratch.mit.edu), where people can share
their Scratch creations with one another.

Scratch builds on our group's previous work that led to the LEGO
MINDSTORMS and PicoCricket robotics kits. Just as the MINDSTORMS and
PicoCricket kits allow kids to program and control physical
creations, Scratch lets them program and control media-rich creations
on the screen. As kids create and share Scratch projects, they learn
important mathematical and computational ideas, while also gaining a
deeper understanding of the process of design.

I hope you'll go to the Scratch website at http://scratch.mit.edu,
where you can download Scratch software and share projects created
with Scratch.

I look forward to hearing about your experiences with Scratch. If you
have any questions or suggestions, please feel free to contact me.

Mitch Resnick
Professor of Learning Research
Lifelong Kindergarten group
MIT Media Lab

Friday, August 25, 2006

"Children, Computers and Powerful Ideas"

My last post about the PICO Cricket kit and the LEGO Mindstorms brought to the fore thoughts on kids and programming that I have dwelt on ever so often...and the book that started it all (and purportedly inspired many of the early adopters of computers in classrooms as well as legions at the Media Lab in the Lifelong Kindergarten group whose research gave birth to the LEGO Mindstorms and now the PICO Cricket).

It's been over a quarter of a century since 'Mindstorms' (Seymour Papert's seminal book on kids and computers) took the education world by storm. The book was less about teaching with/about/from computers (the topical tensions of technology integration in schools) as it was about allowing kids to be creative through computers. 26 years on, and we rarely see kids in schools using computers in the way Papert envisioned - children programming computers and acquiring "a sense of mastery over a piece of the most modern and powerful technology" and through this endeavor establishing "intimate contact with some of the deepest ideas from science, from mathematics, and from the art of intellectual model building." Is it because Papert's argument was not compelling enough or is the jury still out on the educational benefits of such an endeavor? Or is it because teachers (the vast majority of them anyway), dare not stray into the realm of "geeks" (the popular (mis)perception of people who can program) - in the belief that such activity is way too "hi-tech" for them. I tend to think that it is the latter.

Fortunately for us all, there are some who have not given up on this powerful idea. The simple easy-to-use LOGO programming environment (that Papert and his colleagues created at the MIT Media Lab) is still alive and kicking, and available through various sources. Microsoft's Kids Programming Language (KPL), while not as easy as LOGO, seems promising. Squeak based on Smalltalk has been around for a while, and Scratch, slated to be Media Lab's latest gift to kids and educators (who care to share Papert's view) is a WYSIWYG, iconic LOGO-like programming environment.

With no apparent dearth of kids programming environments and certainly no shortage of computers (what with the $100 laptop soon to become a reality in the developing world), the need of the hour is to get teachers to start playing around in these easy-to-use, fun programming environments, so that they can get over their irrational fear of communicating with computers, and start seeing the thrilling possibilities of these powerful learning tools in their classrooms.

Wednesday, August 02, 2006

Chirp, Chirp! Here come the crickets...

The latest offering to emerge from research at the Lifelong Kindergarten group at MIT Media Lab, has once again got proponents of “hands-on”, creative learning excited in eager anticipation. The PICO Cricket kit, due to be released in the coming weeks presents some thrilling possibilities for informal learning spaces. As someone who volunteered for the workshops at MIT Museum in 2003 during the ‘Playful Invention & Exploration’ (PIE) research project, I have a personal connection as well with this product.


Sidhanth at a PIE Workshop
PIE Workshops at the MIT Museum - Pictures of my (then) 6-year old son at the 'e-Insect Invasion' workshop in April 2003


Simply put, PicoCricket is “a LEGO Mindstorms Robotics Kit meets a Klutz Craft Kit” i.e. LEGO pieces + ‘Electronic Thingees’ + Craft materials, where ‘Electronic Thingees’ = a microcomputer (the legendary MIT Media Lab “cricket” encased in a plastic body, much like the LEGO RCX brick), LEDs, sensors & motors. The colorful craft materials range from foam balls to pipe cleaners to straws, beads and buttons. [In the hands of a resourceful, creative individual, the kit could be “enhanced” by any number of “craft materials” from all around us - there is no dearth of plastic and metal knick-knacks that could be recycled to find a new home - and use.]

What differentiates this product from the Mindstorms, is, of course, the emphasis on creativity and craft, which as I see, will serve to bridge the technology gender divide (I speak from first-hand experience – boys have outnumbered girls by far in the after-school Robotics Club I have run for high-schoolers for the past 3 years). It is not only the inclusion of craft materials that sets this apart from the Mindstorms, but also the exclusion of the vast numbers of wheels, axles, tires, treads and hubs, that account for a large percentage of the Mindstorms kit. Kids take one look at the Mindstorms kit and “roving bots on wheels” is probably the first "robot" idea that strikes them. One look at the Crickets kit and kids could think of a zillion different exciting, colorful artifacts. "Arts & Crafts for the Digital Age", is how NYT has described it.

At $250, this kit seems quite pricey (more so for the Indian market), especially given that the LEGO Mindstorms NXT seems to have a lot more (in terms of sheer size of the kit) for the same price; but that has not deterred critics from giving this product a thumbs-up. (I queried Mitch Resnick at the Media Lab about this when he showed me the Cricket kit this past spring; he thinks that bulk production - driven by demand, will hopefully bring down the price some time in the future).

I, for one, cannot wait to get my hands on one of these ...