Colleges are seeing a growing number of non-majors choosing to try introductory programming and computer science courses. And the good news is that some of the students get excited by what they find and choose to continue on to a second course. Professor Ran Libeskind-Hadas of Harvey Mudd College on sabbatical at MIT writes about this trend in a blog post titled “Computer Science for Non-Majors”.
The professor points out that college students are recognizing two important facts. One is that “every well educated citizen should understand something about the computationally-pervasive world in which we live”. And the second is a point that we have been stressing: computing and programming skills are useful across all disciplines including the arts, sciences, and humanities.
The biggest challenge is the question of what should be taught to these students? The traditional method of teaching computer science will turn most of them off of the subject (I speak from experience in many of my undergraduate classes). Instead we must examine what will make the subject interesting and useful to them. Analyzing the efficiencies of various sort algorithms or network packet routing will put everyone to sleep, including many of the true CS-majors.
"Every well educated citizen should understand something about the computationally-pervasive world in which we live."
- Professor Ran Libeskind-Hadas of Harvey Mudd College on sabbatical at MIT
Professor Libeskind-Hadas proposes using these “ingredients” to make a course successful. And they sound awfully familiar to us at Start Code.
Demystify programming. Show that this isn’t magic and that most anyone can do it. A complex program is simply a set of smaller steps that are built on top of one another.
Use higher level programming languages without a lot of rules and detailed requirements so students can focus on logic and problem solving. It's not fun to search for a missing semi-colon or matching brace on your first day. Python is a wonderful starting language for this reason. Our middle and high-school students try Python on their first day and run their first Python program.
Allow students to make something they actually want to use. I know this might sound obvious but computer science has historically never been taught this way. At Start Code we specifically choose tools that give the students a chance to use their creativity on day one. Once the kids realize that they can change things and make what they want, look out!
Discuss big ideas in computing to spark interest in various aspects of the field. We never know what the students will ask and we enjoy where the conversations often go. We discuss networking and the internet, hardware, bitcoins, hacking, privacy, safe computing, and more.
We can say definitively that these three guidelines do work because we have been following them for two years and the results speak for themselves. Our elementary, middle, and high school students are excited and motivated to come back week after week. Some students have been attending our classes for well over a year and they will have a big advantage when they reach college and beyond. We are lucky to live in a time where we have a choice of introductory programming tools to teach classes this way.