#BOSC – A Learning to Code Continuum

6
#BOSC - A Learning to Code Continuum
Tweet about this on TwitterShare on FacebookPin on PinterestShare on LinkedInShare on Google+Share on TumblrEmail this to someoneShare on StumbleUponShare on RedditDigg this

As we continue to have conversations about coding in schools I routinely am asked where to start. I usually mention an app or two but I always question whether this is the right approach – many students already have a more natural understanding of coding than their teachers and I know nothing about someones’s skill level. I know nothing of someone’s experience. This makes it difficult to suggest a starting point when it comes to apps and entire groups of students. I hate to say “Let your entire class play LightBot for starters”. Where is the differentiation?

Starting day, I would like to share a new model I have created – #BOSC.

B – Bot Coding

Under Bot coding, teachers and students learn about block code. They run through games and tutorials to move objects from one point to another to complete a task. Levels are scripted, there is no open space, just a linked set of block code instructions to move a bot. A great place to model math concepts like estimating distance and moving across a grid.

O – Open Space Coding

In this category, coders are familiar with block code and understand how to link it. Using tools like ScratchJr., Hopscotch and Scratch coders can use block code to create games, stories and simulations. Possibilities are endless but coding modules are limited to the functions within the app itself.

S – Syntax Coding

Like Open Space Coding, users start with a blank slate and begin to think critically, solve problems and code applications using syntax. Coders at this level are learning language. The “Hello World” program you would learn in your first CS class. In a nutshell, similar to above but writing syntax instead of block yielding many more opportunities for creativity.

C – Collaborative Coding

Coders in this level have a firm understanding of syntax, computational thinking and logical reasoning. Coders at this level use existing frameworks and APIs to make improvements to existing applications. Coders at this level make use of open source and build applications. The Coder Ninja.

Please share the visuals below and as always, feel free to comment.

bosc

unnamed (1)  unnamed (3) unnamedUntitled-4

 

Tweet about this on TwitterShare on FacebookPin on PinterestShare on LinkedInShare on Google+Share on TumblrEmail this to someoneShare on StumbleUponShare on RedditDigg this
(Visited 1,193 times, 1 visits today)

6 Responses for this post

  1. Peter McAsh
    Peter McAsh
    | |

    You have outlined a very logical progression. I question the need for using languages that require rigorous syntax. I would suggest it is possible to understand the concepts of programming without having to deal with the issues created by needing to create syntactically correct code. Will the use of text to create code become extinct? I’m not sure anyone predicted the abundance of “GUI” programming environments (except perhaps Seymour Papert). The tools that professional programmers are using must be evolving. Perhaps the use of text (syntax) should be, at the present time, limited to senior high school courses to introduce to those students who might continue with future CS education?
    I would suggest collaborative coding not be the end goal but something that is incorporated into each stage. My definition of collaborative coding is creating code together. What you are suggesting by collaborative coding might be better renamed? Perhaps “Applications”?
    I commend you for your efforts in developing coding for kids.

    Reply
  2. dougpete
    dougpete
    | |

    I agree with much of the comments from Peter. I really think collaboration, group/pair programming should be done early and often throughout the process. There’s nothing that can stifle the process than working by yourself and hitting the wall.

    One of the concerns that the graph could pose to some, particularly new to the concept, is the abundance of programming languages that you’d identified. Do I have to teach them all?

    I’d suggest a good look at TouchDevelop as a solution. It supports block programming, simple text coding, and advanced text coding on virtually any platform.

    One of the complaints that I have with some of the applications that are developed for education is the lack of internal documentation. Without comments, reusing code or remixing code becomes pretty difficult. I think that’s a significant pedagogical consideration. When you look to help a student, or a group of students work together, no documentation can be a time waster.

    Where do you see these graphics going?

    Reply
  3. Aviva
    Aviva
    | |

    Brian, my reply is in response to your comment to Doug. I don’t think that we need a curriculum to start coding. I think that we need to instead understand how coding best meets our varied curriculum expectations. As a Grade 1 teacher, what I want out of coding for my students (to meet my desired expectations) may vary from what they’re actually able to do. I see coding like a language, and I wonder the impact on successful coding if students are struggling in language. Where might they hit a wall? How can we support them when they do (or what can they do to problem solve on their own)? What basic language skills do they need to solve these problems? What are the basic language skills that they need to continue with having greater success as they code?

    Thanks for giving me so much to think about!
    Aviva

    Reply
  4. Michelle Booth
    Michelle Booth
    | |

    I also agree with comments by Peter and Doug. Text based programming languages may be best left to secondary CS and engineering courses once the students are comfortable with logic and basic programming structures. I have used Scratch and gameMaker as starting points in grade 10 and 11 programming course as it helps them focus more on logic and programming structures and less on learning a text based language. And as SDKs and programming languages evolve I think it is beneficial for CS students to be familiar with text based and visual languages.
    I would argue that all programming languages have some syntax (set of rules). Even visual languages like Lego and Scratch have their own syntax as the puzzle block pieces only fit together based on programming structure. Learning any programming language will involve learning a set of rules and I believe the MIT developers have taken child development into consideration as they developed Alice, Scratch , scratchJR , etc syntax. Perhaps non CS educators just need guidance in term of which platform/SDK is suitable based on child development and purpose in the classroom. You have provided examples and I think teachers appreciate that. I don’t think a continuum makes sense but perhaps platform examples by division and purpose.
    Collaboration and working in teams is something that could be happening for beginner programmers including K-8 students. I wouldn’t put this as a separate concept on the continuum. I think collaboration and teamwork could be taught as part of any basic design process.

    Reply

Leave a Reply

Name
Name*
Email
Email *
Website
Website