Prerequisites: 95-712 Object-oriented Programming in Java or permission of the instructor.
This course is designed as a programming intensive introduction to the internet of things and IoT related web technologies. We will study and build software programs primarily using Java. We will consider and work with two styles of client side programming - programming within the browser and programming stand alone clients. On the server, we will program using protocols such as AJAX and Websockets. Along the way, we will study several different markup languages. These include XHTML, RSS, RDF, JSON and JSON-LD. IoT specific technologies that will be discussed include MQTT, XMPP, UPnP and CoAP. One of our aims will be to consider how good ideas in the design of the web might be extended to include the internet of things.
The primary readings in the course will come from journal articles. The prerequisite for this course is 95-712 Object Programming in Java and this is a technical course that focuses on technical problems and their solutions. However, many students, primarily interested in business problems, have also found this course to be quite valuable.
Upon completion of this course, students will be able to:
- Examine and critique some of the most important technologies that are being used today by web developers to build a wide variety of web applications.
- Describe the differences and similarities between two important meta-languages - XML and JSON.
- Explore several standards that may play a significant role in the Internet of Things. We will study MQTT, XMPP, CoAP, UPnP
- Formulate and build extensible web applications using the Model View Controller design pattern
- Develop a conscience of the semantic web.
- Develop an understanding of and an appreciation for the wide variety of XML languages that are being used in many industries.