Migration, Education and Development (IOEF0028)

This module will describe different approaches to extending the functionality of static web sites with dynamic features by using server-side programming and...

Developing Dynamic Web Applications (INST0066)

This module will describe different approaches to extending the functionality of static web sites with dynamic features by using server-side programming and databases. Specific themes may include:

Client-server architecture, database servers, communication between server and clients
	Server-side programming: basic concepts, languages, differences with client-side programming
	Interacting with a Linux server in command-line
	Using SQL to create, manage and query structured datasets
	Programming in a server programming language (PHP)
	Publishing structured data (e.g., SQL,  JSON, etc.) on the Web
	Interaction between server and client-side scripting
	Creating simple data-driven web sites
	Advanced applications of server programming: access control, content management systems, etc.
	Advanced modern programming techniques for web development (best practices, Object-Oriented Programming, etc.)
Learning Outcomes

On successful completion of the course, students will:

Understand the client-server model and the concept of server-side programming
	Understand how to extend the functionality of web applications using server-side programming
	Be able to write server-side programs
	Be able to interact with a Linux web server
	Be able to create, manage and carry out queries in structured datasets
	Be able to develop data-driven web sites
	Be able to develop a complete (backend and frontend) website with dynamic content
	Be able to develop a simple content management system
	Understand the range of applications of server-side programming
INST0012 Database Theory and Practice (or any other database course) and INST0019 Introduction to Programming and Scripting (or any other programming course) are formal prerequisites for this module. Note that course participants are assumed to have a good aptitude for computer programming as well as good general computer skills.