STUDY GUIDE · GKU 9
Programming and algorithms study guide (Computer Engineering)
This unit is programming as a computer engineer needs it: close enough to the machine to know where every variable lives, and abstract enough to design classes and choose algorithms. The first part covers how a program is built and run, functions and parameter passing in C, loops, conditionals and bit manipulation, then object-oriented design and the principles of information hiding, coupling and cohesion. The second part covers the data structures and algorithms the exam keeps returning to — arrays, lists, stacks, queues, trees, hash tables, sorting and searching — and how to measure them with Big-O, ending with the problems no one knows how to solve quickly. Most questions are traces and counts, so every section has worked ones.
Structured by the official ETEC subject standard for this topic: every listed topic and learning outcome, with formulas, figures and worked examples. The full sections are available to members in the app.
SKU 9.1 · Programming fundamentals and paradigms
From source code to a running program
The build chain (preprocess, compile, assemble, link), how the loader starts a process, the memory regions a C program occupies, and which stage reports which kind of error.
Functions, parameters and arguments
Parameters versus arguments, pass by value and by pointer in C (and by reference in C++), why arrays arrive as pointers, const, out-parameters, and what a call costs on the stack.
Iteration, conditionals, bit manipulation and problem solving
Loops and conditionals as the tools of every algorithm, how to count a loop's iterations exactly, the bitwise idioms embedded code lives on, a method for designing, testing and debugging small programs, and the same task written imperatively, functionally and with objects.
Object-oriented design: classes, overloading and overriding
Turning a problem domain into classes with state and behaviour, inheritance and polymorphism in C++, and the difference between overloading (chosen at compile time) and overriding (chosen at run time through virtual functions).
Information hiding, coupling, cohesion and data abstraction
Why modules should hide their design decisions, how to judge a module by its cohesion (what holds it together) and its coupling (what ties it to others), and how an abstract data type separates an interface from its representation — in C as well as C++.
SKU 9.2 · Data structures and algorithms
Fundamental data structures and their library forms
Arrays, dynamic arrays, linked lists, stacks, queues and circular buffers, heaps, trees and graphs: what each costs per operation, what it is for in an embedded or systems program, and which C++ standard-library container provides it.
Building and searching: binary search and search trees
Binary search in a sorted array, the binary search tree and its operations, why its cost is the tree's height, how insertion order can ruin that height, and how balanced trees (AVL, red-black) keep searches logarithmic.
Hash tables: hashing, collisions and load factor
How a hash function turns a key into a slot index, why collisions are unavoidable, how separate chaining and open addressing (linear probing, double hashing) resolve them, how the load factor sets the expected cost, and when to resize.
Designing algorithms: brute force, greedy, divide and conquer, sorting
The standard design strategies — brute force, greedy, recursion, divide and conquer — with the sorting and searching algorithms that illustrate them, and how to choose an algorithm from an application's requirements: size, memory, stability, worst-case guarantees.
Algorithmic complexity: Big-O, recurrences and NP-completeness
The asymptotic notations , and and how to prove them, time and space complexity of loops and recursion, the master theorem, what the growth classes mean in seconds, and the class of NP-complete problems with its standard examples.
MORE COMPUTER ENGINEERING GUIDES
- Computer architecture and organization study guideGKU 2 · 10 sections
- Circuits and electronics study guideGKU 1 · 8 sections
- Digital design study guideGKU 3 · 10 sections
- Systems and project engineering study guideGKU 8 · 6 sections
- Computer networks study guideGKU 5 · 9 sections
- Signal processing study guideGKU 7 · 8 sections
- Embedded systems study guideGKU 4 · 8 sections
- Systems resource management study guideGKU 6 · 8 sections