STUDY GUIDE · GKU 8

Software fundamentals: from problem to efficient program study guide (Information Technology)

An IT specialist writes software to automate, connect and report: a script that checks forty servers every night, a web form that books lab rooms, a tool that merges two spreadsheets. This unit covers how such programs are made and why they are fast or slow. Problem solving and program development covers breaking a problem down and modelling it, building the program in small tested iterations, documenting it for users and maintainers, the tools that catch errors early, and the version control, hosting and deployment services every team now works through. Data structures and algorithms covers the strings, lists, maps and sets that languages provide, the step from a specification to an algorithm, abstract data types such as the stack, queue and priority queue, recurrence relations for recursive programs, and the formal reasoning (Big-O, loop invariants) that says how an algorithm's cost grows and why its answer is right.

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 8.1 · Problem solving and program development

  1. Problem solving: abstraction, decomposition and modelling

    How to turn a vague IT problem into a design: abstraction keeps what matters and hides the rest, decomposition splits the problem into parts with clear interfaces, and modelling represents the problem in a diagram or data structure that can be checked before any code exists.

  2. Program development as an iterative process

    Building a program in short cycles of plan, code, test and review, each ending with a working version; why compiling is not finishing; how to judge a version by its behaviour on chosen inputs; and how feedback and regression tests drive the next cycle.

  3. Program documentation and user feedback

    The layers of documentation a program needs (comments, docstrings, README, API reference, design rationale, user guide, changelog), who reads each, how documentation exposes defects, and how user feedback is turned into a change and recorded.

  4. Programming tools

    The tools between source text and a working program: editors and IDEs, compilers and interpreters, linters, formatters and type checkers, debuggers, test runners, profilers, package managers with dependency manifests and virtual environments, and which tool catches which kind of error.

  5. Version control, project hosting and deployment

    How Git records history (working tree, staging area, commits, branches), what merge, rebase, amend, revert and push do to the commit graph, how a hosting platform adds pull requests, review and CI, and how continuous deployment, configuration, versioning and rollback put a program into service.

SKU 8.2 · Fundamentals of data structures and algorithms

  1. Built-in, library and programmer-defined data structures

    Strings, lists, tuples, maps (dictionaries) and sets as languages provide them, the library structures (deque, Counter, heap) that fill the gaps, and records or classes defined by the programmer; what each operation costs and why, and how to choose a structure from the operations a problem needs.

  2. Algorithmic program development

    From a problem statement to a working algorithm: specify inputs, outputs and conditions, solve small cases by hand, start from a direct method and refine it, write pseudocode, then code and trace it; with the classic building blocks (accumulate, find the maximum, linear and binary search, bubble sort) and their operation counts.

  3. Abstract data types

    An abstract data type as a set of values with operations and a contract, independent of how it is stored; the stack, queue, priority queue, set, multiset and map; choosing one from the guarantees a problem needs; and how the implementation (array, linked list, binary heap) sets the cost of each operation.

  4. Recurrence relations

    Writing the cost of a recursive program as a recurrence, solving it exactly by unrolling and by the recursion tree, checking the result by induction, the five forms that cover most exam questions, and the master theorem for divide-and-conquer.

  5. Formal reasoning on the efficiency and correctness of an algorithm

    Counting operations and expressing growth with Big-O, Omega and Theta (with the constants that prove a bound), the rules for sequences, nested and logarithmic loops, best, worst and average cases, predicting run time when the input grows, and proving a loop correct with an invariant.

MORE INFORMATION TECHNOLOGY GUIDES

All study guides

Read the full guide beside your practice questions.

Open the app