tr?id=304425946719474&ev=PageView&noscript=1 Coding in the Classroom

6 Ways to Incorporate Coding into Your Classroom

Traditional doctrine in the educational system is to create good computer programmers by teaching traditional computer science and first making students computer scientists, which is not really needed to learn how to code and make good computer programmers. Usually, a part of that method involves burdening students with difficult advanced math requirements not usually included in standard K-12 curricula.

Most standard math classes will not help prepare students to learn to code. This obligates teachers planning to teach students to code in a traditional computer programming course to teach the math and logical concepts required by computer programmers first. These include binary and bitwise operations, hexadecimal (also known as hex code) and octal, which only uses 0 through 7, for a base 8 system.

Standard math courses also don’t teach students to start counting from 0 up to 9 in our standard system of counting and decimal system. However, they really should if they want more students to understand how to program a computer.  To this end, understanding the concepts taught in math is actually far more important than learning to quickly and accurately calculate the correct answers to math problems with your own human brain in the approved way.  The ability to pass through the filter of high pressure math exams without even a calculator does not really help make anyone a good computer programmer. Nor does anyone learn how to code any better in this standard educational system.

Of course, the problem solving skills and logic taught in math can still be very important, particularly those learned in algebra and calculus. Of those, kids are smarter than they are given credit for, so a little algebra is recommended and can make a big difference in a class on computer programming or coding.

It is important to remember that real, professional computer programming is pretty much always open notes. You can even search for answers online, and the computer in front of you is actually a very good, very fancy calculator. So while as it still really helps to know how to do math, it really isn’t the most important part of learning computer programming.

Fortunately, you don’t have to be a full computer scientist to be a computer programmer or learn to code. That makes those  advanced math requirements not really the most appropriate or useful to students who are just looking to learn how to code. Nor is it really necessary to become, for example, an open source software developer, a Linux systems administrator or a web master.

In times past, because we either didn’t have better or “better” was too expensive, young children were put in front of a command line with little more than a blinking cursor for a command prompt. They were taught things like BASIC and how to use an interactive shell, and to use things like MS DOS. The first program taught in any language was “Hello World”. In BASIC, that is the classic two lines:

10 PRINT “HELLO WORLD”

20 GOTO 10

Happy Programmers Day - Sept 13 2022 - CUDA Programming and Performance -  NVIDIA Developer Forums

The old BASIC was and is a very good introductory programming language, because it is mostly a scripted programming language and naturally open source. That means that teachers can have a much easier time seeing and understanding students’ BASIC programs. It was also easy to learn by modifying pre-existing programs that were found published in textbooks and other books, the manuals that came with microcomputers, magazines and other sources. 

Somewhere along the way in the last few decades, a sort of irrational aversion to or fear of the command line interface developed. This increased as computers and devices became more graphical and easier to use, with important parts either locked away with admin passwords or hidden entirely by tech companies looking to protect their intellectual property. All of this happened at the cost of consumers. It has become a roadblock to having a better educated and knowledgeable society of computer programmers, IT professionals, network engineers, data scientists, software engineers, technicians, hackers and makers.

This phenomenon of abstracting away and concealing the more difficult and technical parts of computer software has still proven sometimes beneficial in certain areas of education--specifically, teaching young students computer programming. Young students can now bypass learning both difficult math requirements and even writing computer code by learning a programming language and typing. It is possible to get straight into creating and learning important concepts by using programs such as Scratch.

Mimio Classroom Technology Blog

Scratch is a kind of an IDE, that is to say in this context an Integrated Development Environment and Scratch is very good for creating animations and video games. Scratch is now up to Version 3.0, and all versions do not really require an expensive or powerful computer. The Scratch programming language has pretty much all of the actual computer code completely abstracted away and hidden behind simple “code blocks” that fit together a little like colorful puzzle pieces on the screen.

What’s nice about that is that just as it is more important to understand certain math concepts than it is to accurately calculate the correct answer to simple math problems to learn to code, it is actually more important to understand concepts used in computer programming across various programming languages than it is to learn any one particular programming language. Thus, while all the code may be hidden away and simplified, Scratch is still very useful as an educational tool to teach young students how to code.

Consider the reality that whatever programming language, IDE or platform you or your school chooses and no matter how excellent your course, it will likely all become as obsolete as the old BASIC programs very quickly. However, students can still gain a lot from a coding course based around Scratch or a similar program that still teaches the important concepts.

There are concepts that won’t ever be obsolete that are used in computer programming, no matter the computer language or code used. It is far more important to teach those concepts, which apply regardless of the programming language or platform and thus lessons will remain applicable in the future.

In addition, things like animations and video games take a lot more than just programming skills to make. There is also the graphics, all the sound effects and any music, which is also a lot to cram into an already technical and complicated curriculum. To address this, Scratch provides a lot of sprites to move around, a lot of pre-existing art and sounds that you and your students are encouraged to use. There’s also a lot of example projects, and they are all easy to modify. That all makes Scratch fun and satisfying to learn with, which keeps students engaged and learning.