Understand the idea. Trace what happens. Write it yourself.
Use this guide to choose a starting point and turn a lesson into something you can explain and solve. Work through one topic at a time; you do not need to finish every course before you begin practising.
Start with how a program works, then learn variables, input, decisions and loops. Choose one language first and write small programs before moving to larger topics.
Open the correct lab and match the experiment title to your syllabus. Read the aim and expected input before opening the solution. Revisit the linked background if the program uses an unfamiliar concept.
Choose a topic you have studied, solve a related program, and explain your result. Move to data structures when you can use arrays, functions and pointers with confidence.
Identify the problem, the input and the required output. Read the explanation before memorising syntax. If a term is unfamiliar, review the “Before you start” links below the lesson.
Predict before you run
Choose a small input and write down the expected output. For a loop, track the counter and one changing variable. A prediction gives you something concrete to compare with the result.
Trace one step at a time
Where a tracer or visualisation is available, move through a few steps and explain each change. Pause when a condition changes the path. If there is no tracer, make a small table on paper with the same variable names.
Write without looking
Close or move away from the solution and build your own version. If you get stuck, reread only the part that explains the missing idea, then try again.
Test and explain
Try a normal input and a boundary case. Compare the result with your prediction. Explain why the algorithm works, what can go wrong, and how its time and space use grow.
Continue with a purpose
Use “Practise this” to apply the concept or “Learn next” to continue. Before leaving, write one sentence about what you learned and one question you still have.
03
UNDERSTAND THE EXPERIMENT
Use lab solutions as a learning aid
Before writing the code
Read the aim and identify the operations you must implement.
Follow the algorithm and flowchart. Check what each decision means and where the loop returns.
Walk through one sample input by hand.
List any input limits or assumptions stated in the solution.
Before calling it finished
Run your own implementation and compare the sample output.
Test relevant boundaries: empty input where permitted, one element, duplicates, a missing value or an invalid operation.
Read the common mistakes and the explanation of complexity.
Answer the viva questions aloud before revealing the answers.
Enter a topic such as “binary search.” Narrow the results by course or language and content type. Check the result label so you open the explanation, lab or program you intended.
Reading options
On supported lesson and lab pages, open “Reading options” near the top. Enlarge text or wrap long static code lines. Reset restores the original display. These preferences are remembered in the current browser.
Flowcharts and tracers
A flowchart explains the control flow; a tracer shows how one input moves through the code. Compare both with the actual conditions and variable updates. Availability varies by page.
Select the matching language, enter a complete program and provide input if it reads from standard input. For Java in this compiler, use public class Program. Read the first diagnostic before changing unrelated code.
Learning-path links
Use “Before you start” for helpful background, “Learn next” for a connected topic and “Practise this” for an existing task. These are suggestions; they do not lock lessons.
Progress and account features
Public lessons can be read without creating an account. Some quiz, placement and progress features may ask you to sign in. Browser-based preferences and saved content can be lost when browser data is cleared.
05
TURN A MISTAKE INTO THE NEXT STEP
When you get stuck
The program runs, but the answer is wrong
Reduce the input to the smallest case that still fails. Compare the expected and actual result, then trace the first variable that becomes incorrect. Recheck loop boundaries, arithmetic types and the conditions that choose a branch.
I can follow the solution but cannot write it myself
Write the steps in plain language first. Implement just one operation, test it, and add the next. Afterwards, practise the same idea with different input so you are recalling the method rather than copying the sample.
A link, explanation or sample output seems incorrect
Use “Report an issue” below the learning content. The email draft includes the page address. Describe the section, input or steps, expected result and actual result. Send the email yourself after checking the draft. If an email app does not open, use the Contact page.
How do I know I am ready for the next topic?
Try explaining the concept without reading the page. Solve a small variation, test a boundary case and answer a related viva question. If one part is still unclear, revisit that part before moving on.
Start with one useful step today
Choose a topic, predict one result and write one small program. Build your confidence through work you can explain.