Single-Page Web Applications





Offered by

ICT Engineering




SDJ3 and RWD1 or similar.

Main purpose

The purpose of this course is to learn to implement single-page web applications using different technologies and patterns.


The student should be able to
  • define dynamic and static languages
  • identify pitfalls of asynchronous programming
  • explain the JavaScript object model including prototype model
  • define functional programming
  • describe the methods for client/server programming
  • describe web sockets
  • explain reactive programming



The student should be able to apply
  • use object-oriented programming in JavaScript
  • use functional programming in JavaScript
  • apply common design patterns to document object models
  • use callbacks and other higher-order functions for general programming in JavaScript
  • apply asynchronous programming using Promises to implement client/server programming
  • apply asynchronous programming using XmlHttpRequest to implement client/server programming
  • use web sockets to implement client/server communication
  • use reactive programming including operators to implement client/server communication


At the end of the course, the students should be able to
  • compare methods of object creation
  • compare methods of inheritance
  • relate functional programming to imperative programming in JavaScript
  • compare patterns of GUI programming
  • compare use of request/response, web sockets and reactive programming
  • design and implement single-page application using JavaScript, web services, asynchronous programming, and client/server communication patterns


  • JavaScript
    • Dynamic objects
    • Prototypes
    • Prototypical inheritance
    • Functional programming
    • Promises
  • Application Development
    • HTML DOM
    • Asynchronous programming
    • XmlHttpRequest
    • JSON
    • Flow pattern
    • 2-way data binding
    • Reactive programming
    • Web sockets


Teaching methods and study activities

Lessons alternate between theory and practical exercises. The course contains one or more compulsory assignments. If the assignments are not approved by the teacher, the student will be denied attending the exam and will thus have used one exam attempt.
Expected workload for the average student:
Expected workload for students is estimated to 135 hours.


  • Martin Haverbeke, Eloquent JavaScript: A Modern Introduction to Programming, 3rd Edition, No Starch Press, ISBN 978-1593279509
  • Internet resources


The course is evaluated according to the 7-point grading scale based on the oral exam at the end of the course.


Oral examination based on a question from the course syllabus based on the course assignment. Approximately 20 minutes (including discussion of examinee’s performance) without preparation.

Internal exam.

Grading criteria


Additional information



Ole Ilsgaard Hougaard (IOH)

Valid from

8/15/2019 12:00:00 AM

Course type

6. semester
7. semester
Elective for the specialization Interactive Media