Sunday, November 18, 2018

Memories of Learning to Code to support Project Based Learning

The following article came across my stream this morning while I was having coffee.  It brought back some vivid memories of a major milestone in my learning to code.    It was my first time trying to understand Object Oriented programming during my Masters Program at Marlboro College.    I so remember the feeling described in this article by Dawson Eliason - "Programming is taught exactly the wrong way."

"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 message is 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

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,  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.

Thursday, November 1, 2018