🇵🇰 CSS Computer Science · flashcards

CSS Computer Science Software Engineering & Compiler Construction Flashcards

68 question-and-answer cards covering Software Engineering & Compiler Construction as it is examined in CSS Computer Science. 24 of them are printed below, taken from across the deck — no signup, no paywall on the preview.

68Cards in deck
24Free preview
20Syllabus topics
~225Chars per answer
FreePrice

24 sample cards from the Software Engineering & Compiler Construction deck

Sampled from the end of the deck, so these are different cards from the ones shown on the syllabus page.

  1. What is a formal technical review (FTR), and what is the most common example?

    A planned meeting of technical staff to evaluate a software work product, find defects, and verify conformance to standards. The most common example is the inspection (e.g., Fagan inspection); walkthroughs are a less formal variant.

  2. What is the CMMI and what are its maturity levels?

    Capability Maturity Model Integration: a process-improvement framework. Its five staged maturity levels are: (1) Initial, (2) Managed, (3) Defined, (4) Quantitatively Managed, and (5) Optimizing.

  3. What are formal specifications and formal methods?

    Formal specifications use mathematically-based notation (e.g., Z, VDM, B) to precisely describe what a system should do. Formal methods apply mathematical techniques to specify, develop, and verify software, enabling rigorous proof of correctness.

  4. In program correctness, what are preconditions and postconditions?

    A precondition is an assertion that must be true before a program/operation executes; a postcondition is an assertion guaranteed true after it executes (given the precondition held). Used in Hoare logic: {P} S {Q}.

  5. What is a loop invariant in program correctness proofs?

    An assertion (condition) that holds true before and after each iteration of a loop. It is used to prove the partial correctness of loops; combined with a termination argument it proves total correctness.

  6. Distinguish partial correctness from total correctness.

    Partial correctness: if the program terminates and the precondition held, the postcondition holds (does not guarantee termination). Total correctness = partial correctness PLUS a guarantee that the program terminates.

  7. What are the four types of software maintenance?

    Corrective (fixing faults), Adaptive (adjusting to changed environment/platform), Perfective (improving performance/adding enhancements), and Preventive (improving maintainability/reducing future faults).

  8. What is software evolution, and what does Lehman's first law state?

    Software evolution is the continual change of software after delivery to keep it useful. Lehman's first law (Continuing Change): a program used in a real-world environment must continually change or become progressively less useful.

  9. What is reverse engineering vs. re-engineering in maintenance?

    Reverse engineering analyzes existing software to recover its design/specifications (abstracting from code to higher-level representations). Re-engineering examines and alters a system to reconstitute it in a new form (restructure/improve) while preserving function.

  10. What is the COCOMO model and its basic effort equation?

    COnstructive COst MOdel (Boehm) estimates effort/cost from size. Basic COCOMO: Effort = a × (KLOC)^b person-months, where a and b depend on project mode (Organic: 2.4, 1.05; Semi-detached: 3.0, 1.12; Embedded: 3.6, 1.20).

  11. What is Function Point (FP) analysis used for?

    A size/functionality metric independent of programming language, computed from counts of external inputs, outputs, inquiries, internal logical files, and external interface files, adjusted by complexity factors — used for estimation and productivity measurement.

  12. In project management, what does a critical path in a network (PERT/CPM) represent?

    The longest path of dependent activities through the project network, which determines the minimum project duration. Activities on the critical path have zero slack/float; any delay in them delays the whole project.

  13. What is risk management in software projects, and its key activities?

    The process of identifying, analyzing, and controlling risks that threaten a project. Key activities: risk identification, risk analysis (probability and impact), risk prioritization, and risk mitigation/monitoring/management (RMMM).

  14. What is a Gantt chart used for in project management?

    A bar chart that schedules project activities against a calendar timeline, showing start/finish dates, durations, and overlaps of tasks — used to track progress and visualize the schedule.

  15. What is a translator, and name the three main types.

    A translator is a program that converts source code from one language to another. Three types: compiler (high-level to machine/target code, whole program), interpreter (executes source statement-by-statement), and assembler (assembly language to machine code).

  16. Compare a compiler with an interpreter.

    A compiler translates the entire source program to target code once, then runs it (faster execution, errors reported at compile time). An interpreter translates and executes line-by-line each run (slower, easier debugging, no separate object code).

  17. List the phases of a compiler in order.

    Lexical analysis (scanning), syntax analysis (parsing), semantic analysis, intermediate code generation, code optimization, and code generation — supported by the symbol table and error handler throughout.

  18. What does the lexical analyzer (scanner) do, and what does it output?

    It reads the source character stream and groups characters into meaningful tokens (lexemes), removing whitespace and comments. Output: a stream of tokens (e.g., identifiers, keywords, operators), and it builds entries in the symbol table.

  19. What does the syntax analyzer (parser) do?

    It takes tokens from the lexical analyzer and checks them against the grammar (usually context-free), building a parse tree / syntax tree and reporting syntax errors.

  20. What is the role of semantic analysis in a compiler?

    It checks the parse tree for semantic consistency — type checking, scope resolution, and ensuring operations are meaningful (e.g., matching declarations with uses) — and annotates the tree with type information.

  21. What is a token, lexeme, and pattern in lexical analysis?

    A token is a category/abstract symbol (e.g., identifier, number). A lexeme is the actual sequence of characters matched (e.g., 'count'). A pattern is the rule (often a regular expression) describing the form lexemes of a token take.

  22. Compare top-down and bottom-up parsing.

    Top-down parsing builds the parse tree from the root (start symbol) down to leaves, predicting productions (e.g., recursive descent, LL parsers). Bottom-up parsing builds from leaves (tokens) up to the root by reductions (e.g., shift-reduce, LR parsers).

  23. What is the symbol table in a compiler?

    A data structure used by the compiler to store information about identifiers (names, types, scope, memory location, etc.). It is created and maintained across phases and consulted for semantic checks and code generation.

  24. What is intermediate code, and give a common form.

    A machine-independent representation generated between front-end and back-end, easing optimization and retargeting. A common form is three-address code (e.g., t1 = a + b), other forms include quadruples, triples, and abstract syntax trees.

What this deck covers

The Software Engineering & Compiler Construction deck follows the CSS Computer Science Software Engineering & Compiler Construction syllabus — 6 chapters and 20 topics — so questions land on material that is genuinely examinable rather than trivia around it. That works out to roughly 11.3 cards per chapter.

Answers are written to be recallable, not just readable — averaging about 225 characters, which is long enough to carry the reasoning and short enough to say out loud.

A deck like this earns its keep on the second and third pass. Read the syllabus first so you know the shape of the subject, then use the cards to find the specific facts that have not stuck.

Software Engineering & Compiler Construction flashcards FAQ

How many Software Engineering & Compiler Construction flashcards are in this CSS Computer Science deck?

68 cards. This page previews 24 of them, sampled evenly across the deck so you can judge the difficulty before installing anything.

Are these CSS Computer Science flashcards free?

Yes. The preview here is free to read with no signup, and the full 68-card deck is free inside the Examius app.

What do the Software Engineering & Compiler Construction cards cover?

They follow the CSS Computer Science Software Engineering & Compiler Construction syllabus — 6 chapters and 20 topics — so the questions track what is actually examinable.

How should I use these flashcards?

Read the syllabus first so you know the shape of the subject, then drill the deck. Examius schedules each card with spaced repetition, so cards you keep missing come back sooner and ones you know drift further apart.