Section 2 Problem Solving and Theory of Computation Flashcards
what is software?
a name given to any program written for the computer
what are the 5 stages of writing software?
- analysis
- design
- implementation
- testing
- evaluation
what is analysis?
the requirements and goals of the project must be established
what is design?
data structures will be specified, algorithms, user interface, screen designs and reports will be designed
what is implementation?
the program code is written
what is testing?
the whole system must be tested for errors
what is evaluation?
the system is evaluated according to given criteria
what is computational thinking?
the ability to thinl logically about a problem and apply techniques for solving it
what is structured programming ?
aims to improve the clarity and maintainability of programs
what are the 3 basic programming structured used in structured programming?
- sequence
- selection
- iteration
what is a block structured language ?
a block is a section of code consisting of one or more statements
what are the advantags of structured / modular programming?
- individual modules can be seperatly tested
- modulues can be kept in a moduel libary and reused in other programs
- larger programs can be split into modules that are easier to read, debug and maintain
- several programmers in a team can work on seperate modules shortening developement time for a large project
what is a hierarchy chart?
a tool for representing the strucure of a program , showing how the modules relate to each other to form a complete solution
what are the limitations of a hierarchy chart?
does not show detailed program structures required in each module
what is an algorithm ?
a set of step by step instructions used to complete a task
what is a sorting algorithm?
an algorithm that is used to re order nodes in an array into a specific/given order
what is bubble sort ?
- go through the array, comparing each item with the one next to it. if its greater swap them
- the last item in the array will be in the correct place after the first pass
- repeat n-1 times , reducing by on each pass, the number of items to be examined
what is the purpose of testing?
to try and uncover undetected errors
what is a normal test?
when we test normal data within the range that you would expect and of the data type you would expect
what is boundary testing?
this is when data at the ends of the expected range or just either side of it
what is erroneous testing?
data that is either outside an expected range or is the wrong data type
what is computational thinking?
- formulating the problemas a computational probelm
- trying to construct an algorithm to solve the problem
what is abstratcion?
removing un neccessary details so that you are primarily focused on the problem
what is procedural abstratcion?
using a proceduer to carry out a sequence to carry out a sequence of steps for achieving some task
what is information hiding?
where data is not directly accessible and can only be accessed through defined procedures / functions
what is decomposition?
breaking down a complex problem into multiple smaller problems which are individually easier to solve
what is problem abstratcion?
removing details until the problem is represented in a way that is possible to solve because it reduces to one that has already been solved
what is automation?
building and putting into action models to solve problems
what is a finite state machine?
model of computation used to design computer programsand sequential logic circuts
usages of finite state machines
used in modelling the design of hardware digital systems, compilers and network protocols