For older versions see the links at the bottom of this page.
Computers are fast, powerful, and inexpensive. They make great slaves. The challenge is how to instruct them. Programming is the process of telling computers how to act.
This free book is designed to support an introductory (100-level) college course that meets for about forty hours. We do not assume prior programming knowledge or experience. Basic math skills are assumed.
This book teaches the fundamentals of programming. When you complete this course, you will (a) be writing useful programs that run on the desktop, (b) be writing useful programs that run on the Web, and (c) know whether programming is fun for you and worth pursuing with bigger projects and/or additional languages.
We cover simple variables (scalars), input (STDIN), output (print), decisions (if, elsif, else), loops (while, do while, for, foreach), lists and arrays, and subroutines. These are fundamental topics for any introductory programming course. We do not cover object-oriented programming, even though it is very important, because we believe students must first understand programming before they can successfully grasp the object-oriented paradigm.
Because it's fun, we emphasize the creation of programs that run on the web. By this we mean student programs will reside on web servers and will interact with users through web pages. Specifically, student programs will create web pages. Web browsers will render those pages. Users will interact with the web browser. Finally, the browser will send messages back to the server where a new page can be created in response. We utilize CGI, the Common Gateway Interface, for interaction between the browser and the server.
We also emphasize the question "why." We illustrate with stories and examples that try to motivate different topics. We try to answer the question "who cares?" In the end, We hope the student will come away with a better concept of what is behind the scenes that makes each topic interesting or useful, and not merely a skill at doing something that you are not yet sure you care to do.
The book is typeset using LaTeX. The author is Don Colton, Associate Dean in the College of Business, Computing, and Government at Brigham Young University Hawaii.
Second Edition:
ipup2.pdf, 5 Mar 2012, 444p, 928 KB.
First Edition:
ipup.pdf, 10 Jun 2009, 342p, 1.1 MB.