WBBSE Madhyamik Computer Application (Optional) common mistakes
WBBSE Madhyamik Computer Application (Optional) · Understand the traps and how to avoid them.
When converting between binary, octal, decimal and hexadecimal, the candidate starts grouping digits from the left end instead of the right, so 110101₂ is read as 11|010|1 and reported as 321₈ rather than 65₈.
Textbook grouping rules ('three bits per octal digit, four per hex digit') are memorised as phrases without the anchor direction, and left-to-right reading is the habit drilled by ordinary written arithmetic. The candidate also forgets to pad the most significant group with leading zeros after grouping from the right.
What to do instead
Practise a fixed ritual: mark the radix point, group outward from it (leftward for the integer part, rightward for the fraction), pad the outermost group with zeros, then substitute. Do ten conversions each way and check by converting back to decimal; if the round trip fails, the grouping was wrong.
The candidate states that the decimal number −5 is stored in a byte as 10000101 (sign-magnitude) when the question asks for two's complement, or computes the two's complement by flipping bits but forgetting to add 1, giving 11111010 instead of 11111011.
Three representations (sign-magnitude, 1's complement, 2's complement) are taught close together and their procedures blur; the '+1' step is the easiest to drop because it looks like a rounding adjustment rather than part of the definition.
What to do instead
Write the three-column table (value, sign-magnitude, 2's complement) for −1 to −8 once by hand and verify each row by adding the pattern to its positive counterpart to get 00000000. Then use the shortcut 'invert and add one' only after confirming the bit width stated in the question.
In an algorithm or flowchart question, the candidate writes a loop that never terminates because the update statement is missing or placed outside the loop body, or draws a flowchart with two 'Yes' branches leaving a decision box and no 'No' path.
Candidates transcribe the problem statement's nouns into steps without simulating execution; flowcharts are drawn as decoration rather than as a control structure, and the decision diamond's two exits are treated as optional labels.
What to do instead
After writing any loop, dry-run it with a small input and write the value of the control variable after each pass in a trace table until it exits. For flowcharts, enforce the rule that every decision diamond has exactly one labelled 'Yes' and one labelled 'No' arrow, and every loop has a backward arrow to a named condition.
The candidate confuses = with == in conditions (writing if (x = 5) instead of if (x == 5)), or writes an assignment where a comparison is intended inside a while condition, and cannot explain why the program behaves oddly.
In mathematics the equals sign is a comparison; in C and similar languages it is assignment. Beginners read code aloud as mathematics and the compiler's acceptance of the assignment expression hides the error.
What to do instead
Adopt the habit of reading '==' as 'is equal to' and '=' as 'becomes'. When a condition looks suspicious, rewrite it as a constant on the left (5 == x) so an accidental assignment becomes a compile error, and test the branch with two inputs, one that should be true and one that should be false.
The candidate declares an array of size n but fills or reads index n, or loops with for(i = 1; i <= n; i++) over a zero-based array, producing an off-by-one error or a runtime fault at the last element.
The mathematical convention of counting from 1 conflicts with zero-based indexing, and the loop bound is copied from the problem statement's 'n items' rather than derived from the declared size.
What to do instead
Always write the valid index range as a comment beside the declaration (for example, indices 0 to n−1) and derive the loop as for(i = 0; i < n; i++). Trace the first and last iteration explicitly on paper before running.
The candidate treats a string as a single value: comparing two strings with == and expecting alphabetical ordering, or trying to add a character to a string with + when the language requires a library function, and cannot say what the string's length includes.
Strings look like numbers in print, so the operators that work on numbers are assumed to work on them; the distinction between a character, a character array and a string object is not consolidated, and the terminating null or length property is invisible in output.
What to do instead
Learn one language's string rules concretely: how length is obtained, how characters are indexed, how comparison is done, and what the terminator is. Then write three tiny programs (reverse, count vowels, compare two names) and predict the output before running.
Asked to classify software, the candidate labels a word processor as system software or calls an operating system an application, and describes RAM as 'permanent storage' or ROM as 'lost when power is off'.
The system/application boundary is taught with examples rather than a criterion, and volatile/non-volatile is memorised as a pair of words without a physical picture of what happens on power loss.
What to do instead
Use one test question: does this program manage the machine itself or help the user do a task? Then place each example on a labelled diagram (hardware, OS, utility, application). For memory, state the consequence of switching off the power for each type, and check that RAM loses contents while ROM and secondary storage retain them.
The candidate explains that 'the Internet is the same as the World Wide Web', gives an IP address as 'a website name', or cannot distinguish a URL from a domain name and a search engine from a browser.
Everyday language collapses these terms ('go on the internet', 'open Google'), and school examples are almost always web browsing, so the underlying network layer is never separated from the service running on it.
What to do instead
Build a layered picture: physical link, Internet (IP addresses, packets, routers), then services (web, email, file transfer). For one real request, write the chain browser → domain name resolution → IP address → server → page, and label which part is the Internet and which is the web.
On cyber safety items the candidate gives a generic answer such as 'be careful online' instead of naming the specific mechanism: not recognising a phishing message by its mismatched link and urgency cues, reusing one password everywhere, or sharing a one-time password with a caller claiming to be from the bank.
Safety topics are revised as moral advice rather than as recognisable patterns, and the candidate has no checklist to apply under exam time pressure.
What to do instead
Memorise four concrete attack signatures with a countermeasure each (phishing: check the actual link and never act on urgency; weak/reused passwords: long unique passphrase plus a manager; OTP theft: never share a code; oversharing: review privacy settings). For each, write one sentence naming the cue and one naming the response.
In the practical/project component the candidate submits a program that runs on their machine but has no comments, no sample input/output, and a variable named a, b, c; or the project report describes the topic without showing the actual work done, the tools used and the result obtained.
The practical is treated as a formality at the end of the year; the candidate writes code to satisfy themselves rather than a reader, and documentation is left until the last week, so evidence of process (design, testing, corrections) is missing.
What to do instead
Keep a dated logbook from the first week: problem statement, algorithm, code with comments, test inputs and outputs, and errors fixed. Before submission, have a classmate run the program from the written instructions alone; any step they cannot follow is a missing line in the report.