Thursday 31 August 2017

All OCR A Level Computing Specimen & Past Papers For H047/H447 Spec

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

All of these are available on OCR's website but I thought it would be nice to have all 40 (3 specimen, 37 past) papers listed on a single page in order. These 40 papers, coupled with the other 10 of the new spec which I linked in another post make a total of 50 papers available for revision. 

Obviously I can't get my hands on the 2017 papers yet but with the ones currently available one can do quite a bit. If you do one a day, you could finish in less than 2 months for instance. Anyway, the choice is yours as to how you use them but I would highly recommend you do every single paper at least twice. The first time can be "open book" so you can use your notes etc. but the second time should be in exam conditions.

These papers are not as useful as the new spec ones (obviously) but are still quite relevant as the content is similar. You'll find that these ones are much easier to do as well compared to the new spec ones and as you start doing a few of them, you'll also realise the repetition of certain questions each year.

Anyway, I don't have much more to say so here's the links:  

H047

Computer Fundamentals


  1. F451 Specimen Paper QP & MS
  2. F451 January 2009 QP
  3. F451 January 2009 MS
  4. F451 June 2009 QP
  5. F451 June 2009 MS
  6. F451 January 2010 QP
  7. F451 January 2010 MS
  8. F451 June 2010 QP
  9. F451 June 2010 MS
  10. F451 January 2011 QP
  11. F451 January 2011 MS
  12. F451 June 2011 QP
  13. F451 June 2011 MS
  14. F451 January 2012 QP
  15. F451 January 2012 MS
  16. F451 June 2012 QP
  17. F451 June 2012 MS
  18. F451 January 2013 QP
  19. F451 January 2013 MS
  20. F451 June 2013 QP
  21. F451 June 2013 MS
  22. F451 June 2014 QP
  23. F451 June 2014 MS
  24. F451 June 2015 QP
  25. F451 June 2015 MS
  26. F451 June 2016 QP
  27. F451 June 2016 MS


Programming Techniques And Logical Methods


  1. F452 Specimen Paper QP & MS
  2. F452 January 2009 QP
  3. F452 January 2009 MS
  4. F452 June 2009 QP
  5. F452 June 2009 MS
  6. F452 January 2010 QP
  7. F452 January 2010 MS
  8. F452 June 2010 QP
  9. F452 June 2010 MS
  10. F452 January 2011 QP
  11. F452 January 2011 MS
  12. F452 June 2011 QP
  13. F452 June 2011 MS
  14. F452 January 2012 QP
  15. F452 January 2012 MS
  16. F452 June 2012 QP
  17. F452 June 2012 MS
  18. F452 January 2013 QP
  19. F452 January 2013 MS
  20. F452 June 2013 QP
  21. F452 June 2013 MS
  22. F452 June 2014 QP
  23. F452 June 2014 MS
  24. F452 June 2015 QP
  25. F452 June 2015 MS
  26. F452 June 2016 QP
  27. F452 June 2016 MS


H447

Advanced Computing Theory


  1. F453 Specimen Paper QP & MS
  2. F453 January 2010 QP
  3. F453 January 2010 MS
  4. F453 June 2010 QP
  5. F453 June 2010 MS
  6. F453 January 2011 QP
  7. F453 January 2011 MS
  8. F453 June 2011 QP
  9. F453 June 2011 MS
  10. F453 January 2012 QP
  11. F453 January 2012 MS
  12. F453 June 2012 QP
  13. F453 June 2012 MS
  14. F453 January 2013 QP
  15. F453 January 2013 MS
  16. F453 June 2013 QP
  17. F453 June 2013 MS
  18. F453 June 2014 QP
  19. F453 June 2014 MS
  20. F453 June 2015 QP
  21. F453 June 2015 MS
  22. F453 June 2016 QP
  23. F453 June 2016 MS

Hope this helps!

Wednesday 30 August 2017

Let's Talk About The OCR A Level Computer Science H046/H446 Specification

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

