Why do we Program?
Computers want to be helpful
- Computers are built to do things for us * Designed and wired so that it has one question: what do you want to do next?
- But, we need to speak their language to describe what we want done.
- Computer users just have to pick which programs (instructions) they want to use out of the different program someone else put in the computer.
- A programmer’s job is to serve the user and act as an intermediary between the hardware and the user * The hardware of a computer itself isn’t that intelligent
Programmers Anticipate Needs
- Professional programmers trying to sell software also need to imagine what the world might want
- iPhone apps are a market * but the app stores are also places where software can be built and exchanged
- They have over 3 billion downloads
- Many programmers have left their jobs to be full-time iPhone app developers
- Programmers know the ways of their program
Why be a programmer?
- To get some task done * Example: clean up survey data
- To produce something for others to use - a programming job * Example: Fix a performance problem in the Sakai software * Or adding a guestbook to a website
- For professional programmers, the motivation may be to build something for everyone else to use
- The main difference between writing code for someone and writing code for yourself is the rigor
- Program: a sequence of stored instructions * The computer itself at the lowest level of hardware is not that smart, but there’s a lot of flexibility in terms of giving it the right instructions.
Programs for Humans…
- An example of a program for humans is the macarena! * You do the dance moves at the correct beat of the music
- Human beings can operate in an error filled world * We can automatically fix errors in text or speech based on what we know
- Computers can not operate in an error filled world * So programs have to be perfect
Programs for Python…
- One thing that computers are good but humans are bad at is text analysis * This is something we delegate to computers
\