Have you ever wondered why some people sail through programming courses and others struggle?
That's something that's fascinated me over the years, but now I think I know why.
With the advent of MOOCs (Massive Open Online Courses) I was lucky enough to take a free online class in Programming Python taught by the affable Charles "Dr. Chuck" Severance of the University of Michigan. "This is great", I thought. "I'll be programming in no time". But I didn't finish the course. There was a lot going on my life at the time, but something didn't captivate me enough to pursue it doggedly as I had with 30+ other MOOCs. It wasn't Dr. Chuck -- he was simply awesome. But what was it?
Recently I took another programming course thinking it would be the same tried-and-true formula of talking through lines of code and explaining what is going on. But it wasn't the same. I was reminded of two words that have changed the world: "Think Different".
To some, MIT's Scratch program may seem like just a fun tool for the K-12 audience to build games with. But it's much more than that. Scratch Visual Programming language can provide the visually-minded with a way to understand programming that resonates harmoniously with their style of learning.
So join me as we explore together "A Tale of Two Personas" -- a journey into programming through the minds of two very different personality types.
Many people relate to the concept of "Learning styles" which puts forward the idea that we tend to learn best when the information is presented in a particular way. For example, a "visual learner" prefers to see information in pictures, diagrams, charts and Infographics, whereas a "verbal learner' likes hearing stories and reading books.
If we use this concept and apply it to the way our two personas might choose to learn programming, then we have some concrete ideas for you, based on how closely you identify with either the creative "designer" mindset or the more analytical "technical" mindset.
Daphne's Advice to Learn Programming
"If you're like me, you're predominantly a visual learner", says Daphne.
"And I found a wonderful MOOC offered by the University of Edinburgh on Coursera that matched my learning style exactly", she said.
Code Yourself! An Introduction to Programming uses MIT's Scratch Visual Programming language which is really easy to use, has a drag-and-drop interface to code using shapes instead of lines of text, and will have you grasping the principles in no time. Covering topics like algorithm design, user interaction, code reusability and generalization of solutions, you'll learn how to think like a programmer, a computer scientist, or a software engineer.
The big benefit of using Scratch for someone with a visual mindset like Daphne is the immediate graphical feedback of what you're programming. With just a few blocks dragged to the build area and connected together, some quite complex operations can be simulated quickly. Nested blocks allow for repeated operations through count-controlled or condition-controlled loops.
The delightfully enthusiastic lecturer Areti Manataki takes you through the course using a combination of animated graphic overlays and recorded screen video. Her visual presentation style will hold you spellbound.
Right out of the gate, you drag a few blocks together inside an infinite "forever" loop to control what a character "sprite" says depending on which image-pose, or "costume" is being displayed.
And you quickly move on to more complex conditional loops, such as this one, where the program prompts for your age and uses that value to drive what happens next. Notice how succinct the program is and how the various blocks are differentiated by color and shape. The "if-then-else" block encapsulates the controls within its shape and helps you visualize what will become a necessary habit in other languages -- indenting your code.
There are two other parts to this nice little program we are coding. Scratch makes it easy to store relevant code with the objects (called "sprites") that are being used. In this case, the butterfly object has the above code associated with it. Two different images (called "costumes") of the butterfly are alternated in an infinite loop to simulate flying.
Now for some cool multimedia integration using your laptop's microphone. There is a second image (costume) of the cake with candles blown out and we can program our code to prompt people to blow into the microphone to reveal this image -- giving the effect of blowing out the candles! The control block "senses" a loudness threshold via the microphone and directs the program accordingly. Cool!
And now for a musical interlude: introducing the note block. You can program notes from a variety of instruments -- 21 in total!
One of the exercises involved arranging blocks to play a tune and to synchronize movements of a cursor to highlight the words in a "Karaoke style".
And here's the finished program recorded from the Scratch output window.
There are many more powerful functions to drag, drop and interlock. We've only seen a small sample as a taster of why this is the best programming course for beginners who are visually-oriented with a 'designer' mindset like Daphne.
Would does Daphne love about this MOOC?
- The videos are short, punchy and fun
- It's pure drag-and-drop exhilaration
- The colored blocks are so intuitive
- No wading through thick manuals -- yippee!
Why not sign up today. It's free and fun!
Whether you have the visually-oriented "designer" mindset of Daphne, the technically-oriented "developer" mindset of Derek, or you're a combination of both types, there's a MOOC that's right for you.
You can learn to program!
Share your preference in the comments or join us in our Facebook Group.
We'd love to know if you like our Facebook Page.