I know I said in the previous post that I would link all the H047/H447 spec papers but then I realised tomorrow may be the start of term for some schools (or not, I honestly have no idea) so I should talk about something more useful and relevant to this new linear spec (plus those papers are on OCR's website anyway). I'll still link them in another post InShaAllah.

So let's talk about the new linear spec. I know I've mentioned a few things that I dislike about the new spec in earlier posts but I think a lot more needs to be said. You may or may not find this information useful but I think understanding what the spec is asking you to learn is key to success in the final exams.

Personally, I think the new spec is extremely vague. Maybe OCR wanted it to be this way so they could broaden the scope of the spec by not limiting it to simply defining/describing/explaining certain terms/keywords or maybe they are just lazy plain and simple. 

Let's just take the content mentioned in the very first part of the first spec point 1.1.1(a) where it mentions the ALU:

"1.1.1(a) The Arithmetic and Logic Unit; ALU..."

Now if you're someone who hasn't got a single clue about computer science when you first start this A level then you're going to have a bad time. I wasn't given the opportunity to study GCSE Computer Science because my (extremely socioeconomically deprived) school didn't offer it so I done GCSE ICT instead. 

Even after doing GCSE ICT I had no idea what any of this meant and I'm self teaching! I had to look at the old spec to get a better idea of what I needed to know. So now let's look at how the old spec states what content you need to know about the ALU:

Candidates should be able to: a. describe the function and purpose of the... and ALU (arithmetic logic unit) as individual parts of a computer; 
LOOK HOW SPECIFIC THAT IS! That's the whole point of a specification, to specify the content that the candidates need to know, not just state a random term expecting students to know what you're talking about. As if OCR didn't torture students enough by writing terrible exams, now they have to confuse us even more by writing a terrible specification!

Notice how at the start (and this is on every page by the way) it says "candidates should be able to". Now you may think that's not a big deal, it's quite obvious that everything on the spec is content that candidates need to know. OK Fine, not mentioning that line in the new spec is tolerable but what is not is how OCR think it's ok to just write a long list of words and expect students to read their minds as to what their actual intentions were in writing that vague list.

Moving on, the very first word of the spec point is something very familiar in exams, it says DESCRIBE. Now I'm sure that I don't have to tell you the difference between the command words state,identify,define,describe,explain etc. so it would make perfect sense for OCR to clearly state what knowledge I need regarding the ALU. I need to "describe the FUNCTION and PURPOSE" of the ALU. Now that make's sense, a candidate will clearly be able to distinguish the knowledge that is relevant to him regarding the ALU and what is not, they simply need to know it's function and purpose.

If OCR could write such a clear and detailed spec before, why not now? The new linear exam system is already tough enough and to make matters worse, some students don't even know what content they have to know for the exam! Look, I know it's nice to know extra information about the content in the spec (especially if you love your subject like me) but when it gets to the those final days before the exam, IT DOESN'T MATTER. 

It's all fun and games in the early days but when you're doing that last minute revision before the final exam and check the spec to make sure you know everything but you just see a load of keywords with commas between them, you start to question if OCR would ask this or that which leads to nothing but panic. 

An old spec candidate would simply read the spec and know he knows the function and purpose of the ALU but a new spec candidate... would simply read the word ALU and think does he know everything about it. I mean seriously OCR, was it that tiresome to write this spec? 

There's glimpses of clarity of the old spec in the new one but honestly, I think whoever wrote this either didn't get paid enough or is just plain lazy. I could go on and on but I think you get the picture. In fact I think even OCR got the picture because guess what, they released a subject content clarification guide in 2017 (nearly 2 years after the spec) which I'll link at the end of this post.

Now let's compare how this guide states the first spec point to the actual spec itself:

Candidates need to have an understanding of the purpose and function of the core components of a processor. Candidates need to understand the role and components of the ALU. 

SEE! Even OCR realised what a tremendous failure their specification was. Look at the extraordinary, the great lengths it goes to and the familiar wording used to ensure it is as clear as possible. Sure, they don't use the word describe like before as they probably want to expand the scope of the spec, which is fine. 

But at least this time, it states (just like in the old spec) that the "purpose" and "function" of the ALU is the knowledge that candidates need to know. Now students stand a chance in passing their exams (which will be greatly improved if OCR learned how to write exams). Anyway, I think I just needed to vent and let all the contempt I had for OCR before they released this guide out (don't get me wrong, I still hate them). 

To conclude, I will just link the AS and A level specifications and the AS and A level subject content clarification guides which I highly recommend you use to know what aspects of the content mentioned in the spec you need to know.

Here's the links:



Hope this helps!

Tuesday 29 August 2017

All OCR A Level Computer Science Sample & Past Papers For H046/H446 Spec

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

Was looking through all the resources I have to decide what to share for today's post but I had no idea what to do so just decided to link all the sample and past papers. Most of these are available on OCR's website but some of them take a little more effort to find. 

Truth be told, these were in my old school's teacher shared drive in the A level computer science folder that was freely available to everyone. Technically speaking, I know i'm not supposed to share the ones that are locked on OCR's website but someone on TSR or something will post them soon enough anyway.

Was originally going to link all the old H047/H447 spec past papers as well in this post but I decided I'll do that for tomorrow's post InShaAllah. Anyway, past papers are by far the best resource for the new H046/H446 spec, they're free and give you a good idea on what to expect in your final exam.

In the old spec papers, the questions are pretty much the same nearly every year. They'll always ask to define/describe/explain the same terms over and over again to the point that if you do all the past papers you'll have memorised 95% of all the mark schemes.

The new spec however takes a new approach, the exams will still usually ask to define/describe/explain the terms in the spec but it will "dress up" the question in a given context to try and throw some people off. Obviously there's a lot of new content added to the new linear spec but the exams are not so different from the old ones. Practice with the sample and past papers linked below and your final exam will be easy InShaAllah.

With that said, don't start to underestimate the exams. OCR will most probably throw in a few "funny" questions every year to catch some people out. The key is to study the patterns of these papers so you can make an educated guess as to what will come up in your final exam (obviously don't completely rely on your guess and forget everything else).

One thing that really annoys me about OCR in particular is that they release the past papers so late. Edexcel, sorry I meant erm... Pearson (will never get used to that) and AQA release the previous year's papers in May whereas OCR release them in August for reasons I don't know why. Anyways, here are all the links. Enjoy!

H046

Computing Principles


  1. H046/01 Computing Principles Sample Paper QP & MS
  2. H046/01 Computing Principles June 2016 QP
  3. H046/01 Computing Principles June 2016 MS
  4. H046/01 Computing Principles June 2016 Modified Enlarged A3 24PT
  5. H046/01 Computing Principles June 2016 Modified Enlarged A3 18PT
  6. H046/01 Computing Principles June 2016 Modified Enlarged A3 18PT Q7 Insert


Algorithms & Problem Solving


  1. H046/02 Algorithms And Problem Solving Sample Paper QP & MS
  2. H046/02 Algorithms And Problem Solving June 2016 QP
  3. H046/02 Algorithms And Problem Solving June 2016 MS
  4. H046/02 Algorithms And Problem Solving June 2016 Modified Enlarged A3 24PT
  5. H046/02 Algorithms And Problem Solving June 2016 Modified Enlarged A3 18PT


H446

Computer Systems


  1. H446/01 Computer Systems Sample Paper QP & MS
  2. H446/01 Computer Systems Practice Paper Set 1 QP
  3. H446/01 Computer Systems Practice Paper Set 1 MS
  4. H446/02 Computer Systems Practice Paper Set 2 QP
  5. H446/02 Computer Systems Practice Paper Set 2 MS


Algorithms & Programming


  1. H446/02 Algorithms And Programming Sample Paper QP & MS
  2. H446/02 Algorithms And Programming Practice Paper Set 1 QP
  3. H446/02 Algorithms And Programming Practice Paper Set 1 MS
  4. H446/02 Algorithms And Programming Practice Paper Set 2 QP
  5. H446/02 Algorithms And Programming Practice Paper Set 2 MS

Hope this helps!

Monday 28 August 2017

The Ultimate OCR A Level Computer Science Dictionary (version 3.0)

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

Version 3.0 is here! This one took a bit longer than the previous iteration since I couldn't decide whether to include a contents page or not. Since this is only 20 pages I decided against creating a contents page and done something different. I colour coded the definitions so they correlate to the section of the spec they belong in. I also separated the definitions so the start of each section is labelled with the part of the spec they are referring to. 

I've also decided that this is probably going to be the last version of "The Ultimate OCR A Level Computer Science Dictionary" (at least for a while) because I want to move onto bigger things. So what am I talking about when I say "bigger things"? 

I want to make a revision guide. As aforementioned in a previous blog post, the number of resources for A level Computer Science are scarce, I don't want to go into how scarce they are or the quality of the ones available in this post but it's quite safe to say (given that this is a new spec as well) the resources out there aren't very good. 

Even CGP, who I consider to be quite good at making revision guides, haven't made a revision guide for A level Computer Science. I know this will take a lot of work and commitment and I have no idea how long this will take me so until I complete this I don't think I will be able to create any other resources. I will still be sharing resources so don't worry but they won't be created by me.

Anyways, I would talk more about the revision guide as I have loads of ideas already but let's not go on a tangent. I couldn't really think of anything else to add to this so this is all for version 3.0.

Here's the link: The Ultimate OCR A Level Computer Science Dictionary (v3.0)

Hope this helps!

Sunday 27 August 2017

A Short But Useful Floating Point Representation Guide w/Exercises For OCR A Level Computer Science

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

I'm sharing this since I figured I've already posted resources about theory, algorithms and the programming project but none for the math part of the specification. For those have no idea what "the math part of the specification" is, let me break it down for you. 

Firstly, you only need to know these for the Computer Systems exam i.e. the "theory" one. There are only 2 sections of the spec that refer to mathematical skills you need to know and trust me, this isn't the type of maths you are thinking about. The math is simple, you just need to be able to deal with:

  1.  Binary calculations, conversions and represntations (check 1.4.1 Data Types in spec for details)
  2.  Deriving, manipulating and simplifying Boolean algebra (check 1.4.3 Boolean Algebra in spec for details)
The terms mentioned above may seem unfamiliar and therefore difficult but believe me, these skills are very easy to learn and should present no problems whatsoever in the final exam once you know it. 

So now comes the question. how do you learn it? Well, there are loads of resources on binary and Boolean algebra that don't even have to be OCR specific to be useful. As with any math, practice makes perfect so the more exercises you do the better you'll be at solving these types of questions. This post will cover binary and I will address Boolean algebra in another post InShaAllah

This guide is only 1 page that includes a quick guide on certain rules in binary e.g. addition and two's complement rules, a few floating point representation exercises and even a binary fraction lookup table. The exercises don't come with answers strangely but I plan to make a model answers document to couple with this so you can check your answers InShaAllah.

Anyway's I think it's a nice document to have even if it's just one page.

Here's the link: OCR A Level Computer Science Floating Point Representation Guide

Hope this helps!


Saturday 26 August 2017

Top 3 Tips For Doing The OCR A Level Computer Science Programming Project + 5 Exemplars & More!

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

As promised, I will be blogging about my top 3 tips for doing the programming project along with a couple of other things including 5 exemplars and various other resources. Anyway, let's get straight to it!

Tip #1: Choose the "right" project! 

This may seem obvious, but a lot of students don't! Some pick really complex projects whereas others pick boring ones. Choosing a project that's right for you right from the beginning of the coursework is absolutely essential! In fact, it's even better to have an idea BEFORE your teacher says anything about coursework, this way you'll already be ahead of the pack i.e. the class and will be able to get stuck in immediately.

But how do I even choose the right project before the teacher even starts the coursework in class, I hear you ask? Well, there's a plethora of resources available to help you decide (albeit some were originally meant for the old H047/H447 specification) that I will link below. 

Personally, the right project doesn't mean it has to be the most complex to gain the most marks, to have the best chance of getting the most marks it just has to be complex enough AND be something you are interested in. If you find your project boring, then you'll put less effort in it and basically set yourself up for failure! 

If you're unsure regarding the complexity of your project,just check with your teacher (I didn't say you had to decide all by yourself did I?). Teachers can be an invaluable asset that can offer specific advice based on your project unlike the Internet, where finding answers catered to your questions can be a nightmare!

