Entries in Starter Languages (3)

Thursday
Jan312013

More beginning programmers try Python

We are big fans of the Python programming language and use it as a starting point for our students.  They try Python on their first day alongside Scratch!  We decided to use Python after extensive research and it looks like more people are coming to the same conclusion.  Python is the language whose popularity has grown the fastest over the last five-years according to the recently published Popularity of Programming Language index.  The PYPL index analyzes how often programming language tutorials are searched on Google.  Python came out on top over five years as well as being the second most popular in the US.  Check out the five-year graph!

Python has a readability that new programmers can “get” pretty quickly.  Here is a great example from a side-by-side comparison of Python & Java.  Which do you more easily understand?

Java
Public class HelloWorld
{
      public static void main (String[] args)
      {
               System.out.println(“Hello, world!”);
      }
}

 

Python
print(“Hello, world!”)

With Python we can also avoid unnecessarily confusing the students with Object Oriented Programming (OOP) concepts.  There is plenty of time for OOP later when we show them Java (in the wonderful Greenfoot environment).  But to start it is more important to see code that runs more logically top to bottom. Then we can add things like while loops and functions so they can see the code begin to jump around.  This way the students will focus on problems and solutions instead of architecture, as noted in the James Hague blog entry below. (Yes, we know Python is an object-oriented language but we can avoid the OO features and instead stay procedural.)

The bottom line is that we want our students to be able to change the code.  We want them to get their hands dirty, try things, and make mistakes.  There is a greater chance that they will enjoy programming while learning the material.  Looking at the code examples above, would you be comfortable changing any of the Java code?  We have nothing against Java and love Greenfoot.  We just don’t throw them in the deep end of the pool with Java until they have some hands-on time with Python to develop more confidence and experience.

Monday
May212012

Scratch Day celebration success.

We had a great turnout for Scratch Day 2012.  Thanks, everyone!  We ran out of chairs and excited students even took over the instructors table.  We celebrated Scratch's 5th birthday with Atlanta-style creativity.

We had visitors from all over Atlanta and even from Athens.  Several Scratchers showed off their work including projects created the very same day.  Two resourceful students made their very first project into a two-player game and presented their result while laughing and playing against each other.  It was a really fun can-do afternoon and no visitors left until the event was over and all cupcakes and fruit were finished.

Saturday was a great example of the fun and creation that we strive for every week at Start Code.  Come out and see what you can do in our programming labs.  You can learn not only Scratch, but Python, Alice, Java, and more.  No programming experience necessary!

See our Facebook page for more photos of the day.

Saturday
Feb182012

Time to start.


As the parent of a child who wants to learn computer programming, figuring out where to even start can be a daunting task.  I know because I went down that winding path.  The idea that would eventually become Start Code began with a simple question:

How are students learning programming in a post-Basic world?  

An article on Computerworld.com posed this question and it caught my attention on two levels.  First, I grew up and first learned how to program in the “Basic world” so I was curious how kids are starting today.  Second, as a father this jumped out as a potentially fun project to do with my son who is entering middle school.  After doing some digging, it turns out there are lots of ways for students to learn programming today but there is no common way to learn it.  Basic used to arrive pre-programmed on most computers somit was an easy choice but this is no longer the case.  Basic has split into many flavors including Quite Basic, Visual Basic Express, and Small Basic.  In addition to Basic, there are other potential starter languages including Alice, Python, Racket, Ruby, Scratch, Java, JavaScript, and some might even argue the venerable C and C++, just to name a few.  Read the comments section of the Computerworld article and you will find even more languages suggested for getting started.  Choice is good and it’s exciting that we now have access to all of these free development tools.  But the downside is that we are running into the modern dilemma of too many choices leading to confusion and indecision.

After doing some research on starter languages, I ultimately settled on two for the following reasons:

  1. The tool should be free.
  2. It should run on both PCs and Macs.
  3. It should have a vibrant online community.
  4. And finally, it should be fun to work with!

These reasons help dodge some potential hang-ups that a group of new programmers can run into.  First, a free tool lowers the cost of entry and anyone can try it with little investment up front.  Second, in the age of iPhones and iPads, being Windows-centric will simply not work in my opinion.  More people now have Macs at home than ever before.  I won’t get into an operating system flame-war here because I am comfortable and happy working in either environment.  It’s simply a fact and students should have the option of bringing either a Mac or PC to learn.  Third, an active online community means the language and tools can grow with the individual’s programming skills while also offering assistance if they get stuck.  Online tutorials and code samples also help immensely.  And lastly, the environment should be fun and forgiving on the individual.  Programming can be hard and unforgiving enough as it is.  Making early mistakes shouldn’t take hours of bug hunting or messing with complex configuration settings.

For the reasons above, we finally settled on starting students with a combination of Scratch and Python.  These two tools combined have the potential to be a great way to start coding.  Scratch teaches programming concepts with immediate feedback while also offering an online community of hundreds or perhaps thousands of shared projects.  And Python gets the student typing “real code” and used to seeing, reading, and thinking in code structures.  Python also prepares them for later curly-bracket programming languages with more complex syntax and concepts as they progress.

Did we choose wisely?  I'd like to think so.  I know that there are other options out there and other programmers could argue passionately for their beginning programming language of choice.  Let me know on our tumblr blog.  But ultimately the main goal is to make an informed decision and get the students started.  These two tools are merely the starting point.  Indecision or inaction is not an option because we have important work to do.  Our kids need guidance and encouragement to become the next tech generation and we at Start Code are excited to help them get there.