Learning Outcomes
The aim of the course is to provide graduate students with the basics and hands-on experience
for designing and developing applications on the World Wide Web. The focus is on both serverand
client-side development technologies, covering the full range of intermediate technologies,
protocols, patterns and systems. By the end of the course, students are expected to be able to:
1. understand with minimal effort any technology, design pattern, protocol, tool, programming language or Web application 2. designing applications based on the
MVC framework or similar 3. implement dynamic applications using Javascript and NodeJS
Course Content
The course invests particularly in the hands-on exercise, emphasizing on the implementation of exercises and examples together with the teaching staff in the laboratory. The assignment includes the implementation of a complete web application while the examination is based on practical comprehension issues and not on memorization. The main modules in which the
content of the course is structured are the following:
Module 1: Basic concepts of the web. The HTTP protocol.
Module 2: Client-side programming. The Javascript programming language. Event scheduling. The document object model DOM.
Module 3: Server-side programming. Programming Models, REST
Module 4: Introduction to NodeJS
Module 5: Markup Languages
Module 6: Hybrid Programming Models. The Ajax framework. Introduction to Javascript
frameworks for front-end development such as JQuery, UI thread and web workers.
Module
7: NodeJS and NPM / Python Flask. Advanced topics: modules, callbacks, promises,
async-await, arrow functions, events, websockets
Module 8: Web Design Patterns
Module 9: Javascript frameworks: ReactJS
Module 10: Javascript frameworks: AngularJS
Module 11: Javascript frameworks: AngularJS
Module 12: Website performance considerations