Tip #2: Don't make the report unnecessarily long or cumbersome! 

Your report/paperwork/documentation should be straight to the point, that means no waffling and aiming to reduce the volume of pages produced. Remember, this isn't an English essay where you get marks for flowery language, this is a programming project; the primary focus of which is on the development and coding elements. The documentation you produce is simply to evidence said development and coding elements.

Ideally, your project's documentation should have no more than 100 pages. To do this, follow the marking criteria very carefully, don't go on a tangent when documenting any evidence! I can't stress this enough, but you should ONLY link to evidence where needed and eliminate any repetition as this will waste time and will probably end up not giving you any marks. 

As my old school's Head of Computer Science used to say, "the examiner will only look at the parts of the report that will earn you marks, everything else is irrelevant". Trust me, you may think doing some extra stuff for your report may impress the examiner but it won't. They have tons of paperwork to get through so they're only looking for the sections of your work actually addressing the marking criteria. 

In short: stick to the marking criteria, follow the spec and GET TO THE POINT!

Now you may have noticed the exemplars linked below are all over 100 pages, they are for the old H047/H447 spec which emphasised less on coding and more on the report. The new H046/H446 spec is basically the opposite, it favours complexity and coding over the volume of paperwork in the report. It even removed the need to produce a user guide, a positive if you're someone like me who hates coursework. 

