Copenhagen School of Design and Technology

da

Full-Stack Web Development

2024/2025
Danish title
Full-Stack Web Development
Study programme
Software Development
Type of education
Full time education
Level of education
Bachelor (top-up)
Duration of the subject/module
1 semester
Ects
10
Programme elements
Elective
Language
English
Start time
Autumn
Spring
Location
Håndværkergården, København N
Subject number
4136201
Responsible for the subject(s)/modul(es)
Tomas Pesek
Arturo Mora Rioja
  • Purpose and learning objectives

    This practical subject focuses on architecture, development, and deployment of web applications. It is language/framework-agnostic, but the examples will be in Java/Spring Boot, JavaScript/node.js for the backend, React.js for the frontend, and MySQL, MongoDB, Neo4j for the databases.

    The subject includes coding in the front-end and in the back-end, administering basic elements of a web server, connecting with a database, designing and implementing API-driven front-end applications, designing and implementing REST and GraphQL APIs following market standards, protecting applications against the most usual security threats, and deploying web applications online. Basic web service concepts like cookies and sessions will be addressed. The students will not only learn to develop web applications, but they will also gather a deeper understanding of web architectures and web development environments.

    Knowledge

    Students will acquire the following knowledge:
    - Web Development Architectures
    - HTTP Protocol and Methods
    - PWA – Progressive Web Applications
    - Client-side vs Server-side rendering
    - Security:
    --- Authentication: JWT, sessions, cookies
    --- Authorization
    --- Hashing and encryption
    --- SQL injections
    --- XSS, CSRF
    --- CORS

    - The Front-End:
    --- HTML5
    --- CSS3, Flexbox, Grid
    --- JavaScript and the DOM
    --- Ajax
    --- API Consumption
    --- SPA – Single page application
    --- React.js:
    ------ Logging
    ------ Routing
    ------ Pagination, filtering, sorting
    ------ Forms + input validation
    ------ Building reusable components

    - The Back-End:
    --- Web servers
    --- APIs:
    ------ REST API
    ------ GraphQL
    ------ + others like SOAP, RPC, and event driven APIs
    --- Databases

    - Online Web Application Deployment
    --- CI/CD pipeline
    --- Testing:
    ------ Unit tests
    ------ Integration tests
    ------ End to end tests
    --- Scaling:
    ------ databases, backend, frontend
    ------ Technologies: Containers, Kubernetes

    Skills

    The students will acquire the following skills:
    - Front-end web development
    - Back-end web development
    - API development and consumption
    - Web application deployment

    Competences

    The students will acquire the following competences:
    - Design the architecture of a web application
    - Work with a web development environment
    - Create full-stack web applications
    - Create applications that connect to external APIs
    - Deploy web applications online

  • Type of instruction
    The course is based on Problem-Based Learning. The students must apply knowledge from the classroom sessions in their project work, and acquire knowledge on their own to complete the projects. The teacher works in a supervisor role during project work, so the students are never left on their own.
  • Subject/module requirement for participation

    Academic requirement for participation
    Students should have working knowledge of and proficiency in at least a high-level programming language.

    Equipment needed to participate
    Windows PC, Mac or Linux
    - min 8 GB RAM (16 GB RAM preferably)
    - 200 GB available disk space
    - CPU with virtualisation hardware (usually available in most modern CPUs)
    - 15,6” screen or bigger is recommended

  • Exam

    The learning outcomes of the exam are identical with the learning outcomes of the subject(s)/modul(es)

    Exam in one or more subjects
    The final project consists of a CRUD web application deployed online. It must fulfil the standards and best practices addressed throughout the subject.
    Type of exam
    Combined written and oral examination
    The exam is individual, but the students can work on their project report and product in groups.
    Formal requirements
    Max. 1 page in bullet-point form must be delivered. The page must contain relevant topics that are supposed to be presented at the exam.

    It is possible to make changes to these topics in the oral exam.

    The teacher will explain further details regarding the page's content.
    Individual exam or group exam
    Individual
    Exam languages
    English
    Duration
    Presentation - max 10 min.
    Examination- max. 15 min.
    Grading - 5 min.
    Total - 30 min.
    Permitted exam aids
    Computer
    Available exam aids
    Projector
    Type of evaluation
    7-point grading scale
    Examiners
    Internal censure
  • Preliminary literature list
    This is a preliminary literature list. A final literature list will be provided in connection with study start.
    Course materials available to the students via Internet.
  • Additional information
    This elective subject may not run in certain semesters (e.g., if not enough students choose it).

    Some classes may take place online.
80
hours of teaching
194
hours of preparation
The figure shows the extent of workload related to the subject divided into different study activities.

In the subject Full-Stack Web Development you will receive 80 hours of instruction, which corresponds to 106 lessons (1 lesson = 45 min.) and 29% of your total workload for the subject.

The teaching primarily consists of the following activities: classroom teaching, exercises, project work, Online teaching.
The preparation primarily consists of the following activities: project work, reading your own notes, reading the curriculum.

Read about KEAs Study Activity Model

*KEA can deviate from the number of hours if this is justified by special circumstances