COURSE SYLLABUS
Web Development - Advanced Concepts, 7.5 credits
Fördjupad webbutveckling, 7,5 högskolepoäng
Course Code: TFWN19
Confirmed by: Dean Dec 4, 2018
Valid From: Jan 1, 2019
Version: 1
Education Cycle: First-cycle level
Disciplinary domain: Technology
Subject group: DT1
Specialised in: G2F
Main field of study: Computer Engineering

Intended Learning Outcomes (ILO)

After a successful course, the student shall

Knowledge and understanding

- display knowledge of the need for, and the use of, Content Delivery Networks
- display knowledge of the challenges inherent in and technologies used for the construction of scalable web applications (NOSQL databases, horisontal scaling with session management, data partitioning and sharding, etc)

Skills and abilities

- display the ability to use JavaScript to manipulate a web page's Document Object Model
- display the ability to program against commonly used JavaScript libraries
- display the ability to construct web pages that interact with other web systems using REST/JSON, OAuth, etc.
- display the ability to use advanced web client APIs such as web storage, web workers, web components, WebAssembly, etc.
- display the ability to configure and use containers for development, testing, and deployment environments

Judgement and approach

- demonstrate the ability to evaluate the security of web applications

Contents

The course aims to convey advanced web programming concepts and techniques. The course starts with how to use JavaScript and the Document Object Model to directly modify a web pages content and looks on the client side. This portion also covers certain key client side libraries and APIs. The course then focuses on the server side, specifically using Node.js and associated frameworks, teaching the student how to construct scalable database-backed back end solutions, which communicate with front end web pages using REST APIs. The security perspective is discussed throughout the course, on both client- and server-side. Additionally, the course emphasizes maintainable program structure and the use of containers to support development, testing, and deployment of web applications.

The course includes the following topics:
- Document Object Model
- Client APIs and libraries
- Architecture and REST APIs
- Containers for web development
- Back ends in Node.js
- Authentication and authorisation
- Calling other web services

Type of instruction

Tuition will consist of lectures, lab work, and project work.

The teaching is conducted in English.

Prerequisites

General entry requirements and completed courses 60 credits in first cycle and completed courses Web Development Fundamentals, 7,5 credits and Network Programming 7,5 credits (or the equivalent).

Examination and grades

The course is graded 5,4,3 or Fail .

The final grade for the course is based on a balanced set of assessments. The final grade will only be issued after satisfactory completion of all assessments.

Registration of examination:
Name of the TestValueGrading
Project Work4 credits5/4/3/U
Written Examination2.5 credits5/4/3/U
Laboratory Work1 creditU/G

Course literature

Literature

The litterature list for the course will be provided one month before the course starts.

The course consists of the literature Eloquent JavaScript 3rd edition by Marijn Haverbeke, which is available for free on the website https://eloquentjavascript.net/.