Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources
Studies
Admissions
The Institute
Resources

CS212

Web Application Development

Barcelona Campus
Jun 10, 2024 - Jun 28, 2024
The course focuses primarily on fundamental concepts and technologies rather than on a particular language or framework
Barcelona Campus
Jun 10, 2024 - Jun 28, 2024
Andrey Martynenko

Faculty

Andrey Martynenko

Software Engineer at Google

Course length

3 weeks

Duration

3 hours
per day

Total hours

45 hours

Credits

4 ECTS

Language

English

Course type

Offline

Fee for single course

€1500

Fee for degree students

€750

Skills you’ll learn

Frontend developmentJavaScriptBackend DevelopmentSecure Web ApplicationReact
OverviewCourse outlineCourse materialsPrerequisitesMethod & grading

Overview

This course gives a comprehensive overview of modern web development technologies, including both frontend and backend development, as well as many related concepts. Students will learn foundations of JavaScript and modern frontend frameworks, databases and data systems, networking, security, performance, system design, and scalability in web applications.

The course focuses primarily on fundamental concepts and technologies rather than on a particular language or framework. Though, on the server side, Java or Kotlin may be used for code samples and exercises.

Learning highlights

  • Learn to develop interactive browser applications.
  • Learn to build backend applications.
  • Learn about system design and scalability.
  • Learn how to secure, test and deploy web applications.

Course outline

15 classes

Dive into the details of the course and get a sense of what each class will cover.
Monday
Tuesday
Wednesday
Thursday
Friday
Monday
1

Session 1

Course introduction. Modern web ecosystem. HTML and CSS introduction.

Tuesday
2

Session 2

JavaScript language fundamentals.

Wednesday
3

Session 3

Diving into JavaScript language.

Thursday
4

Session 4

JavaScript in the browser. Asynchronous events, event-loop. Browser APIs. Client-server communication.

Friday
5

Session 5

JavaScript ecosystem. Frontend frameworks: React, Vue, Angular. Introduction to React.

Monday
6

Session 6

Diving into the React framework.

Tuesday
7

Session 7

Frontend application architectures. Developing and testing HTTP API.

Wednesday
8

Session 8

Network protocols: UDP and TCP, HTTP, WebSocket. Browser APIs.

Thursday
9

Session 9

Introduction to databases. Relational databases and SQL. NoSQL databases. Using databases in web applications.

Friday
10

Session 10

Data encoding formats and data evolution. RPCs.

Monday
11

Session 11

Authentication and authorization. Approaches and implementations.

Tuesday
12

Session 12

Web application security: threats, vulnerabilities, and how to protect against them. Testing web applications.

Wednesday
13

Session 13

Designing web applications: load balancing, caches, message queues, replication, and partitioning. Distributed systems and scalability. Optimizing web application performance.

Thursday
14

Session 14

Modern infrastructures for web applications. Containers, microservices, Kubernetes, and cloud.

Friday
15

Session 15

Final exam and project presentation. Discussion of extra topics.

Prerequisites

No advanced skills are required for this course. I do expect students to already know basic stuff, such as how to use the VCS and IDE of their choice.

Some knowledge of JavaScript and frontend technologies and frameworks, databases and SQL, and Java, Kotlin or other object-oriented languages will help students during the course, but are not required.

Methodology

A typical class will consist of a lecture where I will present a new topic and a seminar where we’ll be solving some practical problems. Classes will usually start with a simple quiz based on the subjects of the previous class. There will be few homework assignments on the key topics. At the end of the module, we will have an exam where you will be asked a few theoretical questions and a coding problem.

During the module, students will also be working on the project of their choice. This can be anything related to web development that you are interested in building. You can also work on improvements for any of your existing projects. You can work on a project individually or in a team.

Lectures

Seminars

Quizzes

Homework assignments

Projects of your choice (individual or group)

Final exam

Grading

The final grade will be composed of the following criteria:
50% - Course project
20% - Quizzes
15% - Homework assignments
15% - Final exam
Andrey Martynenko

Faculty

Andrey Martynenko

Software Engineer at Google

Graduated with a master’s degree in applied physics and mathematics from the Moscow Institute of Physics and Technology

Has started his career as a frontend developer and then gradually switched to full-stack and backend development

See full profile

Apply for this course

Snap up your chance to enroll before all spaces fill up.

Web Application Development

by Andrey Martynenko

Total hours

45 Hours

Dates

Jun 10 - Jun 28, 2024

Fee for single course

€1500

Fee for degree students

€750

How to secure your spot

Complete the form below to kickstart your application

Schedule your Harbour.Space interview

If successful, get ready to join us on campus

FAQ

Will I receive a certificate after completion?

Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.

Do I need a visa?

This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.

Can I get a discount?

Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.