Advanced Web Development - CM3035

Advanced Web Development - CM3035

Web application development is a critical application area for computer science. Many of the largest technology companies maintain large scale web applications, providing services such as social media, search, advertising and video and audio streaming. While studying this Computer Science programme, you will have developed client-side web development skills, database and networking skills, programming skills and computer security know-how. The advanced web development module provides an in-depth exploration of server and client-side web technologies and development which builds on this foundation.

By taking this module, through this module, you will learn how to build dynamic, data-driven websites using databases, front-end frameworks and server-side programming. This module provides the skill set required to do full stack web development work. By studying this module, you will develop a web developer skill set that enables you to understand how to build and deploy complete, data-driven websites. You will consider several different technologies for client side-web development such as HTML, CSS, Javascript and templates. You will explore methods for developing server-side web applications, by building web-accessible wrappers around databases. You will consider issues of scalability, and learn about web application configuration and deployment.


Topics covered will be:

  • The web stack: clients, web servers and databases
  • Advanced features of HTML, CSS and Templates
  • Deploy a website
  • Basic databases and data schemas for a website
  • Build a CRUD/ RESTFul API
  • Build a web-socket server
  • User authentication and security
  • Working with external APIs
  • Scalability

Students who successfully complete this module will be able to:

  • Create a data-driven web page using HTML, CSS and templates
  • Create server-side web applications with HTTP, RESTFul and web socket interfaces
  • Set up a web and database server and use it to deploy a data driven web application
  • Design basic database schemas to model specific data
  • Describe and evaluate user authentication and security features and implement them in software
  • Explain issues relating to scalability in web servers and use these principles to assess particular web server configurations

Resources

"The module will draw on a number of different, largely web-based, public resources as well as the resources produced as bespoke material for this module."

Essential reading

"The standard text book(s) for the module will be:"

  • Hall, Eric Internet Core Protocols: the Definitive Guide, O'Reilly Media, Incorporated, 2000.

  • Harrington, J.L. Relational Database Design and Implementation, Elsevier Science & Technology, 2016.

  • Kumar, Akshi Web Technology : Theory and Practice, CRC Press LLC, 2018.

  • Webber et al. REST in Practice: Hypermedia and Systems Architecture. O'Reilly 2016

Essential reading


Pedram Badakhchani Useful links:

My p5 sketches:

https://editor.p5js.org/pedbad/collections

My codepen:

https://codepen.io/pedbad