We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byLandon Carney
Modified over 4 years ago
10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston, Virginia, USA) firstname.lastname@example.org
10/09/1999© 1999 CNRI, Guido van Rossum 2 Our Vision A computer on every desk…? Yes! But everybody a programmer…?...Why not?!
10/09/1999© 1999 CNRI, Guido van Rossum 3 Everybody a Programmer! Computers need programming –Programming skills will become as essential as reading and writing Don't leave it to the experts –Empower users –Escape canned dialogs, wizards –Scratch your own itch –Solve your own problem, improvise
10/09/1999© 1999 CNRI, Guido van Rossum 4 But How? Isnt programming too hard? –Yes, with current languages C++ a nightmare in high schools Java not much better VB? Ha! –Yes, with current tools even professionals cuss their tools tools for beginners lacking or dumbed down
10/09/1999© 1999 CNRI, Guido van Rossum 5 Our Vision A Python on every desk Based on Python... –Next generation programming tools –New CS curriculum –New language »Initially, use a subset of Python »Improve language based on experience
10/09/1999© 1999 CNRI, Guido van Rossum 6 What is Python? OO HL rapid prototyping language –Not just a scripting language –Not just another Perl Extensible (add new modules) C/C++/Fortran/whatever Java (through JPython) Embeddable in applications
10/09/1999© 1999 CNRI, Guido van Rossum 7 Why Start With Python? Good for teaching Useful in the real world Appealing to computer scientists
10/09/1999© 1999 CNRI, Guido van Rossum 8 Why Teach Python? Easy to teach the principles –see trees through forest –structured programming –object-oriented programming –programming large systems Interesting, realistic examples –connect to real applications
10/09/1999© 1999 CNRI, Guido van Rossum 9 Python in the Real World Python prepares for Java, C, C++ Python is used in many places –Industrial Light & Magic –Infoseek, Google (crawlers) –Lawrence Livermore National Lab –Red Hat Linux –CGI scripts everywhere
10/09/1999© 1999 CNRI, Guido van Rossum 10 Academic Elegance Small set of high level data types –numbers, string, array, hash, objects –everything is an object philosophy Elegant high-level syntax –expressive and readable; intuitive indentation for grouping Good mix of static, dynamic binding
10/09/1999© 1999 CNRI, Guido van Rossum 11 Our Goals Improve CS education Improve software development tools Empower end users...and Python world domination :-)
10/09/1999© 1999 CNRI, Guido van Rossum 12 Specific Plans Teach Python to beginners –middle/high school –college freshmen (CS / non-CS) –fun examples, e.g. 3D games Develop easy programming tools –super version of IDLE (Pythons IDE) –add program analysis tools
10/09/1999© 1999 CNRI, Guido van Rossum 13 Funding DARPA funding for first task –1.5 people, 2 years May fund expanded proposal –5 people, 5 years –plus collaborations (CMU, Chicago,...) Looking for other sources –NSF? Industry? Bill Gates?
10/09/1999© 1999 CNRI, Guido van Rossum 14 Educational Plans Classroom materials –student textbook; exercises –teacher handbook; answers –develop interesting examples –also suitable for home schooling Self-study materials –slight variation on student textbook
10/09/1999© 1999 CNRI, Guido van Rossum 15 Educational Goals Fundamentals of programming –datatypes, variables, control structures –datastructures, algorithms Object-Oriented programming –classes, methods, inheritance Program structure, good style –modules, libraries; idioms, patterns
10/09/1999© 1999 CNRI, Guido van Rossum 16 The Role of Python Teach programming, not Python Python doesn't get in the way Python focuses on high level concepts rather than bits & bytes Python allows interesting examples Python paves way for Java, C++,... Python is useful in itself
10/09/1999© 1999 CNRI, Guido van Rossum 17 Software Plans Programming environment –novice-friendly –based on existing IDLE –interactive (>>> prompt) –syntax coloring, friendly messages –module editor, debugger, etc. –smart tools
10/09/1999© 1999 CNRI, Guido van Rossum 18 Software Goals Useful for novices and experts –novices become experts –everybody is an expert in some field Smart program analysis tools –Incremental semantic analyzer my ideal: works like a spell checker! –Abstraction finder –Large program structure analyzer
10/09/1999© 1999 CNRI, Guido van Rossum 19 The First Year First half of 2000 –develop first classroom materials working with teachers –develop some software (extend IDLE) Fall 2000 –first classroom exposure watch students watch teachers!
10/09/1999© 1999 CNRI, Guido van Rossum 20 Beyond the First Year Incorporate experience, feedback –improve classroom materials –improve software Widespread distribution –via Python website & community Develop advanced software Possibly changes to the language
10/09/1999© 1999 CNRI, Guido van Rossum 21 Community Involvement Like open source software process –Feedback, fixes, improvements –Develop wide range of examples –Develop specialized courses New applications Co-tutoring
Learning to Program With Alice
TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Ernst Oberortner Vienna University of Technology.
Chapter 11 Design, prototyping and construction 1.
SPLGraph: Towards a Formalism for Software Product Lines Itay Maman IBM Research – Haifa Goetz Botterweck Lero – The Irish software Engineering Research.
Chapter 16 Graphical User Interfaces
Chapter 6 Writing a Program
1 Classes and Objects in Java Basics of Classes in Java.
Remote Educational Programming Of Robots (REPOR) Tord Fauskanger Aurelie Aurilla Bechina Arntzen Dag Samuelsen Buskerud University College.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
Transforming Engineering Education The Road Ahead 2/8/2014 Moshe Kam, IEEE Transforming Engineering Education Program Chair Drexel University.
Maureen Curran and Mary Lou Aalbers Hazelwood School District Teacher tips.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
"The State of the Python Union" Python10 - Alexandria, VA - February 7, 2002 Guido van Rossum Director, PythonLabs at Zope Corporation
Why I Invented Python EuroPython – June 27, 2005 Guido van Rossum Elemental Security, Inc.
Python Whats in a name? Snake logos and mascot notwithstanding, its named after Monty Pythons Flying Circus Humor-impaired can safely.
director of PythonLabs at Zope Corporation
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
© 2018 SlidePlayer.com Inc. All rights reserved.