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

Slides:



Advertisements
Similar presentations
Learning to Program With Alice
Advertisements

TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
SPLGraph: Towards a Formalism for Software Product Lines Itay Maman IBM Research – Haifa Goetz Botterweck Lero – The Irish software Engineering Research.
1 Knowledge Representation Introduction KR and Logic.
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.
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
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
0 - 0.
National Academy of Engineering of the National Academies 1 Phase II: Educating the 2020 Engineer Phase II: Adapting Engineering Education to the New Century...
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Introduction to Computer Science I Topic 0: Introduction.
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
WEB- BASED TRAINING Chapter 4 Virginija Limanauskiene, KTU, Lithuania.
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
1 UML ++ Mohamed T IBRAHIM University of Greenwich -UK.
Classroom Auxiliary: is, am, & are. You have ‘3 Seconds’ to answer each question.
Problem Solving and Algorithm Design
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
Addition 1’s to 20.
CS 240 Computer Programming 1
25 seconds left…...
CSTA K-12 Computer Science Standards (rev 2011)
Test B, 100 Subtraction Facts
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Week 1.
We will resume in: 25 Minutes.
1 Unit 1 Kinematics Chapter 1 Day
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
Languages for IT & CS Pseudo-code What HTML isn’t Early history Compiling & interpreting Classifying languages The process of programming.
Modeling Main issues: What do we want to build How do we write this down.
0 WPI First Experience Teaching Software Testing Lessons Learned Gary Pollice Worcester Polytechnic Institute and Rational Software Corp.
MIP - Politecnico di MilanoCopyright prof. M. Garetti 1 AIM 2004 Conference Education for IM MSc engineer in the 21th century Item: Learning Methodologies.
Introduction to Alice Basics : What is Alice? Object Oriented Definitions What Does it Look Like? Where Can I Use it?
Jonathan Huelman CSC 415 – Programming Languages
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 28: Implementing Interpreters.
TEACHING PROGRAMMING BY ITERATIVE DEEPENING Dr. Mark Lee | School of Computer Science, University of Birmingham
 3D graphics environment  Focuses on Object Oriented Programming  Provides immediate feedback through program visualizations  Contains a drag-and-drop.
Programming 101 with Python: an open-source, cross-platform, and fun language By J. Burton Browning, Ed.D. Copyright © J. Burton Browning All rights reserved.
Gary MarsdenSlide 1University of Cape Town Designing usable programming languages.
23-August-1999© 1999 CNRI, Guido van Rossum August-1999© 1999 CNRI, Guido van Rossum 2 Python Track Opening Words Guido van Rossum
28 May, 1999Le Copyright © 1999 CNRI, Guido van Rossum 1 Le Python à Paris Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston,
Computer Science 111 Fundamentals of Programming I Overview of Programming.
August 29, 2005ICP: Chapter 1: Introduction to Python Programming 1 Introduction to Computer Programming Chapter 1: Introduction to Python Programming.
CSIII Proposal Mikhail Nesterenko CS Faculty Retreat May 3, 2013.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Intro to Python Programming (Part 1) Pamela Moore Zenia Bahorski Eastern Michigan University March 16, 2011 A language to swear by, not at.
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
Overview of Python Eric Finkenbiner David J. Stucki.
Software Development Introduction
Computer Programming for Everybody Jeffrey Elkner National Science Foundation May 11, 2004 A Teacher's Journey into Free Software, Computer.
Code Tools for Schools Adam Carr from Bridge Creek High School.
First appeared Features Popular uses Basic This language emphasises on ease of use, allowing general purpose programming to those with a small amount of.
CST 1101 Problem Solving Using Computers
Introduction to Programmng in Python
Building Raspberry Pi Controllers with Python
Presentation transcript:

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)

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