Presentation is loading. Please wait.

Presentation is loading. Please wait.

10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,

Similar presentations


Presentation on theme: "10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,"— Presentation transcript:

1 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)

2 10/09/1999© 1999 CNRI, Guido van Rossum 2 Our Vision A computer on every desk…? Yes! But everybody a programmer…?...Why not?!

3 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

4 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

5 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

6 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

7 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

8 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

9 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 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

11 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 :-)

12 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

13 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?

14 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

15 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

16 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

17 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

18 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

19 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!

20 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

21 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


Download ppt "10/09/1999© 1999 CNRI, Guido van Rossum 1 Computer Programming for Everybody Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,"

Similar presentations


Ads by Google