Teaching Python vs HTML

So, I was talking to a colleague the other day and he was asking me about my experience teaching Python at secondary schools, mainly – “is Python forgiving”? My simple answer was – No! Python is not forgiving at all in comparison to HTML.

I now primarily teach the web trifecta – HTML, CSS and JavaScript and the question came about because of the forgiving nature of HTML. Students can submit some shockingly ill-formed code that will still display in a browser.

For instance –

<p>hello world</p>

will display “hello world” in a browser. Yes, it works, but it is far from well-formed or best practice, such as –

<!DOCTYPE html>

<html>

<head>

<title>better code</title>

</head>

<body>

<h1>Hello, World!</h1>

</body>

</html>

Python, on the other hand, is far more pedantic about its syntax rules. Often a simple misplaced / or : or “ instead of ‘ will render the code useless. I would spend hours of teaching code locked in debugging to find where a student had forgotten that colon! Don’t get me wrong, I love debugging – no, I really love debugging, and I am good at it because I enjoy it. However, debugging code because a student cannot copy from a book without dropping a colon is not so much fun.

If I am to compare the two languages in a teaching environment, teaching Python is probably easier. Why, you ask? Well, because-

·        it has to be right to work!

·        It has to be indented

·        It has to be well-formed

·        It has to be structured

·        It has rules that must be followed

·        The syntax is exacting

Sure, this is harder to teach – forget “free will” and “conform” your code, can stump the more creative students, but you are industry ready if you learn it right. Good old slap happy HTML will often work no matter how badly the code is written or formed. This makes it harder to teach because they know they can get away with –

·        A lack of structure

·        No indents

·        Ill-formed code

·        Missing syntax

·        A real “DIY” mentality

Therefore, teaching HTML that works is very easy – teaching HTML that is industry ready is really not!

“Well my webpage works doesn’t it sir?”

“Well…erm…yes, but it is a mess and the code are all over the place and is very hard to follow”

“Whatever, sir…it works and that’s good enough for me, so the heck with it!”

OK, so back to the anecdote – Python.

After getting so frustrated with putting colons and the alike into student’s code, I started playing a game. We had loads of old keyboards at school so I got a load and removed the .,?;:”’ etc from them. If a student asked me why their code wasn’t working, I would look. If it was logic I would explain and work with them on it. If it was syntax, I would go to my desk and pick up the corresponding marked key and place it on their desk. Obviously, if the key they were given was a colon, they knew they had to look for the missing colon in their code. This would encourage them to look for syntax errors themselves, rather than have the embarrassment of receiving a broken keyboard key placed on their desk.

Gosh…I miss teaching Python. However, I love teaching the web trifecta here at The Training Room.

No matter what language you learn – learn to code!

#ttrLearnToCode #ttrIT

Please follow and like us:

I don’t wanna be Cyber Attacked – what can I do?

A question I often get asked is should I accept all these annoying updates from Microsoft.

YES! Is the short answer, and really the only answer, but many don’t or won’t?

OK, so there are caveats. If you only connect to your own network at home, never use the World Wide Web, never do anything that requires passwords and do not use internet banking, then no, you do not need to update. If you do, however, you really should!

In a recent whitepaper, DUO* suggested that over 65% of devices running Microsoft Windows are running the outdated Windows 7 released back in 2009. The operating system was withdrawn from support in January 2015 as it was too vulnerable to attack, although, Microsoft will still release minor security fixes until 2020. That, removal of support, was over two years ago, so if you are still running Windows 7 and accessing the World Wide Web, you are extremely vulnerable to attack! Microsoft even offered a free upgrade to the more robust Windows 10 for free, yet people still did not switch. I appreciate that people still like Windows XP and Windows 7, but they are just no longer safe or relevant in today’s online world. The software is changed and updated for a reason, it is not just to make money – after all, they gave it away for free – it is to plug the data holes and keep you safe online. This is not just a problem with out of date Windows devices, it is also the same for Android and iOS on Macs. Yes, the Mac is just as vulnerable to attacks**, it is just with about 7% of the P.C. market, you tend to hear less about it***.

  • If you continue to use Windows XP now that support has ended, your computer will still work but it might become more vulnerable to security risks and viruses. Internet Explorer 8 is also no longer supported, so if your Windows XP PC is connected to the Internet and you use Internet Explorer 8 to surf the web, you might be exposing your PC to additional threats. Also, as more software and hardware manufacturers continue to optimize for more recent versions of Windows, you can expect to encounter more apps and devices that do not work with Windows XP. —Microsoft

