The Student Room Group

how do i revise for computer science GCSE??

especially for the programming paper. all the coding and stuff
For programming you need to learn problem solving; the best way to do that is to practise by challenging yourself to solve some problems that are a good fit for your ability, and keep on trying progressively more complicated problems (using whichever programming language you are most familiar with - remember the language is just a tool, so if you can learn to solve problems with that language, then the same principles and methods apply to any other language, including pseudocode, or flowcharts.)

Try some of these: https://www.ocr.org.uk/Images/202838-20-code-challenges.pdf

There's a couple of worked examples to show how to approach some of these problems by breaking them down into steps:

Remember that no matter how big, difficult or complicated the problem, you always want to follow the same overall method:

1.

Take time to understand the problem and explain it clearly using your own words in plain, simple English. This might be harder than it sounds, if so, that's good because it's forcing you to think about the problem properly - you'll need to do that before you can write any code. Bottom line is that you can't solve a problem unless you really, fully understand what that problem is really about and what it means -- i.e. explain your logic and your thinking. It might help to draw it out on paper so that you've got some kind of visualisation of exactly what you're trying to solve. You need to be precise in your use of language to describe the problem. Imagine how you would word if you were trying to explain to a very young child who knows nothing at all about the world. (you might realise that there are holes in your logic and your understanding, so you may end up needing to do a bit more thinking or check on Google on the things you thought you understood)

2.

Write down one or more worked examples using some simple inputs/data, and expected result/output and then describe the steps -- i.e. describe your scenario - such as "Given the user inputs 'X', then which steps will cause the program to output 'Y'?". It's a good idea to start with the simples/easiest case first, this will give you a place to start, if you can't solve the whole problem for every case immediately, try at least solving a really simple problem or a sub-set of the problem. This feeds into the next step

3.

Break the problem down and write code solutions for each problem, one-at-a-time. Every big and complicated problem is something you can always break down into smaller and simpler problems (e.g. "ask the user" or "print on the screen" or "add item to a list" etc). You might write multiple smaller, separate programs which only solve one thing or solve a simple case. For example, if the problem requires you to do some 'thing' many times, try figuring out how to do it once or twice first, and you can sort out the repetition later. Or maybe involving simpler inputs which don't need any special rules or logic, and no edge-cases or boundary conditions. Having a small program which only solves one small part of the problem is an important step forward. Once you've done that, look at next-smallest or next-easiest problem. The complete solutions usually doesn't happen instantly, you will often need to solve lots of small problems on their own and then bring those small problems together at the end.


Don't worry if your first attempt(s) at a solution seem inelegant, repetitive, messy, inefficient - that's normal; you can get something working first - no matter how "bad" the solution is, a working solution is better than nothing. Hopefully you will start to see obvious patterns and redundant bits of code which could be generalised into something a bit less copy+paste'ish for something more elegant, and maybe something that covers more cases too.


Lastly, The most important thing is to practise; after a while it will all just "click". If you get through the 20 coding challenges above, try some of these too:
https://www.ocr.org.uk/Images/260930-coding-challenges-booklet.pdf
(edited 4 years ago)
Original post by winterscoming
For programming you need to learn problem solving; the best way to do that is to practise by challenging yourself to solve some problems that are a good fit for your ability, and keep on trying progressively more complicated problems (using whichever programming language you are most familiar with - remember the language is just a tool, so if you can learn to solve problems with that language, then the same principles and methods apply to any other language, including pseudocode, or flowcharts.)

Try some of these: https://www.ocr.org.uk/Images/202838-20-code-challenges.pdf

There's a couple of worked examples to show how to approach some of these problems by breaking them down into steps:

Remember that no matter how big, difficult or complicated the problem, you always want to follow the same overall method:

1.

Take time to understand the problem and explain it clearly using your own words in plain, simple English. This might be harder than it sounds, if so, that's good because it's forcing you to think about the problem properly - you'll need to do that before you can write any code. Bottom line is that you can't solve a problem unless you really, fully understand what that problem is really about and what it means -- i.e. explain your logic and your thinking. It might help to draw it out on paper so that you've got some kind of visualisation of exactly what you're trying to solve. You need to be precise in your use of language to describe the problem. Imagine how you would word if you were trying to explain to a very young child who knows nothing at all about the world. (you might realise that there are holes in your logic and your understanding, so you may end up needing to do a bit more thinking or check on Google on the things you thought you understood)

2.

Write down one or more worked examples using some simple inputs/data, and expected result/output and then describe the steps -- i.e. describe your scenario - such as "Given the user inputs 'X', then which steps will cause the program to output 'Y'?". It's a good idea to start with the simples/easiest case first, this will give you a place to start, if you can't solve the whole problem for every case immediately, try at least solving a really simple problem or a sub-set of the problem. This feeds into the next step

3.

Break the problem down and write code solutions for each problem, one-at-a-time. Every big and complicated problem is something you can always break down into smaller and simpler problems (e.g. "ask the user" or "print on the screen" or "add item to a list" etc). You might write multiple smaller, separate programs which only solve one thing or solve a simple case. For example, if the problem requires you to do some 'thing' many times, try figuring out how to do it once or twice first, and you can sort out the repetition later. Or maybe involving simpler inputs which don't need any special rules or logic, and no edge-cases or boundary conditions. Having a small program which only solves one small part of the problem is an important step forward. Once you've done that, look at next-smallest or next-easiest problem. The complete solutions usually doesn't happen instantly, you will often need to solve lots of small problems on their own and then bring those small problems together at the end.


Don't worry if your first attempt(s) at a solution seem inelegant, repetitive, messy, inefficient - that's normal; you can get something working first - no matter how "bad" the solution is, a working solution is better than nothing. Hopefully you will start to see obvious patterns and redundant bits of code which could be generalised into something a bit less copy+paste'ish for something more elegant, and maybe something that covers more cases too.


Lastly, The most important thing is to practise; after a while it will all just "click". If you get through the 20 coding challenges above, try some of these too:
https://www.ocr.org.uk/Images/260930-coding-challenges-booklet.pdf

thank u soo much. the pdfs u sent me with the practise questions r sooo helpful
Original post by yurgirln33s
thank u soo much. the pdfs u sent me with the practise questions r sooo helpful

Glad that's helpful! good luck :smile:
Original post by yurgirln33s
thank u soo much. the pdfs u sent me with the practise questions r sooo helpful

GOOD LUCK! I am only in year 10 and I chose computing and its so fricking hard for me but good luck :smile:
Original post by justrandomuser
GOOD LUCK! I am only in year 10 and I chose computing and its so fricking hard for me but good luck :smile:

thank you. yhh its kinda hard but only the programming bit. the rest is some easy ****. XD

Quick Reply

Latest

Trending

Trending