[Week 2 Reflection] Thinking about Coding


paradigm could be child-specific. I sort of doubt it. The imperative paradigm is king because the underlying Von Neumann machine (the computer hardware) is imperative. But we’re not teaching ‘preparatory pre-assembler’ class any more.

If I were introducing children to computation, I’d start with playing with syringes, tubing, and valves, to develop facility with reactive systems in an apparent context.

Then move to a reactive software system - some NodeRed like visual programming system that runs a robot, probably.

Then introduce an agent universe and move to action in the picture plane, moving sprites around the screen. Crazy Machines, New from the lab comes to mind.

I’d introduce logic programming, (as constraint logic programming?) in a syntax-supporting blocks programming system that was imbedded in the previous system.

And then transition to a text based logic/functional reactive system and use Kowalski’s method and project based learning to teach other subjects using it.

8cD It’d be a big disaster.

I’d introduce imperative programming only when the gold owners forced it on me, probably in the form of the maniac Java standardized testing.

You know, my own ideas sound great for 24 hours, and I just wrote this, but yeah, I think we’re starting on a real pedagogy of computational thinking here.

I’m not a professional educator, just a computer scientist/engineer with an interest in education. But the above moves smoothly from a world of physical intuition to a world of computation. Which honestly isn’t something i’ve seen before.


I’d suggest that programming skills are in the process of becoming a new widely distributed skill like driving and writing.
When I started as a computer programmer, no one understood what I did, other than ‘work on a computer’. I imagine they thought I used a wrench or soldering iron.


You make an interesting point. Why do you think that programming is becoming an essential skill in people’s lives? In what capacity will all people be using programming in their everyday lives?


In my lifetime programming has moved from an esoteric specialty to a common profession to now seeing ‘everybody do it’.
I don’t expect ‘everyone’ to program, in the sense that a fraction of students exit their science education with no clue how science works and no ability to reason from evidence. But programming is a long long way from just a job skill right now. Only a tiny fraction of all games are made by professionals now.


Scratch and interactivity -

What distinguishes games and computing from movies is interactivity. The user acts, the computer reacts, the user reacts to the computer. A symbiotic bond is formed.

Sadly, a lot of what I see in scratch isn’t programing - it’s animation. Even the scratch exercises in this course have been “animate your name” “animate a passion"
I can imagine how this goes
"Animate Washington crossing the delaware” “animate the takings clause” “animate section 143 para 3b of the federal tax code as it relates to deductions for sugar beet production”

Games generally are better. And animation acts as a nice ‘hello world’. But I wonder how much we’re really teaching, either about programming or about the subject, through this animation work.

I worked with a teacher who had her students create PowerPoint presentations about the lesson. While effective in reinforcing the (biology) lessons, I can’t think of it as ‘project based’

Party of this is banging against the ceiling. Scratch isn’t a very satisfying language in some ways. I tried to do something in scratch for the ‘animate your name’, and discovered I was having to hack around the language to do it.

I like steering behaviors and the Lennard-Jones equation. I wanted to make my name appear by having a bunch of dots fly around the screen interacting with each other like a swarm of bees, and settle into the shape of my name.

But as soon as I needed to represent the letterforms of my name, Scratch got awkward. I was in the model space, not the view. And scratch has limited tools for keeping a model.



Programming and coding has changed a lot over the years, my last experience with programming was with a functional programming called Haskell, five or six years ago.
I see a lot of potential inthe scratch programming language, but my real goal in this course is not learning about prograimming, but as resnick said, explore my own learning process, and also how is the process of group learning and collaborarion through projects.
I experience the Four P’s develping this first scratch project.



There are tons of games in Scratch community; I personally made many different kinds of project/programs with Scratch; generative art, science simulation, 3D simulations, math projects, a lot of different games, like Air Trafffic Control game; then Moon phase calculator, ecc.
If you deepen your knowledge of Scratch, I guess you will change your mind :slight_smile:


Perhaps. Certainly I’m not an expert scratch programmer.

That said, I think I’ve learned something about programming from the nearly 40 years I’ve been a professional software engineer, from the language I designed, and from my work as part of the SWI-Prolog dev team. My opinions have a bit of experience behind them.

Obviously, one can program anything in Scratch for which there is low level access. The language is obviously Turing complete. And I’m aware of the many games in Scratch. But being able to do something in theory is far from it being easy, comfortable or natural. Otherwise we’d all have stopped with assembler.

I think if you study some material in the design of programming languages, read the Structure and Interpretation of Computer Programs, read Let over Lambda, learn a few dozen programming languages, design a few, dig through some Rich Hickey papers, read some formal verification, compiler design, and SAT solver work and look at some constraint programming you’ll change your mind. :crazy_face:

Suggestion - we are all stronger when we borrow from each other’s areas of expertise. Then our diversity empowers us.


I have worked for about thirty years in the ICT/Telecommunications sector, and I have used various professional and proprietary software languages. Despite that I found programming with Scratch, funny, easy, comfortable and natural.
Thanks for the suggestion


Scratch has definitely changed the way I think about coding. My original experiences with coding were learning BASIC, C, Html…essentially one dimension thinking in my head…flat and somewhat boring…html brought a bit more excitement about 20 years ago… Scratch has made program…fun…cool…accessible…easy…to complex…with an endless supply of examples and the ability to peak into others work to get ideas…kids bouncing ideas and teaching each other their tricks… I find it exciting to watch students and teachers begin to catch the “scratch bug” and begin to program and create all sorts of projects…I’ve also enjoyed watching younger students bring life to their work. I feel that scratch has opened creative doors that I could never have guessed possible…I can’t help but wonder what will come next…


