Cooking Software101
-
Upload
pere-urbon-bayes -
Category
Education
-
view
609 -
download
1
Transcript of Cooking Software101
Cooking Software 101
● History of Software.● Basics of Algorithms.● The algorithms toolbox.
– Sort and Search.
– Recursion.
– Data structures.
History of Software
● Ramon Lull (Mallorca, Catalan Kingdom 1232-1315)
– Writer, Philosopher, Logician and Franciscan tertiary.
– Influence Leibniz, Newton, Darwing, ...
– 1274 Ars Magna. 1308 Ars Generalis.
– Father of Artificial Intelligence, Computational Calculus and Combinatorics.
– http://ca.wikipedia.org/wiki/Ars_magna
– http://ca.wikipedia.org/wiki/Ramon_Llull
History of Software
● Gottfried von Leibniz (Leipzig 1646-1716)– Mathematician and Philosopher.
– Develop Infinitesimal Calculus, Binary System.
– Prolific inventor in mechanical calculators.
– Anticipated Information Theory, Lagrange Interpolation and aspects of the Turing Machine (Calculus ratiocinator).
– http://en.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz
History of Software
● Alan Turing (UK 1912-1954)– Mathematician, Logician, Cryptanalyst and
computer scientist.
– Father of Computer Science, Algorithms and Computation (Turing Machine)
– Broke Enigma Machine Codes during WW2.
– ACE (1947 Manchester) stored prog computer
– Turing Test and Father of Artificial Intelligence
– http://en.wikipedia.org/wiki/Alan_Turing
History of Software(References and Buzzwords)
● Software Engineering– Agile Software Development.
● Imperative Programing (C/Pascal/...)● Object Orientation (C++/Java/...)● Logical Programing (Prolog/ML/...)● Functional Programing (Lisp/Erlang/Scala/...)
● (Book) History of Computing: Software Issues: Conference on the History of Computing, ICHC 2000.
Basics of Algorithms(Data Types)
● Classics:– Integers
– Doubles
– Floats
– Characters
– Strings
– Booleans
– References
● Sophisticated:– Linked Lists
– Tuples
– Complex numbers
– Rational numbers
– Hash tables
– 1rst class functions
Basics of Algorithms(Operations)
● Basic mathematics:– ++, –, +, -, *, /, %, += -= *= /= %=.
● From logics:– &, &=, &&, ||, ^, ^=, ~, !, !=, <<, >>.
● Comparators:– < <= > <= ==.
● References and Assignations:– (), [], →, :=.
Basics of Algorithms(Operations)
● Basic mathematics:– ++, –, +, -, *, /, %, += -= *= /= %=.
● From logics:– &, &=, &&, ||, ^, ^=, ~, !, !=, <<, >>.
● Comparators:– < <= > <= ==.
● References and Assignations:– (), [], →, :=.
Basics of Algorithms(Data structures)
● Classics:– Arrays
– Lists
– Stacks
– Queue
– ….
● Sophisticated:– Trees
– Graphs
– Hash tables
– Bitmaps
– Heaps
– Sets
– Dictionaries
– ….
Basics of Algorithms(Flux control)
If (condition) then do somethingend
If (condition) then do somethingelse do something elseend
If (condition) then do somethingelse if (condition) then do something moreelse do something elseend
Basics of Algorithms(Flux control)
while (condition) do do somethingend for (i:=0 to 100) do
Do somethingend
do do somethingwhile (condition) end
Notice some use until together with while
Algorithms toolbox(Searching)
● Linear search – [3,7,4,2,10,1,11,9]
– [9]
● Cost: O(n)
● Binary search– [1,2,3,4,7,9,10,11]
– [9]
● Cost: O(log(n))
● Other methods– A*, B*,...
– Backtracking
– Combinatorial search
– Alpha-Beta pruning
Algorithms toolbox(Recursion)
function factorial(n) doIf (n==0) then
return 1;else
return n * factorial(n-1);end
end
Cooking Software 101
Thanks! Questions?
Pere [email protected]
Software ArchitectBelectric ITS Gmbh
Jena, Germany