The Computing Tutor's end of 2017 review

As 2017 draws to a close (GMT), I'll use this post to reflect upon the progress made on the Computing Tutor project this year as well as the progress I've made personally in my understanding of Computer Science.

Reflections on the Computing Tutor project

Audience growth and retention

In July 2016, I began the development of the Computing Tutor project and by the end of the year the YouTube channel was getting 100-200 views/month (November 2016: 163 views; December 2016: 134 views). Now, at the end of 2017, the channel is getting almost 2,000 views/month (November 2017: 1,914 views; December 2017: 1,860 views*)**.
Computing Tutor YouTube channel views

I consider this growth in views to be very good and it bodes well for 2018. I'm not totally sure how much time I'll have to dedicate to the project in 2018. It should be at least as much time as I put into it in 2017 so I hope to see a continuation of the growth I saw this year.

Of course, view count isn't the only metric by which I can measure the success of my videos. Average view duration is another important factor associated with whether or not viewers are finding videos useful. A view can be recorded on a video even if someone accidentally clicks on a video and doesn't watch any of it. Average view duration should give me an idea of whether viewers stick around once they start watching my videos. This time last year, on average, most views weren't very long at around 30 seconds - 1 minute (November 2016: 37 seconds; December 2016: 1 minute 4 seconds). As with views, this year I saw an increase in average watch time on last year with viewers now consistently watching my videos for over 1 minute (November 2017: 1 minute 25 seconds; December 2017: 1 minute 20 seconds*)**. I do however feel I need to take these results with a pinch of salt. The objective for most YouTube channels is for the viewer to watch and enjoy the whole video. Whereas the objective for Computing Tutor videos is to provide some useful information to the viewer or answer some query they had. It's obviously great if a viewer watches and finds the entirety of the video useful. But in many cases, a viewer might only need to watch 30 seconds - 1 minute of the video to find out what they wanted to know. In these cases, even though the video hasn't been watched in it's entirety, it's still met the objective I've set out to achieve by creating Computing Tutor videos.
Computing Tutor YouTube channel average view duration (y-axis is minutes)

Video quality

The quality of videos I'm producing for the project has also improved since this time last year. For example, in December 2016, I was using Windows Movie Maker to edit videos. Just recently I've updated the Computing Tutor channel trailer (below) and creating a video like that with Movie Maker would simply not be possible. I'm now using Kdenlive on Ubuntu to edit videos which I'll talk more about later in this post.


Final thoughts

Despite the successes of 2017, the project faces some challenges. One of these is the reliance on YouTube as a platform for hosting videos. I don't think for whatever reason I'll be able to stop distributing videos via YouTube any time soon. However, I've always thought it a good idea not to have all my eggs in one basket and in the unlikely event that YouTube did stop serving my content my videos would become inaccessible, at least for a time.

Earlier this year, I thought Vidme could be a solution to this problem. It was a platform similar to YouTube with a big focus on rewarding the creator. Sadly though, the platform went offline just this month.
In 2018 I plan to explore other services like Vimeo with the aim of having at least two ways that students can access my videos by the end of the year.

Another challenge is the sheer amount of time it takes to produce good videos. What I've mainly been focusing on recently is creating content which won't age. For example, a video on Boolean Algebra won't need updating whereas a video on Python might if the syntax changes.
In 2018, I plan to do around 75% content that won't age and 25% content that will as I recognize the latter is still needed for the Computing Tutor offering to be comprehensive.
This will always be an issue while I'm one person developing a project of this kind. However, I think as long as students and teachers find the content I've got useful, it doesn't matter enormously that the channel doesn't have a video to cover every single topic in the GCSE and A-Level Computer Science specifications.

Overall I think it's been a very good year for the Computing Tutor project. Through the project I've been able to help a modest number of individuals understand Computing topics that they've been struggling with. I'm optimistic that in 2018, I'll be able to help and even greater number of students improve their knowledge of Computer Science and achieve better grades than they otherwise would.

Personal technical development

I was originally going to make this post just about the year that the Computing Tutor project has had. I decided to go ahead and write this section about the Computer Science I've learnt this year for a few reasons:
  1. I feel it's particularly easy in the tech industry, because it's so fast paced, to feel like you're not keeping up or learning enough. Writing this section has boosted my own motivation to learn more because I've spent time reflecting on the amount of knowledge I've managed to gain in the past year.
  2. I think communicating my experiences to students who choose to follow the same path after me is useful. I thought about the ways I can do this and I've come to the conclusion that writing more about my experiences being a Computer Science student in this blog is a good way to go. I hope that by doing this future students will be able to get a good idea of what studying Computer Science is really like which will help them decide whether they want to do it themselves.

Understanding of programming

At the end of 2016, I'd mostly only programmed in Python. Starting my A-Level Computer Science project in Java was overwhelming since the syntax of the language and the paradigm of programming (Object-oriented) were both totally different. Now, at the end of 2017, I'd consider myself competent in the basics of Object-oriented programming and Java. Moreover, I now find it easy to transition between scripting languages that are similar to Python. For example, this week I wanted to write a small program to convert postfix expressions to infix expressions. I was able to pick up Ruby (which I'd never programmed in before) and write a program to do the job.
I still have much to learn about Java which is why studying it in depth at university in the next few years will be a highly valuable experience. By the end of 2018 I also would like to have achieved the same (or higher) level of competence I have now with Java in C and C++. I've already begun self studying these and I plan to take the second year module on Software Development with C and C++ at university.

In my first term at University, we covered the basics of programming in Python. I got a surprising amount out of this considering I've been programming in Python since I was in Year 9 at school. By studying Python again at this level, I've gained a much more in depth understanding of the language and I've learnt how to write cleaner and more efficient code. The main thing I've taken from this is that you can learn so much by observing how other experienced users of software development tools use them.

Understanding of theoretical Computer Science

I covered a lot of new Computer Science during my A-Levels. What I found useful about the first term of university is that much of this knowledge is recapped for the benefit of those that didn't take A-Level CS. What this meant for me was an opportunity, much like with Python, to gain a much more in depth understanding of some of the theory. During the first term, I recapped a few topics (notably Boolean Algebra and Reverse Polish Notation) that in hindsight I didn't fully understand at A-Level. Sometimes going over a topic you already know about in some detail can be as valuable if not more valuable than learning about something new.

Understanding of GNU/Linux and free software

At the beginning of last year, I was still using Windows 10 as my main OS on my PC. Through using GNU/Linux on my laptop, I'd realized that unless I wanted to do .NET stuff, a Unix-like environment is a much more pleasurable experience (to me a least) for programming***. In the Summer of 2017 I spent a few days configuring a Ubuntu setup just the way I wanted it on my desktop. I'm really happy with the results and talked about the process in this post. Through using a combination of Ubuntu and Mint as my only desktop operating systems I've gained a lot of knowledge about how to get stuff done with free software. I feel now that free and open-source is where I'd ideally like to spend time developing software in the future simply because the culture fits best with my values and ideals.

Final words

That's it for Computing Tutor in 2017. I'm planning to defiantly do a review at the end of 2018 if not another review before then. Until then, Happy Computing!


*at the time of writing there's still a few days of December 2017 left
**statistics source: YouTube analytics
***see the "Programming on Linux" section on the Wikipedia page if you want to know more 


Popular posts from this blog

Thoughts on using Kotlin to teach programming

How to complete your A-Level coursework and enhance your CV at the same time

Using Oxford Brookes University WIFI (eduroam) on a Linux machine