"If you have any experience with Java, this is easy enough to understand. But if you’ve never seen a piece of code before, it may as well be Mandarin. Nonetheless, the student is taught that
messageis a variable of type string that holds “Hello world!” and
System.out.println(message)prints the value of the variable to the console. The student is told, “Don’t worry about the ‘public class HelloWorld’ or ‘public static void main’ because you will learn more about them later.” They’re expected to take the instructor’s word for it, and continue to use these statements without understanding what they do or why they are necessary. But, hey, they know what a variable is."
Just because I identified with the feeling does not mean I agree or disagree with the premise of this article, but it has me thinking and asking questions....
First of all... I remember wanting to understand every bit of syntax in our first Java programming assignments.
Yes... I had enough prior knowledge to understand the Variable "Message". That felt familiar, but I was asking "what does all that other stuff mean? What is void? Why static?" It took me a while to let go of the NEED TO KNOW and accept that it was okay to move on without knowing.
I did have one other point of reference that allowed me to come to terms with moving on in this fuzzy state of mind. Many many years ago, I entered first grade only knowing 6 words of English. Our French Canadian parents had insisted that we only speak French at home. My mom had taught me "Yes" "No" "Please" "Thank You" "Salt" and "Pepper". I guess she wanted me to be polite and have seasoned food. ;-) I remember the 'blah blah blah" all around me as my English speaking classmates were speaking in a language that I did not understand. What I don't remember is the space in between that time and the time where I was comfortable speaking English on the playground. It obviously happened without enough trauma to create a lasting memory. So I accepted being in a fuzzy state of mind about many of the code snippets, and carried on.
As I think of Dawson's premise, I also am thinking of a tweetfrom @mraspinall that also came across my feed this morning
Teaching kids to code means to make them think and solve problems through risk taking and trial & error. #FCLedu pic.twitter.com/FlJzLM6dAw— Brian Aspinall (@mraspinall) September 17, 2016
My motivation for enrolling in Marlboro's Java programming class was much different than many of the other students in this Java class; they were mostly working in IT. I was a high school teacher who wanted to better support students who were working in a project based learning environment. I was not teaching a coding class, but coding was quickly finding its way into many of our projects. This was similar to the scenario Dawson describes at the beginning of his blog post
"I learned programming through a relatively unorthodox method. I wanted to make a video game for my senior design project in high school.."
Dawson continues to describe the learning environment that Brian Aspall aspires to in his tweet "Teaching kids to code means to make them think and solve problems through risk taking and trial & error"
"Despite the frustration, it turns out that this was actually the best way to learn how to write code. The unwavering sense that I was totally lost motivated my investigative problem-solving and prepared me for the daily struggle that comes with programming"
This set me off to thinking about a new alliance in Vermont with aspirations to provide teachers with professional development and inquiry-based computer science learning opportunities to successfully integrate computer science in the classroom.
This is exactly what I NEEDED back 18 years ago when I was enrolled in Marlboro's Java programming class. And a fun fact is that one of the primary players in getting this Vermont Computer Science Alliance with Code.org, University of Vermont, Vermont Agency of Education, and Vermont Virtual Learning Cooperative is one of my classmates in that original Java programming class - Jennifer Frisbush @MsFribush Unlike myself, Jennifer is a computer science teacher, while my focus is more on Project Based Learning - which of often leads to motivation in teachers and students to learn just enough code to get their project off the ground.
I will be actively watching the Vermont Computer Science Alliance project as it gets off the ground via Twitter @vermontcsa and hope that we can engage teachers who see the value of creating a pipeline of teachers and educators who have the foundational skills for solving complex problems in our world. I think it's the right time for an initiative like this to be well supported. Supporting innovative education initiatives like this is the first step in creating the pipeline that Brian Dowling @be_d describes in his recent article about Moonshots and Tough Tech on @xconomy
“It’s pretty sad to me that there’s a decent chance that whole company wouldn’t exist without Elon Musk’s largesse,” he says. “That shouldn’t be a dice roll that SpaceX exists or not. There should be a healthy pipeline producing SpaceX’s if it’s the right time to have a company like that.
I think it is definitely 'the right time" for Vermont Computer Science Alliance and for us to extend beyond an Hour of Code in our school! I'm excited to seeing more and more #vted schools offering support to this concept so that it is not a "dice roll" whether or not our students get a chance to learn to code.