Your SlideShare is downloading. ×
Cooking Software101
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Cooking Software101

575
views

Published on

Published in: Education, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
575
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Cooking Software 101 Pere Urbon-Bayes purbon@purbon.com Software Architect Belectric ITS GmbH Jena, Germany
  • 2. Cooking Software 101● History of Software.● Basics of Algorithms.● The algorithms toolbox. – Sort and Search. – Recursion. – Data structures.
  • 3. History of Software
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. History of Software (Programing Eniac)
  • 8. History of Software(Programing Punched Cards)
  • 9. History of Software (Programing Assembly)
  • 10. History of Software (Programing nowadays) b
  • 11. 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.
  • 12. Basics of Algorithms
  • 13. Basics of Algorithms (Data Types)● Classics: ● Sophisticated: – Integers – Linked Lists – Doubles – Tuples – Floats – Complex – Characters numbers – Strings – Rational numbers – Booleans – Hash tables – References – 1rst class functions
  • 14. Basics of Algorithms (Operations)● Basic mathematics: – ++, –, +, -, *, /, %, += -= *= /= %=.● From logics: – &, &=, &&, ||, ^, ^=, ~, !, !=, <<, >>.● Comparators: – < <= > <= ==.● References and Assignations: – (), [], →, :=.
  • 15. Basics of Algorithms (Operations)● Basic mathematics: – ++, –, +, -, *, /, %, += -= *= /= %=.● From logics: – &, &=, &&, ||, ^, ^=, ~, !, !=, <<, >>.● Comparators: – < <= > <= ==.● References and Assignations: – (), [], →, :=.
  • 16. Basics of Algorithms (Data structures)● Classics: ● Sophisticated: – Arrays – Trees – Lists – Graphs – Stacks – Hash tables – Queue – Bitmaps – …. – Heaps – Sets – Dictionaries – ….
  • 17. Basics of Algorithms (Flux control)If (condition) then do something If (condition) thenend do something else if (condition) thenIf (condition) then do something more do something elseelse do something else do something else endend
  • 18. Basics of Algorithms (Flux control)while (condition) do do somethingend for (i:=0 to 100) do Do something enddo do somethingwhile (condition) endNotice some use until together with while
  • 19. Basics of Algorithms (Functions and Procedures)
  • 20. Basics of Algorithms (Functions and Procedures)
  • 21. Algorithms toolbox
  • 22. Algorithms toolbox (Sorting)
  • 23. Algorithms toolbox (Searching)● Linear search ● Binary search – [3,7,4,2,10,1,11,9] – [1,2,3,4,7,9,10,11] – [9] – [9]● Cost: O(n) ● Cost: O(log(n))● Other methods – A*, B*,... – Backtracking – Combinatorial search – Alpha-Beta pruning
  • 24. Algorithms toolbox (Recursion)function factorial(n) do If (n==0) then return 1; else return n * factorial(n-1); endend
  • 25. Algorithms toolbox (Data structures – Matrix )
  • 26. Algorithms toolbox (Data structures - Lists)
  • 27. Algorithms toolbox(Data structures – Stack - Queue)
  • 28. Algorithms toolbox(Data structures – Hash Table )
  • 29. Algorithms toolbox(Data structures – Graph – Binary Tree )
  • 30. Algorithms toolbox(Data structures – Bitmap )
  • 31. Cooking Software 101 Ingredients+Methods <=> Data + Methods
  • 32. Cooking Software 101Thanks! Questions? Pere Urbon-Bayes purbon@purbon.com Software Architect Belectric ITS Gmbh Jena, Germany