CS212

Faculty
Andrey Martynenko
Software Engineer at Google
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
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.
15 classes
Course introduction. Modern web ecosystem. HTML and CSS introduction.
JavaScript language fundamentals.
Diving into JavaScript language.
JavaScript in the browser. Asynchronous events, event-loop. Browser APIs. Client-server communication.
JavaScript ecosystem. Frontend frameworks: React, Vue, Angular. Introduction to React.
Diving into the React framework.
Frontend application architectures. Developing and testing HTTP API.
Network protocols: UDP and TCP, HTTP, WebSocket. Browser APIs.
Introduction to databases. Relational databases and SQL. NoSQL databases. Using databases in web applications.
Data encoding formats and data evolution. RPCs.
Authentication and authorization. Approaches and implementations.
Web application security: threats, vulnerabilities, and how to protect against them. Testing web applications.
Designing web applications: load balancing, caches, message queues, replication, and partitioning. Distributed systems and scalability. Optimizing web application performance.
Modern infrastructures for web applications. Containers, microservices, Kubernetes, and cloud.
Final exam and project presentation. Discussion of extra topics.
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.
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
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 profileApply for this course
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.