Access Full Text (3.5 MB)

Download Resources for Programming for the Web (2.2 MB)


This book is designed to be used as a class text but should be easily accessible to programmers interested in Web Programming. It should even be accessible to an advanced hobbyist.

The original goal behind this text was to help students doing research with me in Web based mapping applications, generally using Open Layers. The idea was to provide persistent storage using REST and simple http request from JavaScript to store the data on a server.

When teaching this class, I became painfully aware of just how little students know about Web Programming. They did not know how to format a REST request as a URL, or the methods that could be used when sending the requests to be processed. Even worse, they did not know that REST used URLs, or that there were different request types in URL.

Most could not tell me what the server was, or how it worked. Even fewer could tell me the different types of servers (e.g. Rails type, Sinatra type, EJB, etc), or what types of services they offered. They did not know how to access the server through a simple HTML api such as Postman.

Many did not know HTML, and a lot of those who knew something about HTML knew little beyond how to format text on a web page. There was very little JavaScript knowledge in the class, and most had not even heard of libraries such as JQuery, Vue, or Bootstrap.

These were all junior and senior computer science students, and the types of positions many of them were interviewing for would require this type of knowledge. Yes, they could learn it on the job. And I know this is not the foundational skills that many CS faculty believe students should learn. But there is a lot of good foundational material to be found in Web Programming, and I have had a lot of good feedback from students who have graduated or done an internship where they state even if they do not use all of this material, it is nice to be able to understand what others in the company are talking about.

Because of the experience with the REST interface, I petitioned the CS department of one of the schools I was an adjunct at to offer a class in Web Programming. This book is the result of having taught that class 3 times at 3 different schools. Its purpose is to provide an overview of how to program for the web. It is still largely client side, but that is something I hope to address in a future version of the textbook

This material in this textbook is ubiquitous in industry, and I really believe that there is utility in being able to communicate with others about the concepts without having 5-10 years’ experience seeing all of the various pieces of a full stack application for the Web. The book is written to try to be as technology agnostic as possible, trying to emphasize concepts over implementations.

This book is also designed to help students understand how to use Web Programming with interfaces and libraries such as Open Layers, which is a mapping interface that can be run on a Web Browser client.

This book can be used as the main text for a class in Web Programming. It is not intended to be used as the only source of material in such a class, but as the guide to the class. Most of the material can be easily supplemented by information on the Web.

Publication Date

Fall 9-12-2018


Databases and Information Systems | Other Computer Sciences

Department 1

Computer Science

Creative Commons License

Creative Commons Attribution 4.0 License
This work is licensed under a Creative Commons Attribution 4.0 License.

Document Type


Programming for the Web: From Soup to Nuts: Implementing a complete GIS web page using HTML5, CSS,  JavaScript, Node.js, MongoDB,  and Open Layers.

Additional Files

Programming for the Web from Soup to (2206 kB)
Resources for Programming for the Web