I have been facilitating a Code Club for a year now. I have a couple of awesome parents who are the ‘experts’ in coding who help the students to use scratch, python and HTML and more to create projects using the Code Club NZ. Usually I just make sure everyone has a computer and a project to work on and let them get on with it.However lately I have been completing the Scratch projects myself so I am able to help the students more. It surprised me how easy it was to use, but I soon discovered once the projects and tasks get more difficult the importance of problem solving and being a creative thinker. I have really enjoyed learning how to use Scratch alongside the students.


I first met a code with a commodore 64, some friends showed me how to write “hello” many times: it was fun!
I studied coding in my high school, we studied Pascal but I don’t remember so much, I just remember it was boring.
I used small codes at the University and I learned much more during my phd: I had a problem to solve, a code to write, run and debug, I had to study different kind of situations changing parameters.
It is funny to see that scratch let my mind go back to what I started to do when I was a child and it is important for me to see my students enjoy coding because they to solve a problem we decided to work on!
I was surprised to find projects on scratch with Monte Carlo Method!


[Week 2 Reflection] Thinking about Coding - I definitely like getting projects knocked out and going back and tinkering with projects in Scratch. In the same way that the valuable / useful / enjoyable parts of kindergarten experience should be taken forward into the rest of school and life, I wish programming IDE’s (eclipse, netbeans, IntelliJ, others) had a similar “lifelong scratch” approach, so that tinkering was enjoyable, works in progress were something that are easy to come back and extend or play with when you have a different idea on another day. A lot of my use of scratch is to make starter examples for students, to demonstrate the use of particular blocks or to show examples of “finished” projects for a code camp assignment. I like the “Remix” mindset that is part of scratch. Professionally, open source code projects in Apache / Linux and other groups have a similar approach, use what works, extend with new ideas, test and integrate. Very good stuff, I’m glad Scratch is a great first starting point for solving problems and expressing creativity with code blocks / blockly. – @DanG


I have had groups of students use SCRATCH for projects, but I had previously not taken much time to do a project myself. There is a certain feeling of accomplishment when a project works! It feels good to figure it out. As teachers, we need to remember what it is like to be a student and how it feels to feel frustration with a project and how it feels to be successful.


I like codding from long time, and I find it real FUN, besides of way how to cleverly automate tasks or solve problems. What I found Scratch is providing on top of this is the accessibility to new joiners. You don’t need to know the syntax of the programming language in order to code simple commands - you just drag and drop them and it’s easy to move and stick blocks together, duplicate chains, tide up, … Scratch is like a LEGO game with bricks – you don’t need complex instructions in order to start playing with them and you could hardly do something wrong. It’s like borderless playground for the creativity.

Based on my experience doing several creative workshops with kids (using Scratch, Tynker, LEGO Mindstorms or other visual programming tool) - I found that after few simple guidelines - kids manage not only to create complete programs, but also to upgrade them to really complex projects, solving provided challenges and showing their creativity.

I’m always recommending such visual codding tools not only for kids but for anyone who thinks codding is something extraordinary complex and hard to do. So if you take the first step in codding with such game and not with a hard to understand commands on an empty console - you can easily understand that codding is not to know “the code”, but how to tell computer with your commands what you want to accomplish. Moreover, the most important lessons in codding - “Computer is not doing what you want him to do, but what you tell him to do!”


While I was a student, I studied only Pascal. And while I have known about Scratch:
1st. I learnt it and realised that it can be use good for my work – teaching
2nd. I showed it to my chilren, and they are very interesting in it (they like to PLAY very much), certainly they haven’t understood about coding clearly but they like to experiment
3rd. I taught a small club (with the 14 ages pupils) and someone of them was interested in it. They could make some interesting projects after some times of debugging and thinking again
4th. I teach my students (pre-school students) and guide them how to use Scratch to make the stories, mini games for the kids. About 20% of my students like it and they can make some useful projects. Others are not fluent with that but they start to think and try some color blocks. And I think it may be useful for themselves even little.
Before that: I think coding is very interesting but certainly with Pascal I can’t do an interactive project.
Now I think it can make the pupils (students and kids) have a more clearly thinking.


La verdad yo creía que la codificación significaba solo números y estructuras que servían para las personas con pensamiento matemático y estructurado. Yo soy profesora de Castellano y la verdad me ha gustado mucho este curso, hice además la hora del código para aprender más sobre Scratch y me encantó. Es una herramienta muy buena para trabajar con los estudiantes en donde ellos además de crear, pueden reflexionar constantemente sobre sus procesos cognitivos y de desarrollo. Van probando, intentando, equivocándose, hasta que lo logran, y eso es en verdad espectacular en el proceso de enseñanza- aprendizaje. Mi opinión sobre codificar cambió bastante y para mejor, ahora me gustaría ser parte de ella. :slight_smile:


I think coding is one of the most important skills in these new times!
It helps you to think and how to solve problems


Before I knew scratch, I teached coding the way I learned: as an individual and lonely activity; my students were confront with a problem and they had to design an algoritm acording to same instructions in a worksheet.
With scratch, it all change! After I understand how it works, I started to “give winds” to my students to imagine and create on their own. And instead of a problem, I gave them chalenges about different subjects of the curriculum of several disciplines, and they started learning with project based learn .
I think scratch is a powerful tool and when combined with different thecnologies it has no limits – the creativity and ideas are the limit.


sicuramente l’utilizzo di scratch ha ampliato il mio modo di fare coding, che assume una connotazione diversa rispetto a quanto conoscevo. Con scratch si può lavorare dando sfogo alla creatività di ognuno e nello stesso tempo si ha la possibilità di sviluppare un linguaggio di programmazione più avanzato rispetto ad altri software creati per lo sviluppo del pensiero computazionale