IDG2100
Full-stack Web Development
Spring
Gjøvik
English
About this course
Content
Nowadays, being a web developer implies learning the entire process of development from design to actual deployment, ranging from mastering the baseline concepts and cornerstone web technologies to developing a wide set of skills needed in a modern software development, all in all, to become competent and comfortable in all of the widely different environments.
This course covers the fundamentals of the baseline concepts and technologies that any student needs to know in order to become a full stack web developer. However, a full stack application may rely on a wide range of different technologies run on the client or server side (from programming languages to frameworks or data bases). Since JavaScript is the dominant programming language in web development, the scope of this subject will be limited to the JavaScript stack (end-to-end) and the whole course will explore at least one of the main stacks for development (MEAN, MERN or MEVN) as a baseline technology that will help students embrace modern web development.
Topics
- Architecture of modern vs traditional web applications
- Front-end vs back-end paradigms
- Full-stack development overview (stack of different technologies)
- API paradigms (Request Response APIs and Event-Driven APIs)
- API security: Authentication and Authorisation, OAuth, WebHooks, etc.
- Design APIs and best practices
- Front-end frameworks
- Back-end frameworks
- Modern stack for development (MEAN, MERN or MEVN)
- Developer tools: task runners, bundlers, etc.
Learning outcomes
Knowledge
The student knows:
- different architectures for modern and traditional web applications
- JavaScript frameworks
- the pros and cons of rendering contents either on the server-side or on the client-side
- different API paradigms and when those can be used
- authentication and authorisation methods
- different technologies that can be used in a web project and the developing tools that can improve the working flow
Skill
The student can:
- design, implement and document APIs
- use a specific JavaScript stack (MEAN, MERN or MEVN) to build a full-stack application
- implement simple authentication techniques
- use package managers, module bundlers and other tools for developers
General Competence
The student:
- carry on the development of a full stack project,
- reflect on the architecture and the more suitable technologies for solving a certain problem
- learn new libraries or frameworks using official documentation
Teaching methods
The course is being discontinued and will continue only to accommodate students who were unable to complete it within the standard timeframe. Starting in spring 2027, it will be adapted to the number of students enrolled. If enrollment is low, the course will be offered through self-based learning and/or tutoring.
Compulsory activities
4 compulsory assignments (approved/not approved) spread throughout the semester.
On-campus oral presentations may be required for certain compulsory assignments.
One of the compulsory assignments (not an oral presentation) may be scheduled to take place on campus during office hours to complete an activity during the session.
All compulsory work requirements must be approved in order to present the final full-stack project.
This course is offered to exchange students. Language of instruction is English.