Your teacher may suggest different which is fine (and I highly recommend you listen to your teachers if they differ from my opinion since I am just a student), but I would recommend the paperwork of your documentation should be allocated like this:


  1. Analysis - 15 pages max
  2. Design - 25 pages max
  3. Development - 40 pages max
  4. Evaluation - 30 pages max
I know the total of pages is over 100 (110 to be precise) but they are just in case you need to go a little over the recommended limit (which I strongly advise against). Again, if your teacher disagrees with this then by all means listen to your teachers (as they are far more knowledgeable than I am). Anyways, let's move to the third and final tip.

Tip #3: Focus on the development and programming side! 

I'm not going to beat around the bush, but the programming project isn't easy. The new linear spec makes sure of that by allocating 30 marks to the development and testing sections of your coursework (which is just shy of 50% of the total by 5 marks). The old H047/H447 allocated the same number of marks (30) to the development but had a total of 80 marks.

Some of the more "resourceful" ones among you may think it's a bright idea to just find a fully documented project on GitHub or somewhere else and just link evidence from that claiming it's your own. I suppose I don't have to tell you that OCR will easily find out if you copy and paste someone else's code but I can also assure you that it can be much harder creating a report based on a program that you didn't build or understand.

Your teacher should've already taught you how to program to some extent by the time you start your project. If you don't know a thing about programming then there are plenty of websites which can teach you how to code e.g. Codecademy is a fun way to learn how to program. 

