alan kay (1940- ) pioneer of object oriented programming wrote the first oo language, smalltalk...

8
Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970 at Palo Alto which Steve Jobs use to develop the Macintosh OS Develop the concept of mobile computers (he called them Dynabook in 1970s) Using Dynabook concepts he is currently working on the software for the $100 laptop program Quotes: The best way to predict the future is to invent it. People who are really serious about software should make their own hardware. A change in perspective is worth 80 IQ points. Technology is anything that wasn't around when you were born. If you don't fail at least 90 percent of the time, you're not aiming high enough. Possibly the only real object-oriented system in working order. (About Internet) Simple things should be simple, complex things should be possible. ICAPRG301A Apply introductory programming techniques ICAPRG301A Week 1 Hello World

Upload: katherine-floyd

Post on 17-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

Alan Kay (1940- )

Pioneer of Object Oriented programming

• Wrote the first OO language, Smalltalk• Developed the prototypes for network workstations in 1970 at

Palo Alto which Steve Jobs use to develop the Macintosh OS• Develop the concept of mobile computers (he called them

Dynabook in 1970s)• Using Dynabook concepts he is currently working on the

software for the $100 laptop program

Quotes:The best way to predict the future is to invent it.People who are really serious about software should make their own hardware.A change in perspective is worth 80 IQ points.Technology is anything that wasn't around when you were born.If you don't fail at least 90 percent of the time, you're not aiming high enough.Possibly the only real object-oriented system in working order. (About Internet)Simple things should be simple, complex things should be possible.

ICAPRG301A Apply introductory programming techniques

ICAPRG301A Week 1 Hello World

Page 2: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

• First in a programming series • Help you with :

1. ICAPRG414A Apply introductory programming in another language2. ICAPRG406A Apply introductory object-oriented language skills3. ICAPRG417A Apply mathematical techniques for software development

Cert IV

Skill setsBasic Application Development Programmer Skill SetApplication Development Specialist Skill Set

Or just to become the next killer programmer…

Don't worry about what anybody else is going to do. The best way to predict the future is to invent it.— Alan Kay

Page 3: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

What is programming?

The official term is software engineering and it is the process of developing the code which will run on computers or computing devices. This code enables the devices to perform the actions which we require as users.

Famous Programmers

Bill Gates wrote MS DOS operating system in 1982 in the language AssemblerMark Zuckerman wrote Facebook in 2004 in the language PHPMarcus Persson wrote Minecraft in 2009 in the language JavaRovio Mobile wrote Angry Birds in 2009 in the language Objective-C???? Started out learning this year….

Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program - Linus Torvalds

Page 4: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

Why learn programming?• To see if this is an area of real interest for you and maybe build a career

• To gain a basic understand of how software works and why it often doesn’t

work

• To gain and understanding of what the development process actually is

• In your job you will be working with software that is running on other

software, you need at least a basic understanding of what software

actually is and what it does

• To gain an appreciation of how hard it really is to get something that does

truly “just work”

learning to program is an iterative process of removing the magic from computing

Page 5: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

Which is the best language?

The question is often asked and makes no sense. Its like asking which is the best tree.

There are many languages and all have their uses, all are good for some tasks and all have problems in some areas.

Which is your best foot? Could you still do things if you only had that foot?

There is a site called 99-bottles-of-beer.net which is a collection of computer programs which output the famous song. At present there are 1436 different languages on the site, many in a variety of versions.

We will be teaching you programming, not just how the program in one particular language. In this unit we will use the language Python.

Python is a lot easier to teach to students programming - Guido Van Rossum, Python Benevolent Dictator for Life

Page 6: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

Basics Language Types

There are two basic types of computer languages, Procedural and Object Orientated.

Procedural languages develop programs that are much like a recipe or reading a book. They start at the beginning and move step by step until they reach the end. Almost all languages can be used procedurally but some languages (like VBScript, Javascript , BASIC, Pascal, COBOL) are designed that way.

Object Orientated languages use the concept of a class. This means they can just exist and it is up to the user how they operate, very much like the way you use the Internet or a word processor. Most modern languages are designed around the use of classes (including Java, Python, C++).

There are many other definitions of computer languages including data-structured (SQL), fourth-generation (Progress 4GL), Scripting (Lua), Assembly (Emu8086) etc

Python works well as a simple procedural language but can also be used as an OO language.

Page 7: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

Getting Started

The process of software development (writing programs from scratch) involves a number of steps.

1. Writing the code. Here you use a text editor to develop the set of instruction that following the rules of the language.

2. Run the code. Here the instructions are converted into something that a computer can understand (ie a series of 1 and Os).

3. Debug the code. There will be errors so you need to look at what has happened and work out if it is what you wanted.

4. Rinse and repeat.

Early programmers had to do all this manually and it can still be done that way. However in the last 10 years programs called Integrated Development Environments (IDE) have changed that as all these processes can be done in the one place.

Python is simple enough that it does not require an IDE, however we will use a basic one for convenience.

Page 8: Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970

ICAPRG301A Week 1 Hello World

ICAPRG301A Apply introductory programming techniques

Getting Started

This course will take you through much of what you need to start learning the language Python. However if you want to go further or are looking for another set of lessons to help you understand the language or a concept there are plenty of tutorials around. Some of the better ones are:

New Boston http://thenewboston.org/Udacity http://www.udacity.com/Reddit http://www.reddit.com/r/learnpython/

http://www.reddit.com/r/Python/Google http://code.google.com/edu/languages/google-python-class/index.html

The best text book (and the one that will be used in the Cert IV) is Head First Programming published by O’Rielly. This book should be available at the CDU Bookshop.

Google supports Python (the author of Python works for Google) so Google searches usually find plenty of help. Often coders ask questions of each other through code forums like Reddit and StackOverflow.