Coding, coding and coding

Context

asecuritysite.com
asecuritysite.com

It is great to see the promotion of coding in Schools (bbc) and in the change to the N5 syllabus in Scotland (where coding and system development now covers half of the syllabus), but we really need to start to make the subject more interesting and engaging at all levels. Where are the great academics and teachers who make coding interesting? Where are the industry professionals in the UK/Scotland who are willing to stand-up and say that coding is so key to their work? Which universities are helping support Schools in the type of coding that kids should be getting involved with? And so many other questions…

For me, I LOVE CODING … nothing better for creating a conduit for my ideas, and the things I find interesting (and also in properly support my students – and helping with SME work … and so on). For me, it’s the most creative thing I do, and the actual coding is unimportant, as it really allows me to convey my ideas and thoughts to a large audience. It’s really my scratch pad, where I try need ideas, and I use the computer to aid the teaching of complex ideas (it is helps me abstract them out too). For many when asked what their favorite software package is, they will often say a computer game, or even Microsoft Office, or Facebook or Twitter (I appreciate that these are not quite applications, but are examples of software as a service) … for me it is Visual Studio 2012 … I could not do with it. With it I’d struggle to code, as it helps me to actually write the code, and even allows me to step through the code when I’ve got software bugs (which is basically always!). One small problem I see in Scotland, is that N5 Computing Science uses the Haggis pseudo code, which, as far as I can see not actually a real programming language … but I’ll keep that back for another essay.

My router simulator
My router simulator

I developed for a long time in Microsoft .NET for Windows, and created over 1million lines of code for my Cisco simulators, but I decided to stop development in Windows as it was too difficult to update and it locked the code down to a specific operating system. Now I’ve forced myself away from Microsoft Windows program to do everything with Web code, as automatically when you design a console application or a Windows application you are already limiting your audience, and also it is difficult to update without complex patches and backdoor updates. I you want to try my old code it is here, and my new Web content is here.

I’d just like to say that I am currently working on the Web content for the new N5 syllabus with Bright Red Publishing, and the Computing Science book is one of the books I have done quite a bit of work on, so I know where the subject is going in Scotland. Also I’ve been through every computer language that is possible … C, C++, FORTRAN, Flash ActionScript, Java, … and finally got to the end point: C# MVC ASP.NET.

Real World Coding

Well apart from the lack of leaders showcasing how interesting coding is, there are very few people standing up and saying that is my job, and this is how I use coding. I was at an excellent talk by David Stubley, and as a Pen Tester, who give a live demo of using Python to search for the secret keys for Amazon EC2, and went ahead and started a virtual instance … real coding … in the real World. It is people like David who need to stand-up and inspire the next generation into coding, as it shows real life applications, in something that is not just pure coding .. which after all, all coding is applied to something.

Why not me?

My C book from a long time ago!
My C book from a long time ago!

Well I taught coding for many years, but I couldn’t actually bring myself teach the difference between a for and while loop, as it was so boring! So I taught them electronics with C and Pascal programs, and when I lecture on the languages, I talked about devices (transistors, mainly) and logic gates, and it was much more interesting, and much more interesting. For me now, I love Computer Security, and I teach coding through capturing network packets, setting up intrusion detection systems, and in doing cryptography. My students hopefully learn coding, while doing something that is applied. Here’s my book … still popular in some areas of the World … and my first (and think best) book. It’s strange that I used to have great debates about which was the best language to teach … Pascal or C … in the end … I taught both … side by side … and I told my students that I didn’t care what language they used, as long it was design well, and that it worked. I actually did produce a book which showed the same program in C, Pascal, FORTRAN, Assembly Language, and a few others languages, as I really thought that it was the principle of taking a problem and solving it was much more important than the actually syntax of a function. When I taught electronic engineers they got that, and they were using software as a tool to solve problems and apply theory into practice.

Computing Graduates and Coding

I really worry about coding in Computing, as I have interviewed quite a few graduates recently, and quite a few of them say that they have not done any coding on their degree (or MSc). This is quite worrying as we are meant to be creating architectures and engineers, who will engineer new systems, and surely scripting, code integration, and so on, are key features of any Computing graduates work. I’ve also heard academics say that they want to get rid of coding from their programmes … as some students don’t like doing it … which surely is not the right way to justify anything. Surely it’s the way that it’s taught, and the way that it’s focused that really counts, and, unfortunately, quite a few software development academics do not put software into any real context that a range of professionals could see as relevant.

Coding for me, was something I learnt once, and then I just applied it to whatever I wanted, and moved between systems and language without any care about the language of any fundamentals are the syntax. So for me … no-one should graduate from a Computing degree without having done some coding … and for me, I’d like to see coding used in some form in their BEng (Hons) and MSc projects, but that may be a longer term goal.

So what?

Well we really need some teachers and academics to step forward and make coding more interesting and relevant. Also we need to get more kids interested in it, and showcase how it is changing our world … no Twitter … no Facebook … no Youtube … no mobile phone games … in fact no computer games with it. Also we need to make sure that Software Engineering is only one career that develops software, electrical engineers, security professionals, interface designers, all write code, and its great contributes to our economy and in building a new buildings build on software, rather than bricks.

And basically … we are in a difficult period … the demand for people to code has never been so high. In Scotland, companies like Sas, Dell Secureworks, Skyscanner, miiCard, and so many others, are crying out for coders and system architectures to build their World leading software, and it we can’t even get kids interested … basically we will loose out on our potential to lead the World and create our new economy. For us, the Christmas Cyber lecture in Scotland might seem like to trivial thing, but it gives us a change to talk to many Schools kids and their teachers, and show them a vision and career for the future! So get your kids to code … right now .. it is so much fun .. and you can help architect the future! … sorry for all the exclamation marks …but it’s so important for the future of our economy.

For me, I’m not a Software Engineer, and I never want to be. I design in my head and I love coding and testing, but the whole requirements analysis and formal design stuff is not for me … don’t tell anyone … but I’ve never actually formally designed anything I’ve created … I just go ahead and do it. Software development is there for all in Computing … whether it simple HTML/Javascript coding, Sharepoint integration, console applications, scripting automated tests, developing fail-over detection, and so on, it’s for all, and kids need to understand that (and if you are in Computing, we are all responsible in articulating it).

5 thoughts on “Coding, coding and coding

  1. Hi Bill. Sorry for contacting your though this post. My name’s Yushell Darwich. A Web and .NET developer from Mexico. I’m a fan of computer security and recently found your site with all sorts of material and code samples. Though there’s one problem. I can never use ‘Global.ByteToString()’. Where does ‘Global’ come from? I don’t know a namespace or keyword that matches. Still, I appreciate the work you’ve done on your site. Awesome job.

      1. Could you also provide the contents of the class? I’ve tried several methods to convert the bytes to string but it always returns giberish.

  2. Hi Bill,

    I agree with you that contextualised computing is a more motivating way to introduce coding to both pupils and students alike. Some of the contexts we use in our classes are animation, 2D games, robotics and mobile apps and they’ve made a huge difference to the level of engagement.

    I don’t think you should be too concerned about Haggis. Its just a way of being able to test pupils code understanding without tying all schools down to having to teach one, true, language. Alison Elliot Tews work developing the FCS1 instrument for testing core computing concepts in a language independent manner proved that a carefully designed pseudocode is equivalent to using a specific language.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s