Tagged: A-Level

Choice of Programming Language – Justifying my Choice.

For a blog that normally only gets 25 views on a good month the 2000+ in the last day has been phenomenal! I’m having to suspend comments because I have a job to do. apologies, I will try and rephrase my personal preference to not using python at a later date. I understand I have things to learn(As expressed in the comments), but Python is not my preference in using a language as you have objections to my choices. Please try to appreciate this is opinion. I understand I need to research more into python and this MAY change my mind, but from what I have seen I am not a fan of programming the language, this does not make me a bad person or a bad teacher, just someone who has a difference stance from you. 

I get asked this all the time, especially with the rise in popularity of Python as a programming language. I have a number of reasons for my choice. Recently I was asked this by a parent who suggested that it was not as “Useful” as python. I think this is a good forum to share my reply.

There are a number of reasons why I have chosen Visual Basic as a programming language for GCSE and A-level and I hope the following justifies my choice. Visual Basic is used as an introduction to programming and is frequently used as a teaching language in a number of schools and universities across the country. I understand the popularity at the moment of the Python, however this language is also based on the C language. Students in Python are not required to do things such as declare variables, which is something that is required for GCSE and A-Level exams. The VB Language itself allows for the concepts to be laid out in a more verbose language in order for students to develop into other languages such as C++ and C# at A-level which is my ultimate goal (when students have an understanding of programming, then they can move on to more complicated languages).  It acts as a perfect transition language between the simpler syntax of  python and the more complex C++,C# and Java. It is true that Microsoft stopped programming in Visual Basic in 2005, however they did not stop programming in derivatives of this language and developing the software to program in visual basic, meaning as a foundation language it is perfect for introducing complex programming constructs. The Microsoft App store also actively encourages students to work in the VB.NET environment and it allows students to produce their own apps in this language, so the language is not dead, simply not as mainstream.  If Sam were looking to take his skills further I actively encourage students to look into app development for the windows store as it has no yearly fee for students unlike some of the other stores and charges students a lesser fee for uploading and promoting their apps, there are also loads of videos on dreamspark.com for students to learn from.  If Sam is also keen on programming he can also look at Young Rewired State which is a week’s programming in the summer holidays that allows him to develop his skills further (again, I will actively promote this in class and on the school twitter feed when it becomes available) As mentioned, my ultimate goal for the A-Level course is to introduce a more complex language such as C, C++ or C# as with the introduction of the computing curriculum lower down the school (and at other schools in the area) more students will be approaching the college with a greater understanding of coding and want to take that knowledge further. At A-level I also teach HTML, PHP, Java (Greenfoot) as well as other languages which is not required by the current A-level specification in order to give students a flavour of what other languages entail and provide them with a solid foundation for entering a career in programming. I also have a number of friends who work within the IT sector as software developers and am currently looking at the end of year 12 with providing students who are interested with work experience in those industries so they can take their skills further. Sorry for the length of this email, I hope it answers your questions.  If you have any queries, please do not hesitate to contact me.

Addendum: I am perturbed by anyone who chooses to slate my abilities as a teacher due to my choice of language, I want to teach students to be good programmers with strong transferable skills and this seems to be proven in their future career choices/options/abilities. If you are a teacher making this comment you are slating a colleague who, like you is trying his best for his students. As I’ve read some of the comments, yes I could of expanded on my feelings for why Python lacks Complex constructs. I am Aware of how Python is a very popular and powerful language and what it can do. I have met students who are studying Python at A-Level and they are not taught the basics of programming, Python (IMHO) allows you to dive in quickly however can teach you some really bad techniques from the start, but again this can be down to the teacher(not knocking into any teachers here). This is MY humble opinion and this was a letter to a PARENT. I was not trying to diminish anyone who programs in Python, I am not going to write in a letter to a parent a full essay-style justification(unless I had 4 more hours in my day!). As with any language there are strengths and weaknesses to all of them and there will be always people who agree with both sides, I was simply quantifying a question I am asked regularly. I have approved all comments so people can see the conversation, however I stand by my choice and although (as stated) I will look into C++ and C# for older students that I teach.