1 / 23

Alan Kay

Alan Kay. The Father of Object-Oriented Programming Chris Rees. Overview. The Turing Award ACM Alan Kay Background Goals Early Work Awards Smalltalk. Turing Award. ACM’s most prestigious award Who’s who of CS Named after Alan Mathison Turing

Gideon
Télécharger la présentation

Alan Kay

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Alan Kay The Father of Object-Oriented Programming Chris Rees

  2. Overview • The Turing Award • ACM • Alan Kay • Background • Goals • Early Work • Awards • Smalltalk

  3. Turing Award • ACM’s most prestigious award • Who’s who of CS • Named after Alan Mathison Turing • Considered father of theoretical computer science and artificial intelligence • Award comes with $250,000 as of 2007 • Funded by IBM and Google

  4. Turing Award • Given out annually • Since 1966 • First recipient – Alan J. Perlis • Given to individuals who contribute greatly to the CS field • Groups working together also receive award • Highest distinction in computing • Nobel prize of computing

  5. ACM • Association for Computing Machinery • Founded in 1947 • World’s first scientific and education computing society • HQ in NY • Over 92,000 members • Publications available online

  6. Alan Kay • May 17, 1940 • Known for: • Dynabook • OO Programming, Smalltalk • Etoys • GUI • “The best way to predict the future is to invent it”

  7. About Alan • Worked for Xerox PARC • Pioneered many of the ideas at the root of contemporary object-oriented programming languages • Conceived Smalltalk • Led the team that programmed the langauge • Worked on the math behind the language • President of the Viewpoints Research Institute

  8. Xerox PARC • Palo Alto Research Center • Founded 1970 • Known for: • WYSIWYG • GUI • Ethernet • Smalltalk • Three Turing Award recipients

  9. Viewpoints Research Institute • Nonprofit benefit organization • Working to improve “powerful ideas education” to the world’s children • Working to advance the state of systems research and personal computing • Worked on Etoys – fully programmable graphical environment for teaching programming to children • Worked on TileScript – Interactive JavaScript programming environment • Worked on LYSP – tiny Lisp implementation

  10. Goals • Make computing/programming simple • Make computing prominent in education • Bring computing to children in general

  11. Early Life/Work • Bachelor’s in Mathematics and Molecular Biology • University of Colorado at Boulder • Master’s and Ph.D. • University of Utah College of Engineering • Worked with Ivan Sutherland • Created Sketchpad • Helped shape GUI • Learned Logo • Dialect of Lisp for Education

  12. Awards • UdK 01-Award for Pioneering GUI • Turing Award for work on Smalltalk • Led team that created Smalltalk • Smalltalk helped create standard GUI • Wrote math behind Smalltalk • Dan Ingalls wrote basics of Smalltalk and how it should work • Left lasting impression on Computer Science community

  13. Main Work • Dynabook • Smalltalk • GUI • Etoys • Focus on education and children

  14. Dynabook • Now a laptop, slate, tablet • Near-eternal battery life • Software for bringing digital media to children • Usable by all age groups but designed for kids • “A personal computer for children of all ages”

  15. Etoys • Built on Smalltalk • Intended to teach children how to program • Object-oriented language • Developed at Disney • Squeak implementation of Smalltalk • Supports constructionist learning

  16. Smalltalk Background • First object-oriented language • Development began 1969 • Major releases: 1971, 1972, 1976, 1980 • Version most often referred to is Smalltalk-80 • Simplistic language, few reserved words • Ex: • C# - Printer.on(); Smalltalk – Printer on. • C# - Box.height(10); Smalltalk – Box height: 10.

  17. Smalltalk History • 1971 – Created as a bet • Dan Ingalls • Created because of a bet • 1972 – Used for research • Influenced development of the Actor model • 1976 – Included most now-familiar tools • Class library • Code browser/editor • 1980 – Metaclasses • First variant of Smalltalk available outside PARC

  18. Smalltalk Basics • Dynamic typing • Like PHP, Lisp • Influenced by Lisp, Simula, Logo, Sketchpad • Influenced future languages • Objective-C, C++, Java, PHP, Python, Perl • Language designed for educational use • Made personal computing simpler/easier • Included visual programming environment • Revolutionary for its time

  19. Smalltalk • Unified objects and messages • “Everything is an object” • Used to develop Etoys • Platform for teaching programming to children • Variants: • Squeak – Open source. Still very popular. Supported by large community/developers, mostly from original Smalltalk community • VisualWorks – Widely used. Bought and supported by Cincom. New versions each year since 1999

  20. Smalltalk • Built to handle various programming styles • Designed to be clear and understandable for children • “Programming should be a matter of …” • “Children should program in …” • Named as a reaction against “IndoEuropean god theory” • Odin, Zeus, Thor. Not functional • “If Smalltalk ever did anything nice, people would be pleasantly surprised”

  21. Code Basics • Transcript show: ‘Hello World’. • Prints string literal ‘Hello World’ to an open Transcript window • result := a > b ifTrue:[ 'greater' ] ifFalse:[ 'less or equal' ] • Prints if the value a is greater or less than/equal to the the value of b • Variable Declaration • Var := val or Var :=‘val’

  22. Code Basics • Strings • ‘Hello world’ • Characters • $A • Arrays • #(1 2 3 4) • ByteArray • #[1 2 3 4]

  23. Code Examples • 2 raisedTo: 4 • aBigNumber := 42 factorial • Rectangle height: 100 width: 400 • | window | window := Window new. window label: ‘Hello’. window open • ‘Hello world’ indexOf: $o startingAt: 6

More Related