Showing posts with label MIT. Show all posts
Showing posts with label MIT. Show all posts

Friday, September 14, 2012

Open source education software unveiled by Google

Online education startups such as the Khan Academy, along with new efforts by MIT, Stanford, and Harvard have helped spur interest in and add legitimacy to the notion of remote learning. Now Google is lending its brainpower to the rapidly growing area by releasing a tool called Course Builder, open source software designed to let anyone create online education courses.


The Course Builder project came by way of another program Google ran earlier this year called Power Searching With Google. The Massive Open Online Course (MOOC), which attracted approximately 155,000 students from 196 countries, allowed Google to marry some of the practices now common to online instruction with the company's robust array of collaboration and communication tools. A new Power Searching session begins in two weeks.

According to the introductory video (above), presented by Peter Norvig, director of Google Research, usage of the software won't require high-level programming skill, and should be accessible to anyone with the ability to build and maintain their own website.

"The Course Builder open source project is an experimental early step for us in the world of online education," Norvig said. "It is a snapshot of an approach we found useful and an indication of our future direction. We hope to continue development along these lines, but we wanted to make this limited code base available now, to see what early adopters will do with it, and to explore the future of learning technology."
In addition to offering a new platform for empowering educators, the effort is also a unique opportunity to connect with Google's research team. Over the course of the next two weeks, Google plans to directly interact with Course Builder users via Google Hangouts. The Course Builder support site is already live and the free software download has already received its first update. For those unsure about their level of skill in relation to use of the software, Google's Course Builder Checklist offers a reassuring primer on how to get started and exactly what to expect.

Saturday, September 8, 2012

Teach Your Kids Basic Programming With Super Scratch Programming Adventure


If you think you might have a future programmer on your hands, it’s time to introduce your kid to Scratch. It’s a programming language that teaches the concepts of programming to young kids while making it easy for them to create animations, games, and more, then share them all with friends online. A new book from No Starch Press, Super Scratch Programming Adventure!: Learn to Program By Making Cool Games makes it even easier to get started.



Scratch was created at MIT Media Lab’s Lifelong Kindergarten Group. It’s targeted at ages eight and up, although my six-year-old finds it to be a lot of fun. If your child can read, understand numbers, and control a mouse, he can probably get started with Scratch, particularly if he’s used creative software like drawing programs. Younger children just may need a little more help than the older ones. To create programs in Scratch, you simply drag and drop colored puzzle-piece blocks of code written in simple language, snap them together, then change the variables:

Super Scratch Programming Adventure! helps your budding developer learn to use Scratch with a comic book story. Each section begins with a continuing piece of a story that ends by giving the reader a problem to solve with Scratch. Along the way, kids learn about software-building terms like “sprite,” “loop,” and “variable.” At the end of the book, they are rewarded with the fruits of their own creation, a game they can play knowing they made it themselves.

The best part about using Scratch is the wide range of skills that are involved, from the left-brain creativity to the right-brain reasoning. It also encourages sharing, collaborating, and learning from others–all additional non-programming skills useful in the programmer’s world.

Super Scratch Programming Adventure! was written by the LEAD Project (Learning through Engineering, Art and Design), which began in 2005 as a collaboration among The Hong Kong Federation of Youth Groups, the MIT Media Lab, and The Chinese University of Hong Kong.

Saturday, August 4, 2012

New Language For Image Processing is Halide


Halide is a new open source language designed specifically for image processing and computational photography. It not only makes it easy to implement photo algorithms, it also makes them run fast by semi-automatic parallelization.



Algorithms that work with images are ideal for parallel implementation because they usually work with small isolated blocks of data that means the task can be parallelized without worry about interactions. The only problem is that even converting something that is ripe for parallelization from serial code to something that runs on today's confusing architecture of CPU cores and GPUs is difficult.

Halide is a new functional programming language from MIT, (with help from Stanford and Adobe) that allows you to specify image processing algorithms, mostly block convolution methods, more easily and without having to worry about how the algorithm is implemented. A second section of the program then provides a general description of how the algorithm should be parallelized. It not only describes how the algorithm should be split up among computational elements but how to organize the data to keep the processing pipelines running at maximum efficiency by avoiding restarts.

The easiest way to understand the general idea is to see a simple example (taken from the paper):
Func halide_blur(Func in) f
 Func tmp, blurred;
  Var x, y, xi, yi;
  // The algorithm
  tmp(x, y) = (in(x-1, y) +
          in(x, y) + in(x+1, y))/3;
  blurred(x, y) = (tmp(x, y-1) +
          tmp(x, y) + tmp(x, y+1))/3;
  // The schedule
  blurred.tile(x, y, xi, yi, 256, 32)
        .vectorize(xi, 8).parallel(y);
  tmp.chunk(x).vectorize(x, 8);
 return blurred;
}

The first part of the program defines a simple 3x3 blur filter split into a blur horizontal followed by a blur vertical step. The last part of the program, the schedule specifies how the algorithm can be treated in a parallel implementation. The Schuyler is machine specific and has to be changed to get the best performance out of a particular processor pipeline.

Friday, June 1, 2012

Now Kids can hack with Google Blockly


Google has released a completely visual programming language that lets you build software without typing a single character.

Now available on Google Code — the company’s site for hosting open source software — the new language is called Google Blockly, and it’s reminiscent of Scratch, a platform developed at MIT that seeks to turn even young children into programmers.

Like Scratch, Blockly lets you build applications by piecing together small graphical objects in much the same way you’d piece together Legos. Each visual object is also a code object — a variable or a counter or an “if-then” statement or the like — and as you piece them to together, you create simple functions. And as you piece the functions together, you create entire applications — say, a game where you guide a tiny figurine through a maze.

“Users can drag blocks together to build an application,” reads the description on Google’s site. “No typing required.”

Neil Fraser, one of the Googlers behind the project, wasn’t immediately available for comment.

The project is part of a much larger effort to bring programming skills to, well, everyone. In the summer of 2010, Google announced a similar platform known as App Inventor, and this year, an outfit called Codecademy has made headlines as it seeks educate a whole new world of programmers over the web. New York Mayor Michael Bloomberg is among those using the service — or at least that’s what he says.

App Inventor was the brainchild of the MIT computer science and engineering professor Hal Abelson, who was on sabbatical at Google at the time. The platform was actually an outgrowth of Scratch, which Abelson had worked on at MIT. It was billed as a tool that would allow even the greenest of techies to build applications for the company’s Android mobile operating system, but its life at Google was short. When Abelson returned to MIT the following summer, he essentially took the platform with him.

At the University of California at Berkeley, researchers are offering their own port of Scratch, known as Snap.

It’s unclear how Blockly relates to Scratch or App Inventor. But with the Google name behind it, it had already sparked at least a temporary flurry of interest. at Hacker News — the online hangout for Silicon Valley developers — a post about the platform has received over 100 comments over the past day, and some include programs built with the platform.

From Google’s site, you can translate Blockly applications into existing languages, including Javascript; Dart, Google new take on Javascript, and Python. And there’s a “Hebrew and Arabic” programming mode where you piece together the objects from right to left, rather than left to right.

So, Google Blocky is a little like a Pixar movie. It’s for kids. But it’s also for adults. And it had a nice sense of humor.