ICAPRG301A Apply introductory programming techniques

advertisement
ICAPRG301A Apply introductory programming techniques
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
Week 1
Hello World
ICAPRG301A Apply introductory programming techniques
• First in a programming series
• Help you with :
Cert IV
1. ICAPRG414A Apply introductory programming in another language
2. ICAPRG406A Apply introductory object-oriented language skills
3. ICAPRG417A Apply mathematical techniques for software development
Skill sets
Basic Application Development Programmer Skill Set
Application 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
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
Mark Zuckerman
Marcus Persson
Rovio Mobile
????
wrote MS DOS operating system in 1982 in the language Assembler
wrote Facebook in 2004 in the language PHP
wrote Minecraft in 2009 in the language Java
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
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
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
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.
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.
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
Udacity
Reddit
Google
http://thenewboston.org/
http://www.udacity.com/
http://www.reddit.com/r/learnpython/
http://www.reddit.com/r/Python/
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.
ICAPRG301A
Week 1
Hello World
Download