222-computational-methods Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

Computational thinking

A
  • The ability to think systematically about a problem and apply techniques for solving it
  • techniques: data mining, heuristics, visualisation, backtracking, pipelining, performance modelling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

data mining

A
  • looks through vast quantities of unconnected data, finding a correlation between data that may not be obvious
  • There may no predetermined matching criteria
  • Pattern matching algorithms/brute force approach possible with high speed computers/ big data analysis software
  • parallel processing to speed up
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

data mining applications

A
  • increasing response rates/sales/profits
  • improve marking
  • target more accurately to customer needs
  • anticipating resource demands
  • detecting fraud and cybersecurity issues
    -finding hidden connections between seemingly unconnected events,
  • predict n plan future trends/events
  • used for business modelling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Limitations of data mining -

A
  • powerful computers and vast processing requirements
  • privacy concerns, personal data, GDPR, transparency, consent
  • misuse
  • inaccurate information can produce false results
  • bias
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Challenges in producing a solution to a computational problem

A
  • algorithm must be correct and work for all possible inputs
  • algorithm must be efficient
  • algorithm can solve it within finite steps in realistic time
  • limitations: hardware, memory & time requirement, big o complexity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Programming standards why

A

for modules to be reusable they need to conform to these so it’s easy to use for other programmers + maintainability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Programming standards what

A
  • naming conventions: consistent, understandable names. Easier for developers to know their purpose, and reduce chance of duplication (reusing). camel Case variables, Pascal Case classes, upper case constants
  • clear documentation: preconditions, classes and functions expected behaviour comments, explain nonobvious logic
  • code length: function no longer than a page: reduce complexity, focused, manageable
  • each function single-entry points with exit point: consistent starting execution (e.g if statement making it nest start at different places violates), and not premature/inconsistent multiple points of return e.g return in loops
  • Restrict variable scope - avoid global, local isolation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Backtracking when

A
  • each decision leads to new choices (generation)
  • more than one sequence could be a solution (combinations & permutations, crosswords, puzzles)
  • pathfinding (maze)
  • uncertainity on optimal (maximise/minimise, allocation, exploration)
  • searching/traversing (graphs/trees)
  • predict outcomes (games)
  • constraint satisfication (sudoku)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Backtracking

A

recursive algorithm.
takes one path as far as possible. when node does not have any nodes to visit (dead end)/ abandons each partial success if determined that it cant be completed
returns to previous node (decision point) and checks for further nodes to visit/aternative solution
- Repeats until solution is found.
- suitable for route problems, depth first search

Returning to a previously successful result to find an alternative solution
Abandons each partial success as soon as it determines that the partial solution cannot possibly be completed

  • finds all (or some) solutions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Heuristics

A
  • problem is complex to that perfect solution would be very difficult/impossible to find
  • So can get a solution that is good enough, no guarantee of being most optimum for practical purposes
  • purpose: Finding a reasonable solution in a reasonable time.
  • may involve using extra knowledge to reduce time complexity
  • approx solution to intraceable problems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Heuristics example

A

A* algorithm.
Crow’s path heuristic
- difficult to calculate all the possible routes from gas flow to London on a car sat nag so pathfinding algorithm is led in the general direction to save time and processing power. Or when crossing the road: don’t gather all data about vehicle speeds, we scan the data most likely to help us and make a judgement based on experience

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

performance modelling

A
  • ## computational modelling (simulation) using mathematical approximation and data provided to test system behaviour (performance) and capabilities in scenarios/workloads-reduce extensive true performance testing reliance (expense, time, no loss, safer)
  • testing how system will respond to normal (load), and heavy load (stress) and traffic/weaknesses/conditions
  • validation, early error detection, risk management, resource allocation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

enumeration algorithm

A

an algorithm that performs an exhaustive search, attempts all solutions until correct one is found

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

theoretical approach

A

representing a problem using mathematical equations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

simulation

A

using computer system to model real life situation to attempt to understand its behaviour
makes use of abstraction
e.g climate change, financial risk analysis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

automation

A
  • targets repetitive predictable problems
  • process of building system/program that is put into action to run automatically/independently with minimal human intervention
    makes use of abstraction
17
Q

problem recognition

A
  • identifying and defining the problem, it’s issues and its requirements, may involve stakeholders
  • analysing strengths and weaknesses with existing, nature of problem, limitations/constraints, desired outcomes, resources needed
  • determining inputs, outputs, data stored, data size
  • initial requirements and definitions can evolve
18
Q

divide and conquer

A
  • breaking problem down by halving it every iteration/recursively
  • into sub problems until they become simple enough to solve individually
  • reduce comp complexity in scale, parallelism
  • solutions of sub problems are combined
  • if implement recursive, problems: stack overflow will cause program to crash, large programs are difficult to trace
  • space, not always
19
Q

visualisation

A

-when data/problem and processes are represented in a visual or graphical format
problems easier to solve, presented in a easier to understand way
- identify trends/patterns otherwise not obvious to inform decisions
- for the mind to process, clears up confusion
- e.g flowcharts, graphs

20
Q

tractable problem

A

any problem that can be solved in a polynomial time or better
runs quick enough to be practical and useful
has computable features /can be solved using computational methods

21
Q

intractable problem

A
  • any problem that cannot be solved in polynomial time or better.
  • as the input size increases to anything other than a very small data set, a computer can’t solve it within a reasonable timeframe. - approx solved using heuristics