Blackbird – A review

I’m always interested in websites that teach coding. I like the idea of learning new skills and testing oneself. Blackbird is one of those sites. The goal here is to teach people JavaScript which is pretty cool because JavaScript runs in browser making a bit easier for people to play around in it.

This website is geared for middle school students and up and unlike block programming (like the super popular Scratch) this has students working with actual code, but it does it with a lot of hand holding which I like. Just to be clear I am no programmer. I have dabbled here and there with mostly Python but with this review I was learning right along everyone else. Let’s see if it is worth using.

Continue reading “Blackbird – A review”

I Did the Hour of Code, and then I Did Three More Hours of Coding


By: Tony DePrato | Follow me on Twitter @tdeprato

Every year I take a few minutes to express slight annoyance at “The Hour of Code”. In my professional life, I will support any teacher wishing to participate. However, if anyone does happen to ask my opinion, I would explain to them my reservations about the event.

This year I want to take a new approach. Let’s skip the part about how an hour of coding is not a practical amount of time to plan, draft, built, and evaluate a creative solution or idea. Let’s move beyond the fact that the majority of the programming environments children are using are telling them what to do and how to do it (because they only have an hour). Finally, let’s completely ignore the potential disappointment students will face when they decide to actually try and build something on their own.

The first important fact I would like to address is that I have taught children as young as  grade three how to code something meaningful. It was a slow, and often painful process, that seemed to be futile. However, the children always surprised me, and after 6-8 hours of work, there was usually a working program that connected to an idea. I would like to stress that I am aware many students are not able to simple open an IDE and begin creating the next Mario Kart. Coding/Programing is tough. It takes practice. Students need to learn and evolve. Doing an Hour of Code ONCE to get them going is fun, and I would support that.

Why Are We Still At An Hour of Code?

My rant this year is on this simple question: why do we still just have an hour of code?
It seems like since many schools have been doing this for a few years that there would be another, possibly required, track that regular participants would need to follow.

For example, Three Hours of Code. Or maybe Two Hours of Code, the Wrath of Python. Anything beyond on hour for those who understand the mission, and have mastered an hour of code, would be preferable.

Maybe if it is the first time coding with students, schools do one hour, and join the movement.

Since those schools have a full year to prepare for the next challenge, how about level it up a bit? Why wait all year to just do one more hour?

If we are saying the mission of the project is to get students interested in coding, then shouldn’t the continued mission require more  levels of participation?

An Hour of Code year-after-year is not a going to make an impact.

Are You Really Serious About Coding and Project Based Learning?

If you are serious about working with young learners, then you need to find programs like AppJamming. These types of contests connect all the aspects of the Systems Life Cycle , to the student experience. Working with a program like AppJamming allows students to experience the various phases of creation from the idea to the end-product.

Makerfaires are another outlet for getting students involved in true project based learning initiatives. These types of events are excellent. Coding is part of a tool kit instead of the sole focus. Students who may “like” coding, but do not “love” coding, would be more likely to participate. Students would learn to integrate coding as a process into a larger product.

In Summary

Support teachers and students who want to do new things. Do not keep allowing people to easily do the same thing over and over. The learning becomes less and less when the goals are easy to achieve. Encourage people to challenge themselves, and take some risks.

 

 

Computer Science, Programming, and Coding Standards by Grade Level

By: Tony DePrato | Follow me on Twitter @tdeprato

A while back I took the ISTE NETS Standards and decided to create a grade level based layout for what students should be able to do at different grade levels.

As the students continue to progress through their education, the grade level view expands gradually. The idea is that they keep repeating activities and meeting these standards.

Here is what the current design looks like:

Years  3 & 4:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.

Year 5:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments

Year 6:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system

Year 7:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures

Year 8:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures
  • Design and test algorithms and programming solutions to problems in different contexts (textual, numeric, graphic,
    etc.) using advanced data structures

Years 9 & 10:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain
    various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures
  • Design and test algorithms and programming solutions to problems in different contexts (textual, numeric, graphic, etc.) using advanced data structures
  • Demonstrate an understanding of the operation of computer networks and mobile computing devices
  • Demonstrate knowledge of two or more programming paradigms

Years 11 & 12:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain
    various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures
  • Design and test algorithms and programming solutions to problems in different contexts (textual, numeric, graphic, etc.) using advanced data structures
  • Demonstrate an understanding of the operation of computer networks and mobile computing devices
  • Demonstrate knowledge of two or more programming paradigms
  • Analyze algorithms by considering complexity, efficiency, aesthetics, and correctness
  • Demonstrate an understanding of static and dynamic data structures

Over the next few weeks, I will be connecting the standards at each grade level to the types of activities and lessons that facilitate them.

Episode 92 – Tim we need your help!

itbabble_podcast

This episode Tony and talk all about programming. Yep, we talk about whether schools are starting students with too difficult a language or not. We also talk about Australia’s decision to make coding mandatory, but at what cost.

As always you can find us on iTunes and Podomatic and if you have a comment, just leave it here on the blog – we love those things!

Check out the agenda below:

You can listen to it right now as well or download it HERE!