BCS Written Computer Science study materials
BCS Written Computer Science study resources

BCS Written Computer Science: Programming Languages and Software Development

BCS Written Computer Science · Work through your exam, one topic at a time.

All guide sections

Programming Languages and Software Development

Core concepts

Understand the translation pipeline: source code, lexical analysis, syntax analysis, semantic analysis, intermediate code, optimisation, and code generation, plus the difference between compilers and interpreters. Know programming paradigms (imperative, object-oriented, functional, logic), and OOP principles: encapsulation, inheritance, polymorphism, and abstraction. Be comfortable with data types, strong versus weak typing, static versus dynamic binding, scope and lifetime of variables, parameter passing (by value, by reference), recursion versus iteration, and exception handling. Familiarity with control structures, arrays, pointers, and the idea of a virtual machine or bytecode helps.

Traps

Questions frequently blur compilation and interpretation: a compiler translates the whole program before execution, an interpreter executes statement by statement. Do not confuse overloading (same name, different signatures, resolved at compile time) with overriding (subclass replaces a superclass method, resolved at run time). Watch for questions on pass-by-value versus pass-by-reference effects on the caller's variable, and on why recursion risks stack overflow.

Worked example

Consider swapping two integers. With pass-by-value, the function receives copies, so the caller's variables are unchanged. With pass-by-reference, the function accesses the originals and the swap persists. Rule of thumb: whenever a question shows a function modifying a parameter and asks for the caller's final values, first identify the parameter-passing mechanism, then trace each variable.