A School in the Cloud: Self Organized Learning Environments

I watched Sugata Mitra’s TED Prize winning talk which is both about a school in the cloud and about Self Organized Learning Environments (SOLE). It made me think of so many projects I have worked on over the years, like teaching or learning on p2pu and other open networks. Schools in the cloud.

In his talk, he asks us to help me design the School in the Cloud, a learning lab in India, where children can explore and learn from each other using resources and mentoring from the cloud. This is what he calls a Self Organized Learning Environments (SOLE).





He is seeking educational partners to help design and build the physical building that will house his School in the Cloud, where students will try out a range of cloud-based, scalable approaches to self-directed learning.

TED offers a SOLE toolkit that might help you contribute to a global network of educators and retired teachers who can support and engage the children through the web.

This not about credits and degree programs. Like the original idea of MOOCs, it is about engaging communities, parents, schools and afterschool programs worldwide, to transform the way kids learn.

This requires facilitators and the SOLE model relies on educators to model curiosity, prompt questions, and support the learners through the process.

Where are the typical incentives that exist for teachers? A job, a salary, personal feedback and face-to-face relationships with students? They don't exist, at least not in the form you knew in school.

Can you deal with that?


Should Kids Be Taught To Write Code?

I reposted an article on my Tech+Learn+Tech scoop.it site asking if we should be teaching kids to write code. The few comments it received are split on the answer and I imagine that is true for the wider audience of educators.

Some people (non-coders especially) view writing code for web pages or for applications as incredibly dull and boring. On the other side are those that see it as a way to be creative.

Personally, I don't support teaching coding for the purpose of training young coders to some day do things like write iPhone apps. As much as I hated taking math classes in high school, I do recognize that there was some value in the practice because of the logic, precision and critical thinking that it required. I understand the idea of a "beautiful equation" but I never found any beauty in them.

I took COBOL and FORTRAN as an undergrad in that previous century. I had one of the first computers in my classroom in 1979 and I learned BASIC and taught it a bit. Some people thought we would need to learn to write code, but I always believed that other people would write the code (in education) and we would be the users. I can write code for web pages, but I'm falling behind in that area and don't much care to keep up.

But, as the article points out, teaching coding is not a new pedagogical idea. The original article gives 15 reasons why kids need to learn how to code. I picked some of the accompanying quotes to get your brain started. You'll notice that those quoted are clearly on the side of answering Yes to this post's questioning title.

“I think everybody in this country should learn how to program a computer because it teaches you how to think.” — STEVE JOBS, THE LOST INTERVIEW

“If you can program a computer, you can achieve your dreams. A computer doesn’t care about your family background, your gender, just that you know how to code.”
Dick Costolo – CEO, Twitter“I believe technology should give us superpowers. Everyone should have the opportunity to learn to think, analyze, and create with technology.” Hilary Mason – Chief Scientist, Bitly

“Coding can unlock creativity and open doors for an entire generation of American students. We need more coders — not just in the tech industry, but in every industry.”
Mark Pincus – CEO and Founder, Zynga

“Code has become the 4th literacy. Everyone needs to know how our digital world works, not just engineers.”
Mark Surman – Executive Director, The Mozilla Foundation

“To prepare humanity for the next 100 years, we need more of our children to learn computer programming skills, regardless of their future profession. Along with reading and writing, the ability to program is going to define what an educated person is.”
Salman Khan – Founder, Khan Academy“Programming allows you to think about thinking, and while debugging you learn learning.”   Nicholas Negroponte – Founder and Chairman Emeritus of MIT’s Media Lab

“Learning to code makes kids feel empowered, creative, and confident. If we want our young women to retain these traits into adulthood, a great option is to expose them to computer programming in their youth.”
Susan Wojcicki – Senior Vice President, Google



Computational Thinking

I stumbled upon a Google site to promote computational thinking in K-12 classrooms.  http://www.google.com/edu/computational-thinking/

Computational thinking (which they abbreviate as CT, but I think of CT as critical thinking) involves a set of problem-solving skills and techniques that software engineers use. It makes sense from a Google perspective to approach things like an engineer, but I am not so sure that all things in education need to be approached that way. I always thought that Google's problem with doing social (see Orkut, Wave, Plus) was that it was designed by engineers rather than a mix of people with the emphasis on non-engineers.

Nevertheless, here are a few examples they give of techniques that their engineers use to write programs.

Decomposition: When we taste an unfamiliar dish and identify several ingredients based on the flavor, we are decomposing that dish into its individual ingredients.

Pattern Recognition: People look for patterns in stock prices to decide when to buy and sell.

Pattern Generalization and Abstraction: A daily planner uses abstraction to represent a week in terms of days and hours, helping us to organize our time.

Algorithm Design: When a chef writes a recipe for a dish, she is creating an algorithm that others can follow to replicate the dish.
That last item, Algorithm Design, is something we hear about frequently these days even though most of us have no idea what that measn other than "it has something to do wih math."  They define it as the ability to develop a step-by-step strategy for solving a problem. Algorithm design seems to include the other techniques: look at the decomposition of a problem and the identification of patterns that help to solve the problem. In computer science as well as in mathematics, algorithms are often written abstractly, utilizing variables in place of specific numbers. Look at the examples they provide:
- When a chef writes a recipe for a dish, she is creating an algorithm that others can follow to replicate the dish.
- When a coach creates a play in football, he is designing a set of algorithms for his players to follow during the game.
- In mathematics, when we calculate the percent change between two numbers, we follow an algorithm along the lines of:

If the original number is greater than the new number, use the following equation to calculate the percent change: percent decrease = 100*(original - new)/original.
If the new number is greater than the original number, use the following equation to calculate the percent change: percent increase = 100*(new - original)/original.
If neither is true, then the original and new numbers must equal each other and there is no percent change.
They lose me when they say that you can take it "a step further" and implement this algorithm in Python so that a computer calculates this for us:


original = float(input('Enter the original number: '))
new = float(input('Enter the new number: '))
if original > new:
percent_decrease = 100 (original - new) / original
print 'Percent decrease:', percent_decrease, '%'
elif new > original:
percent_increase = 100
(new - original) / original
print 'Percent increase:', percent_increase, '%'
else:
print 'There is no percent change.'


Of course, the "step further" is the key for an educator. Google says in its professional development section that this is intended for math teachers and on the web resources page it is all math, science and computer science. What I would be interested in seeing are some applications in other areas.

The one site I could find was the Interactive Journalism Institute for Middle Schoolers which is a research project that introduces students to CT via the creation of online magazines. The computational thinking is via digital media, interactive graphics, animation, video and database design in a collaborative setting. It is designed to foster computational and writing skills and they also get to to share their online magazine with family, friends and teachers. This research project is led by three computer science and journalism faculty and a gender-equity specialist at The College of New Jersey.


Advance Your Search

I'm always a bit surprised when I see someone do a search online and be disappointed to get either too few results or, more likely, too many irrelevant results. Most search sites have an "advanced search" feature which often solves those issues and others.==On my Serendipity35 tech learning blog, I wrote about using Google for better search. That's useful for yourself and is also something anyone who teaches should make sure their students know and use.

I want to note here an example of a vendor search. Most of us use Amazon to find books and media, but far fewer people use their advanced search feature.==Start by going to the Advanced Search on Amazon. From there I could set up a search for books on "HTML5" published after "2011", and available for the Kindle and get only those results.




After doing my advanced search, I can even limit the search further from the list provided in the left column on the results page. If I wanted the really new publications, I could choose to see only the titles published in the last 30 days.

Amazon's advanced search also works for music, TV, movies, magazines and toys and games.