4.1  Abstraction and Automation
 logical reasoning = to reach a conclusion or logical consequence from premises using deductive, inductive and/or abductive reasoning.
 Requires putting models into action to solve problems
 create algorithm
 implement algorithms in program code
 implementing models in data structures
 executing the code
 logic
 argument = actual statements
 compound proposition: if X then Y
 deduction
 \(P \implies Q\) = P implies Q
 P is the hypothesis/antecedent/premise
 Q is the conclusion/consequence
 If P is true then Q is true.
 argument form: \(P \therefore Q\)
 Logical reasoning
 if P then Q, if Q then R, therefore, if P then R

\[P \implies Q, Q \implies R \vdash P \implies R\]
 induction
 Netwon’s Principle: Whatever is true of everything before our eyes is true of everthing in the universe.
 Inductive reasoning kinda the opposite of deductive reasoning (look for rules from facts):
 E.g: If John Smith is a footballer, then he wears football boots when playing football.
 can then generalise using Newton’s Principle:
 If x is a footballer, then x wears football boots when playing football.
 AKA: All footballers wear football boots when playing football.
 problem solving = process of finding a solution
 automation = the technology by which a process or procedure is performed with minimum human assistance.
 abstraction
 representational abstraction
 unnecessary details removed (only info required to solve problem remains)
 ‘looking at the big picture’
 abstraction by generalisation/categorisation = putting similar aspects of problem into hierarchal categories
 procedural abstraction = solutions broken down into procedures or subroutines
 functional abstraction = breaking down a complex problem into reusable functions