Introduction to Internet Programming
Goals
A student completing this course unit should be able to:
- Frame the main constituent elements of the World Wide Web architecture.
- Demonstrate theoretical and practical knowledge on key standards associated with the client component (web browser).
- Use the programming model in the client component, namely in dynamic access to content and event handling.
- Use and extend server technology with significant industrial adoption, to create low complexity Web applications.
- Design and implement web applications with maintenance of conversation status, visualization and data editing.
Syllabus
- Architecture of the World Wide Web: Resource Identification (URI), interaction (HTTP) and representation (HTML).
- Distribution of web content (HTTP protocol).
- Support infrastructures for the creation of user interface in web applications and their programming model.
- Client component (web browser): description, visual formatting, programmatic manipulation and total and partial updates of the GUI.
- Server component: static content distribution, dynamic generation of content; programming model on the server, using the MVC pattern; maintaining state (view, session and application); HTTP requests intercepting.
- Distribution consequences in the programming model and corresponding reference architectures. Caching mechanisms.
- Apply the studied subjects by developing small and medium complexity web applications with support for data persistence.
Outcomes
For most students, this course represents the first contact with the problems inherent to the development of distributed applications, achieved through the web platform. The main elements of this platform are introduced. The client component (web browser) is presented, with its associated standardized technologies. The server component is also described, identifying the key architectural patterns used in its development, which are demonstrated in practice through a web infrastructure with significant industrial adoption. The development of a web application with small or medium complexity is used to practice the transmitted concepts and technologies and to put students before some of the problems associated with the development this type of applications.
Bibliography
W3C Technical Architecture Group, Architecture of the World Wide Web, Volume One, http://www.w3.org/TR/webarch/, 2004.
Internet Engineering Task Force (IETF), Hypertext Transfer Protocol (HTTP/1.1), RFC 7230/7231, 2014
M. Haverbeke, Eloquent JavaScript: A Modern Introduction to Programming, 3rd edition, No Starch Press, 2018. ISBN 9781593279509, https://eloquentjavascript.net/
J. Wilson, Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales, The Pragmatic Bookshelf, 2017. ISBN 9781680501957