Web Programming I

My Web Programming I course at Reykjavik University, Iceland, is publicly available on Youtube.

The course is intended to cover the following learning outcomes. However, keep in mind that the actual course at Reykjavik University includes practice sessions and graded assignments, as well as a written exam. Therefore, following the Youtube videos only might not lead to all of the learning outcomes. The slides and practical materials covered in the Youtube videos can be downloaded here.

Learning and comprehension

  • define and contrast client-side and server-side web applications
  • summarise the content of HTTP requests and responses
  • list different HTTP methods and explain their purpose
  • explain the features of the different HTTP methods
  • define and explain key language concepts of HTML, CSS, and JavaScript
  • define accessibility for web applications and give examples for accessible/not accessible code
  • predict the behaviour and look of a web application based on its source code
  • predict the behaviour of asynchronous JavaScript code
  • discuss web application testing and contrast different testing techniques
  • summarise the different constraints of REST in relation to RESTful APIs
  • discuss the correctness of HTTP response status codes for different endpoints of a RESTful API
  • list and explain the most important web security threats according to the OWASP TOP 10

Application and analysis

  • develop basic client-side web applications using HTML, CSS, and JavaScript
  • make use of AJAX to enrich web applications with asynchronous behaviour
  • debug and test basic client-side web applications
  • analyse web application source code for errors
  • choose the correct HTTP request method for different REST endpoints
  • build a RESTful backend application
  • make use of a database to persist data in a backend application
  • analyse an existing RESTful API and point out shortcomings
  • deploy a server-side application to an online cloud provider
  • test and debug server-side applications
  • develop tests for common web security threats
  • inspect web application source code for potential security threats

Synthesis and evaluation

  • propose improvements to web application source code
  • improve existing web application source code
  • assess existing code for errors and security vulnerabilities
  • compare different testing techniques for web applications
  • design a RESTful API according to given requirements
  • convert a backend API so that it conforms to the REST style
  • debate the importance of testing and debugging for web application development
  • debate the societal role of web applications and the ethical impact this has on web development