Even if you're not the most advanced programmer you can still get a good mark in your project and make it sufficiently complex. You could use other the code of other programmers provided you reference it in your report. Obviously I am not saying just copy someone else's program and think it's ok just because you've referenced it, instead use other programs for inspiration and take sections of it if you need to. The important thing is to link all the evidence of YOUR program in your report.

The writing part of the coursework is relatively easy, just follow the basic structure of the exemplars (altering where you need to) and only write stuff that will give you marks as indicated in the marking criteria.

Links to Resources

Now that you have at least some idea of how your programming project should be, it's time for you to look at some exemplars and other resources. I found the exemplars by simply searching on Google and using OCR's website for the other resources. Not all of these exemplars are good, it's better to look at examples of good and bad projects to know what to focus on and mistakes to avoid. First the resources from OCR:

  1. Official OCR Programming Project PowerPoint Guide
  2. Official OCR Programming Languages Guide
  3. Official OCR Project Complexity Guide
  4. Official OCR Programming Project Sample Guide
Now the exemplars (as aforementioned, these are all for the old H047/H447 spec as there aren't any available for the new spec):

If you didn't understand a word of this post or just wanted to get to the important bits, the key things you need to understand to successfully complete your coursework is:

  1. Remember to choose "right" project, don't make the report unnecessarily long or cumbersome & focus on the development and programming side.
  2. Check out the OCR resources linked above guidance and advice regarding your coursework from OCR themselves.
  3. Study the exemplars above to know the do's and don'ts of the documentation.


A bit of a longer post than usual but that's all from me for today and as always...

Hope this helps!













Friday 25 August 2017

OCR A Level Computer Science Programming Project Guides

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

I (luckily) stumbled upon these resources in my old school's "N Drive" which is essentially the public drive accessible to students where teachers upload resources. Not a lot of teachers give up their resources to students so easily but the Head of Computer Science at my old school was quite generous to share tons of resources on that drive. 

Even though my school was terrible (bottom 10% of the most socioeconomically deprived schools in the UK) the Head of Computer Science would support us the best he could to ensure we got the grades we needed. And for that I am grateful.

Anyways, I plan to share as many as resources as I can on this blog (that aren't copyrighted of course) so everyone can benefit InShaAllah. The first of these is particularly useful, it is a guide/template of what you should include in your NEA (non examined assessment) or simply coursework for you simple folk.  This guide is split into 5 sections which give information on the following:

  1. Background & Investigation
  2. Analysis
  3. Design of the Solution
  4. Programming & Testing
  5. Evaluation of the Solution
Personally, I HATE COURSEWORK! It's not that I can't keep up with deadlines, it's just you have to do so much work for something that in most subjects counts for so little (except maybe Art or Design and Technology). Let's take A level Computer Science for example, the coursework is only worth 20% and yet your documentation alone is probably going to end up being 100+ pages just to get a good mark.

Coursework can be even more frustrating when your teacher doesn't like you so he/she marks your work in a biased fashion. I know some people might say that it's much easier than exams as there's far less pressure etc. but for me coursework is the bone of contention in every subject that includes coursework. At GCSE it was tolerable to an extent, but to think I'd have to put up with coursework again in A level was ridiculous.   

I didn't even realise A level Computer Science had a programming project until AFTER I chose it, but that still wasn't enough to make me quit my favourite subject. Anyway, enough ranting. Computer Science is a practical subject so it's only logical that it has coursework. Maybe I wouldn't hate it so much if I wasn't self studying the subject independently.

Back to the matter at hand, I think this resource was meant for the old H047/H447 spec but nevertheless it is still quite applicable to the new H046/H446 spec's coursework component as well. I'm also thinking of sharing my own tips for doing the project but I will blog those in the next post InShaAllah. The links are shown below:

Hope this helps!

Thursday 24 August 2017

The Ultimate OCR A Level Computer Science Dictionary (version 2.0)

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

Version 2.0 of "The Ultimate OCR A Level Computer Science Dictionary" is finally here! No idea why I use decimals for the version numbers since I am using and will most likely continue using only whole number increases for each iteration of this resource. 

I personally like to think H046/H446 spec as 80% theoretical knowledge and 20% practical knowledge. Disregarding the Programming Project, the 2 exams are heavily theory based (although arguably far less than the previous H047/H447 spec for OCR A level Computing). In the new linear exams, the questions are not as straightforward as in the old exams of the previous spec however, this shouldn't really be a problem for someone who knows their stuff. 

The practical side of the exams have changed quite a bit since the previous spec's exams. Programming is no longer limited to the "Programming Techniques & Logical Methods" equivalent of the linear exams. On the contrary, programming questions appear in both exams which does make things tougher for people who struggle with writing and reading algorithms. The best solution to improving these skills is simply practice, practice, practice. I do plan to make a resource regarding this as well InShaAllah but for the time being, past papers are by far the best resource for practicing your programming. 

Anyways, so what did I add in this version I hear you ask? Well, I thought numbering the number of definitions in this resource would be a great idea for someone trying to memorise X amount of definitions per day. There are precisely 237 definitions so if someone wanted to learn a few definitions a day, they could do so easily with the new numbering system.  

As aforementioned in the previous blog post regarding this resource, I have "tweaked" the wording of most of the definitions to make them more user friendly and now InShaAllah everyone can read and understand the definitions with ease. 

I also wanted to make a contents list so locating definitions regarding different topics easier to find (even though this resource is only 19 pages) but I think that will be included in version 3.0 InShaAllah. I have a few more ideas for version 3.0 to make this resource even better InShaAllah but I don't want to spoil it all in this blog post. With that said, don't expect version 3.0 to come out tomorrow, it will most likely come out in the next few days InShaAllah but for my next blog post I want to do something different.

Enough talk, time to deliver the goods, spill the beans and walk the walk so to speak.

Here's the link: The Ultimate OCR A Level Computer Science Dictionary (v2.0)

Hope this helps!

Wednesday 23 August 2017

(Almost) All The Algorithms You Need To Know For OCR A Level Computer Science

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

Third blog post in and for this one I am going to share my algorithm notes that are required for the Algorithms and Programming paper. I know I previously said I would share version 2 of "The Ultimate OCR A Level Computer Science Dictionary" but I realised I forgot to share "version 1.0" of my algorithm notes. 

These notes have all the algorithms that you need to be familiar with for the 2nd componont of the H046/H446 specification. I made these notes for memorising purposes however in the subject content clarification guide it does say that:

"we would recommend a general understanding backed up with practice implementing them, rather than trying to memorise code patterns."
This way is probably better but if you're in the same boat as me where you don't have a teacher and are self studying the A level then you may be better off trying to commit these algorithms to memory.

Another issue I came across while creating these notes is that the specification is very vague when it comes to the content you have to learn. For instance, instead of specifying which aspects of a topic you have to learn the spec will just state a key word such as "Standard algorithms". It doesn't mention if you have to know different variations of the algorithms or the Big O Notation/time and space complexities of the algorithms. It just mentions a single word and that's it. That's enough complaining from me now, let's get down to business. 

These notes contain 17 algorithms including:


  1. Linear Search
  2. Iterative Binary Search
  3. Recursive Binary Search
  4. Bubble Sort
  5. Insertion Sort 
  6. Merge Sort
  7. Quick Sort
  8. Dijkstra's Algorithm
  9. A* Search Algorithm
  10. Depth-first Graph Traversal
  11. Breadth-first Graph Traversal
  12. Algorithm For Outputting Linked List In Order
  13. Algorithm For Searching Item in Linked List
  14. Queue PUSH Operation
  15. Queue POP Operation
  16. Stack PUSH Operation
  17. Stack POP Operation
As you probably have noticed, there are more algorithms for data structures mentioned in the spec but these ones were the only ones I could find via past papers and certain other resources which I will make another blog post about InShaAllah. All the searching, sorting and path finding algorithms are included. 

You may not even find this resource useful but nonetheless, I believe it's a concise list of (almost) all the algorithms mentioned in the spec all in a single document.


Hope this helps!

P.S. I had to use Notepad to make these notes since indenting the algorithms was an absolute nightmare on Word. Apologies if this causes any inconveniences. 


Tuesday 22 August 2017

The Ultimate OCR A Level Computer Science Dictionary (version 1.0)

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!

For my second blog post i'm going to share my A level Computer Science notes (which are for OCR in case that wasn't already clear by the title) for the new H046/H446 specification. 

I plan to create resources for other exam boards as well as for GCSE Computer Science InShaAllah but first I will be making them for OCR since that's the one i'm doing, so for those not doing OCR you're just going to have to hang in there!

I initially just wanted to share the exact notes I used for my own independent study and leave it at that but I realised my notes won't make a lot of sense to anyone except me! Therefore, this will known as version 1 of "The Ultimate OCR A level Computer Science Dictionary" and I will update my notes to make them more "user friendly" in the next version by tomorrow InShaAllah.

As the Head of Computer Science at my old school always used to say about A level Computer Science: "A level Computer Science is just definitions". Now this isn't exactly 100% true but I have come to notice that most of the specification just wants you to know stuff along with the obvious practical side of programming and a bit of math here and there. Hence, these are made entirely from OCR past papers from both the old and new specifications. I used (almost) no random websites or textbooks because they may just contain a load of waffle that won't be worth any marks in the final exam. Certain other resources were used when information could not be found regarding a certain topic via the past papers which I will make another blog post about.

All you need to know that this (as the name dictionary implies) is essentially a list that consists of every single definition or key word/term or whatever you want to call them that is required for the H046/H446 specification. There are less than 250 definitions you need to know so if you memorised say, 2 a day from the start of school in September, you would have essentially learnt about 80% of the specification by January. The rest of the year you could dedicate to doing past papers and focusing more on the practical stuff (the math and programming). The more you memorise per day, the quicker you'll have learnt the theoretical part of the course! Obviously I am not insinuating in any way that this is the best resource out there, but what I am saying is that this resource is very concise and relevant to the spec which makes it a great revision tool (#stay humble).

But that's enough talk from me, I want to hear from you guys, please comment below on how you find this resource so I can use your feedback to create better resources in the future InShaAllah. 

Here's the link: The Ultimate OCR A Level Computer Science Dictionary (v1.0)

Hope this helps!





Monday 21 August 2017

Welcome To The Muslim CompSci's Blog: The Ultimate Computer Science & Technology Blog InShaAllah

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World! 

First off I have to apologise since my first blog post was actually supposed to come on AS/A level results day (yes, i'm currently an A level student) so I guess that already means my blog isn't the "ultimate computer science and technology blog" since I can't even post on time *sighs*. I actually created the blog on results day but couldn't figure out how to write my first blog post.

Anyway, now that that's out of the way allow me to officially introduce what this blog is going to be about, but before I can do that there's a few things you need to know about me. You already know that I am a Muslim A level student (who's most likely a guy since finding a girl in a computer science class is like spotting a celebrity, no offence meant) but so what? Why would an A level student who probably has tons of other things to do (by that I mean mostly studying) make a blog about computer science and technology? More importantly, why would you waste your time reading something written by someone who most likely has minimal blogging experience and should instead be doing what all students should be doing, STUDYING!

I created this blog for a couple of reasons:

  1. Firstly, I can't afford to pay to host a website because i'm poor (just kidding), I was actually in the process of building a website but then I realised not only do I have more experience blogging than running a website (I actually used to blog a lot), but blogs are quicker to update, easier to manage and are very flexible (and obviously free).
  2. All jokes aside, the main reason I wanted to start blogging about computer science and technology is so I can bolster my CV and personal statement so when I apply to university and jobs I stand out like a sore thumb, sorry err... I meant excellent candidate. This was also a joke obviously... or was it?
  3. OK i'm serious now, I'm doing A level Maths, Further Maths and Computer Science. Hmm, looks like a regular set of subjects right? WRONG! The difference between me and most people is most people aren't crazy enough to self study A level Computer Science independently (more on that later). Computer Science, in case you didn't know, is not an easy A level. On the contrary, it has one of the lowest number of students studying it and has one of the lowest pass rates out of all the subjects. Anyway, whilst doing a whole A level independently you realise a few things. This is probably just specific to computer science and perhaps a handful of other subjects but the resources out there are as scarce as water in a desert. And the few resources there are aren't very good or cheap, they're at high prices and at cheap quality which ultimately is the reason I wanted to make this blog. The function of this blog is primarily to provide good quality resources for A level computer science students which are for free (and for me to embed whatever thoughts pop into my head on the Internet occasionally). I know that this is easier said than done especially for a mere student like me but I am willing to do what it takes so every computer science student will be able access to free resources that will hopefully help them pass their exams InShaAllah.
I have a lot more to say but for my first blog post I guess this is OK. Just going to conclude by saying I honestly have no idea if anyone is even gonna read this, I have an array of ideas (geddit?) and know how I want this to work out in my head but implementing it all out is going to take some time... 

Anyways, this took like an hour somehow so i'm just going to leave it at that and end with a generic computer "sciencey" image.

*Insert mind blowing caption here*




A Day In The Life Of A King's College CompSci #93 (ADITLOAKCCS)

As Salamu Alaykum Wa Rahmatullahi Wa Barakatuh World!   9-11am Internet Systems lecture I know, I know. It’s been a while. In my admittedly...