Now, if you take your “old” device into work to connect to their network, you are now making your entire company vulnerable to attack! Once you open a port from your device to the work intranet or Wi-Fi, you are giving attackers – via your outdated software – instant access to the network. Not only that, you are allowing a would-be attacker easy access to an otherwise secure business network. At the very least, everything you can access an attacker can also access. If they are sophisticated, they can potentially gain access to all the network. All this, just because you really like older versions of Windows! At my former place of work (a secondary school) a teacher brought in their old XP laptop and opened an email, they received from a person they did not know. Unwittingly, by opening that email on the school network, they introduced ransomware onto the network. This encrypted the entire school network and all drives. For nearly a week, the school network was unusable while the technicians worked to restore previous network backups. When the system was eventually restored, all the recent files people had been working on since the backup were lost. Obviously, the school did not pay any ransom, but only because they back up the system files twice a week; had they not have done – there would have been no way to restore the files without paying the ransom and getting the unlock code.

In the light of recent cyber attacks, in May 2017 –  Microsoft has come out and said this is a “wake-up call” and reiterates the need to install their security patches as, and when, they are released.

  • Ransomware is a type of malware that prevents or limits users from accessing their system, either by locking the system’s screen or by locking the users’ files unless a ransom is paid. More modern ransomware families, collectively categorized as crypto-ransomware, encrypt certain file types on infected systems and forces users to pay the ransom through certain online payment methods to get a decrypt key.https://www.trendmicro.co.uk/vinfo/uk/security/definition/ransomware

I am certainly not trying to imply that, had the user been using an updated version of Windows 10 that that would never have happened. Instead, I am trying to add to the discussion that the often overlooked threat to network security is internal human errors****. However, “User Behavioural Analytics” are beyond the scope of this discussion.

Summary

Keeping your system up to date with the latest security patches and software add-ons remains a highly important step in combating hackers.

In short —

INSTALL and UPDATE

  • Your Operating System
  • Your browser
  • Your browser add-ons
  • Anti-Virus software
  • Anti-Malware software
  • Anti-Spyware software
  • Firewall

·        Do NOT open unknown emails and attachments EVER!

Some people tend to think that if your device is set to download and install updates alongside a disk defragmentation automatically at the default time of 03:00AM, then that is enough to keep them safe if they turn their machine off before bed. Well,…are you saying you expect the device to wake up at 03:00 and turn itself on, connect – by itself – to the internet, download and install updates/patches/drivers/code then check your hard drive for errors – before turning itself off again and going back to sleep? I’m sorry but it doesn’t!


 

I hope this article has gone some way in helping you understand the importance of UPDATES. If it has…please LIKESHARE or FEEDBACK the post. Thank you.

About the Author, – Dr Richard Haddlesey is the founder and Webmaster of English Medieval Architecture in which he gained a Ph.D. in 2010 and holds Qualified Teacher Status relating to I.C.T. and Computer Science. Richard is a professional Web Developer and Digital Archaeologist and holds several degrees relating to this. He is passionate about the dissemination of research and advancement of digital education and Continued Professional Development #CPD. Driven by a desire to better prepare students for industry, Richard left mainstream teaching to focus on a career in tutoring I.T. professionals with real skills that matter.

#ttrIT #ttrcareerinIT #ttrLearnToCode

Visit his Blog and Website

Read more about Dr Richard Haddlesey BSc MSc PGCE PhD

Bibliography

*https://duo.com/resources/ebooks/the-2016-duo-trusted-access-report-microsoft-edition

**https://nakedsecurity.sophos.com/2016/09/02/patch-now-recent-ios-vulnerability-affects-macs-too/

***http://www.macworld.co.uk/how-to/mac-software/do-macs-get-viruses-do-macs-need-antivirus-software-3454926/

**** The Essential Guide to Behavior Analytics – www.balabit.com

