Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Thursday, March 20, 2014

Teaching Programming Languages in Education

Last year, the UK announced the redesign of their educational curriculum that requires all students to learn computer programming in school from the ages of five through sixteen. Since then, there has been a great surge across the nation to incorporate and highlight programming courses in educational organizations. Historically, programming courses have been in existence for some time now, mostly on the secondary level, but were always thought to be elective courses for a select few whose interests were in high tech careers where programming was an essential element. No need to learn how to code unless your career target was that of a programmer in the back of the office, isolated from the crowd! 

This concept has changed dramatically with the understanding that students now need problem solving, critical thinking, communication, collaboration, creativity and analytical skills to be effective members of a global society. The ISTE standards clearly indicate that students should acquire the "4Cs" (communication, critical thinking, creativity, communication/collaboration) to perform better in all disciplines. Technology has changed the way in which we teach and learn, and having these skills allows students to become more engaged in a student-centered, differentiated environment where learning is more personal and meaningful to the world around them. Here are some favorite apps/sites that promote programming skills at each level:

Elementary Programming Apps and Resources:

Daisy the Dinosaur (free)
Move the Turtle (iPhone/iPad, $2.99)
Hopscotch (iPad, free)
Scratch (web, free)
Stencyl (Windows, MAC, Linux, free)
Dynamic ART ($2.99)
Kodable (free)
A.L.E.X. (free)

Middle School/High School Resources

App Inventor: (web, free) Hosted by MIT, App Inventor is similar to Scratch with drag and drop coding blocks.

Alice:
(Windows, MAC, Linux, free) Carnegie Melon's desktop app uses a 3D programming environment to teach programming. Needs Java runtime to run, but great for kids to see the code behind the scenes.


Pluralsight: (web, free) Online training site that offers three video courses for kids. Videos include training in C#, Visual Basic, Scratch, and App Inventor.

Codeacademy and Khan Academy: (web, free) Interactive online tools to learn coding. Codeacademy teaches web fundamentals, jQuery, JavaScript, Python, Ruby, PHP and more. Khan Acadmey's coding uses JavaScript.


Hour of Code
Khan Academy created a site for teaching the "Hour of Code" in the classroom

Saturday, March 2, 2013

How Important is Programming in the 21st Century?

What Most Schools Don't Teach

I recently viewed this video on YouTube and it reminded me of the earlier days using technology in education and how important it was to learn coding and programming skills. The benefits of "coding" enhanced critical thinking and logical thinking skills, yet those skills only seemed to be a benefit for the students interested in computers. With the movement towards making software more user-friendly to end users, the idea of programming and coding was viewed as being unnecessary and a waste of time. Why develop programs when they already exist for you? With the introduction of ready-made packages that do the programming for you behind the scenes, end users could now move on to bigger and better things. A good example of this idea is evident in the various web page programs currently offered. Why sit and code with HTML when you can just create a web page in the "design" view using a WYSIWYG editor? 


When I taught my web design class several years ago, I would always start the school year with having students learn HTML code. They initially found it a bit tedious since they realized that what they coded had to be exact for their desired results. It was challenging, offered them critical thinking, problem solving, and troubleshooting skills. Later in the year, I would introduce them to Dreamweaver and to my surprise, found that most students would revert back to the HTML code to manipulate information and format on the page. 

In essence, Dreamweaver was easier for them, but didn't offer the control and flexibility of having them create the page on their own. They developed the skills to think beyond their task, and as a result were successful in producing a more innovative product. Learning how to code a page had brought my students to another level and the outcome was a true benefit to their overall learning experience. I was thrilled to view this video and hope it will spark interest for educators to take another look at how programming is used in a technology-related curriculum. Creating code is an important element of learning to meet the needs of 21st Century and as Steve Jobs stated, "it teaches you how to think".