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.
So I’ve just come back from a Brilliant Day (and night) at the CAS Conference. This is my third year and each year I approach the event with a new thought of what I want to learn. This year, it was my focus on not what i teach (languages etc.) but the way I teach.
The keynote speakers that we had were brilliant, a speaker from Google and Lee Stott from Microsoft about the projects they are currently running in order to get students involved in programming.
What struck me was 2 things:
- there is a lot of fear out there about learning to program
- there are so many tools out there we have to be careful what we choose to use.
I think these 2 things together could be a double edged sword that Computing/programming must be careful of when walking that line. There are a number of ICT Teachers without the requisite skills to program and need to learn, however there are also A LOT of very simple programming tools that get you started, but if you use these beyond the starting point you end up with a culture shift.
I think at this point we need to be careful. Let’s be under no mistake PROGRAMMING IS HARD, and there are a number of ways to introduce the topic, but if you use the tools beyond the engagement point, you have to make sure you apply the rigor to it or make the end product a joke.
The ICT Failure
We all complain about the failure of ICT and it becoming too easy. I remember in 2006 when i was a tech a teacher abandoning HTML for Dreamweaver on the basis they had to make a website and Dreamweaver was “faster and easier”. We could quickly fall into this trap with programming, making tools to make coding easier then in 5 years complaining that programming has become too easy and we are in danger of being dropped from the curriculum.
I love the IDEA of tools like blockly, but I think there has to be a culture shift from the big companies and product developers. CAS has it right, let’s focus on the education of the teachers first and make sure we have qualified, trained teachers to make sure the subject is rigorous and challenging with the right teachers to teach it.
Addendum 25/6/13: How do I teach
Speaking to people tonight at a CPD for CAS in Preston, I was thinking how I wrote this. It’s true (guilty smile), I work in a good school and this is great because (most) students will (generally) try no matter what you throw at them. But I think with programming (and any subject for that matter) you have to find a way to engage every student in the class, take them on the journey with you.
I don’t want to make the programming language so simple that everyone in the class can do it first time, every time. I want to be able to teach so that the hard language is accessible to everyone. Using tools such as CSInside and CSUnplugged, which helps break down topics into smaller ones can help with this. I guess my aim as a teacher is not to get every student to be good at every topic, but to introduce those topics, get them to engage, and allow them to learn for themselves outside of the classroom. Yes, this takes more time and planning for differentiation, but I find this to be one of the most fun parts of teaching, coming at a topic sideways to come up with an interesting idea that will engage and excite my students.
I also would love to talk about the CAS “Master Teacher” role, but think I’ll leave that for later.
So, this is a thought i had a while ago about Teaching and Open Source.
Part of what i really love about teaching is coming up with new and exciting ideas, it’s why I go to geekups, to see something that someone does, modify it and really make it my own. I know marking and stuff is part of the job, but ask most teachers and their true joy is getting up and “performing” in front of a class.
I recently went to a Barcamp in Manchester and attended a talk about Open Source software and this got me thinking, surely we should promote Open Source Teaching?
I share my resources that I make for classes quite openly and freely (and hopefully they make a difference in someone else’s class) on the same principal of open source (or creative commons)
Why Should i Bother?
It’s a good point and a good question. Why should i share my stuff, as let’s face it anyone could rip it off and pass it off as their own. would this impact me on the job front if i went for a job and someone said they took my resources as their idea.
One of the first things i learned when i did my management course years ago was that it always benefits you to share your knowledge. The idea that the more you share, the more you get back (or the more it Free’s you up to do other things as people will then be more willing to help you in your job)
Taking it further
from listening to the talk on open source, i was thinking about taking the idea of open source teaching further. I see so many “educational consultants” who charge for their days teaching people how to teach and how to make “the perfect lesson”. I don’t believe to hold that answer, I do what i do, the kids enjoy it, so do I and they learn something in the middle.
But wouldn’t it be brilliant if you have a lesson that you know works well (maybe it’s the third time you have taught the starter that week) and instead of just putting a resource onto CAS or TES, you make a video of how you used it in class showing how it works for you.
If we could get teachers doing this, these sites could then build a repository of videos of lessons that you could watch and see how a teacher teaches and from that develop a resource further. I know there are people out there doing this, so when my year 11’s have left this is my pledge, to take a KS3 lesson, record part of it to show something working well and then upload it to my youtube.
Maybe some average teaching practice(by me) will rub off on someone to make it outstanding teaching in another school
After returning from one of my weekend jaunts to Manchester barcamp( a free un-conference tun by Manchester girl geeks) i was struck by something really interesting. I am a pretty self motivated learner, i don’t need people to teach me, just a big book and some times, but in teaching where does that time come from?
I’ve seen a lot of courses offering me to learn about programming, and I think for the beginning programmer that is great, however I also think that as someone who can program I just need the time to develop my skills and learn how to teach new languages, and here I find this time lacking.
In an ideal world, I’d love to experiment and develop lessons for my year 12 and 13 computing in:
- Object Orientation (and Greenfoot)
- Build your own PC Courses
My limitation is not my lack of understanding, its the preparation time on learning how to teach these topics. I have 4 machines ready to go to teach a “build your own PC” course, but i need to strip them down to bare bones to start, this could take me 1/2 hours at least, then write the prep materials.
The Online Argument
there are a million resources online and as much as a love the CAS group and their resources and even (sometimes) TES, i can usually spend more time trying to find a resource and edit it to suit my needs rather than making it myself.
At the moment there are a million courses teaching the basics but i either need more time to plan or more time to decide how to impart new concepts.
Teaching is a lot about time and pressure and the idea of micro management of tasks, get the coursework marked for year 11, then do year 8 marking, then plan your lessons. Doing the extra jobs that need/like to be done sit in the background. As a new dad as well (she’s 6 months and V Cute) i am now struck by what people said before she was born “all this extra stuff you do will go out the window”. Well, shockingly, they were right and i was wrong. I try to keep up the best I can and attend the courses to meet my collegues/friends, but what i really need now is an extra 2 hours a week where i can sit and learn the extra stuff to bring my lessons on even further.
I was thinking of applying for Head of Departments this year, i think if i did that my life and passion for my subject would be sucked away and replaced by an even bigger mountain of paperwork. But as I wrote in a previous post “i’m looking for something, not sure what it is yet”
p.s. apologies for the picture, picked it up ages ago and can’t find the link. if someone can, i’ll credit the source.