Please follow and like us:

A future skills gap in the wake of the new Computer Science GCSE?

As a former Secondary School Teacher, I was part of the government’s move away from traditional Information Communications Technology (ICT) toward Computer Science as a GCSE.

The change has been profound and caught many teachers off-guard. Many older teachers of ICT could not easily make the transition to teaching computer science. Why? Well because it is now a science! A science based on computational thinking and the logical creation and analysis of algorithms and coded solutions. In simplistic terms… it’s out with Microsoft Office and in with Python IDE!

Computer Science then is a completely different course to ICT. Obviously there exists some latent crossover, but for the most part, it is a much more relevant science/industry-based qualification compared to the more business based ICT course. Much of what was ICT is now only a small part of the E-commerce side of Comp Sci. It has moved from learning how to use software – such as MS Office – to create documents and websites. It is now much more about how to build apps, programs and e-portfolios alongside maintaining computer systems, networks and cyber-security. As such, breaking down a problem and planning a sequenced plan or algorithm is now fundamental to the “art” of computational thinking.

 

My experience of teaching both ICT and Computer Science has taught me that not all students are capable of Computational Thinking and understanding algorithms. Not all can think sequentially and logically, many can only process freeform, nonlinear thoughts and can make little sense of a computer that can only do what it is told, in a specific order using a specific structured language or code.

This leads the teacher to have to focus more on trying to teach the students how to create algorithms and flowcharts and of course coding. There does exist many high-quality educational aids for learning to code –

·        https://code.org/learn

·        https://scratch.mit.edu/starter_projects/

·        http://www.alice.org/index.php

·        https://www.codecademy.com/learn

·        https://www.kodugamelab.com/

·        https://codecombat.com/

Students, in my experience, find it difficult to code effectively because of the strict syntax. Although PYTHON is very forgiving, it is exacting in its syntax – in other words, if it expects a colon or comma, then it MUST have a colon or a comma! – but why? “Well, it just does” can placate some students, but frustrate others. Trying to get the students to code effectively takes up a lot of teaching time at the expense of much of the theory. Most of the time we had to rely on students doing the theory for homework, which inevitably, was 50/50 hit and miss with many students not bothering. The ability to create a working solution to a problem almost always forms the basis of at least one of their final Controlled Assessment’s in which the student must plan, code and test a solution efficiently with no guided help from their teacher or peers. Because this is crucial to a good final grade, it is obvious that teaching and learning how to code and troubleshoot code is a classroom priority.

So, you may ask, why am I writing this blog? Well, because I believe that there will continue to be a skills gap when our present and future cohorts of GCSE Computer Science students leave school. I am convinced that they will certainly better equipped than their ICT qualified peers, however, with too much time given over to learning Python I think they will be lacking solid industry skills. Don’t get me wrong; I think their learning Python, Computational Thinking and Algorithms are a massive step forward in the right direction. However, they often lack the ability to translate the learning of Python into other “C” based languages and HTML, SQL, JavaScript etc. No matter how hard we try to drill the students on the importance of planning and writing algorithms that were not retro-engineered, they always wanted to code first and then try to make up a plan to fit the program.

Any way I digress… I am not trying to push a solution – after all, there is no single solution – I am just pointing out my observations in order to try and start a discussion on the future of the industry and whether others have noticed a skills gap in GCSE students?

I hope this article has gone some way in helping start a discussion on possible future skills gaps. If it has…please LIKE, SHARE or FEEDBACK the post. Thank you.

About the Author – Dr Richard Haddlesey is the founder and Webmaster of English Medieval Architecture in which he gained a Ph.D. in 2010 and holds Qualified Teacher Status relating to I.C.T. and Computer Science. Richard is a professional Web Developer and Digital Archaeologist and holds several degrees relating to this. He is passionate about the dissemination of research and advancement of digital education and Continued Professional Development #CPD. Driven by a desire to better prepare students for industry, Richard left mainstream teaching to focus on a career in tutoring I.T. professionals with real skills that matter. Thus, catering more to the individual learner’s needs relevant to their career pathway than the National Curriculum taught in schools is presently capable of.

#ttrIT #ttrcareerinIT #ttrLearnToCode

Please follow and like us: