Netherlands VWO 4 (bovenbouw, 2e fase) Computer Science
Chapters: 2
1. Skills
General skills · Scientific skills · Computing-specific skills
- Research Skills: From a Question to a Finished Project – Research is a careful way of finding an answer. You ask a clear, focused question, plan how to answer it, find information and check that each source can be trusted, collect and analyse your own data, draw a conclusion that the evidence supports, and share it while crediting every source you used.
- The Design Process: From Problem to Product – The design process is a loop of steps designers use to solve a real problem for real people: investigate the need, define it in a brief and a measurable specification, generate many ideas, build a prototype, then test and evaluate it against the specification. Whatever fails sends you back round the loop. This repeating is called iteration, and it is how almost every product, app, building and artwork is improved.
2. Foundations
Algorithms · Data structures · Automata · Grammars
- Introduction to Problem Solving – Problem solving on a computer has stages: analyse the problem (inputs, outputs, rules), develop an algorithm (a finite, clear, ordered set of steps), code it in a programming language, test it with different inputs, and debug (find and remove errors). An algorithm can be shown as a flowchart (oval = start/stop, parallelogram = input/output, rectangle = process, diamond = decision, arrows = flow) or as pseudocode (structured plain English). Decomposition breaks a big problem into smaller sub-problems that are solved separately and then joined.
- Data Structures: Arrays, Lists, Stacks, Queues and Trees – A data structure is a way of organising data in memory so a program can use it well. Arrays keep items in numbered boxes for instant access by index. Linked lists chain nodes with pointers, so inserting is easy. Stacks work last-in-first-out, queues first-in-first-out. Dictionaries find values by key, and trees store data in levels so searching is fast. Choosing the right structure makes programs faster and simpler.
- Finite State Machines and Formal Languages – A finite state machine (FSM) has a fixed set of states, an alphabet of input symbols, a start state, a transition function that says which state comes next for each symbol, and (for an acceptor) a set of accepting states. It reads an input string one symbol at a time; if it ends in an accepting state the string is accepted. A Mealy machine also gives an output on each transition. The strings an FSM accepts form a regular language, which can also be described by a regular expression. Languages with nesting (like brackets) need more power: they are context-free and are written with BNF rules or syntax diagrams.