Overview
General information and contact
| Course | ICD0026 JavaScript edasijõudnutele / Advanced JavaScript |
| Volume | 6 ECTS |
| Language of instruction | Estonian |
| Curricula | IADB17/26 (elective) |
| Lecturer | Mikk Raba, visiting lecturer, IC – IT College |
| mikk.raba@taltech.ee | |
| Response time | Up to 3 working days. No replies on weekends or public holidays. |
| Official announcements | In the course's official Microsoft Teams channel |
| Consultations | By arrangement after the practical session, or as a Teams call |
Communication 2026/2027 fall
- Main channel - MS Teams
- TA-s
- Karl Rudolf Õigus - karl.oigus@taltech.ee
- Stella Tukia - stella.tukia@taltech.ee
- GitLab.
- Click Create project → Create blank project.
- Select your personal namespace (<uniid>).
- Set both Project name and Project slug to icd0026-26f. Here the 26 after dash means 2026 and f means fall.
- Echo
- Course demos TBD
Course objectives
The aim of the course is to consolidate and deepen what was learned in the introductory JavaScript course, to provide knowledge of the language's internal workings, and to develop the skills needed to build more complex applications, components and server-side applications.
Learning outcomes
A student who has completed the course:
- can describe in depth how JavaScript works;
- understands how to create and publish reusable libraries and components, and is able to do so;
- can develop both server-side and browser-side applications;
- can apply the tools and good practices common in the field during development.
Brief course description
- JavaScript execution model: the event loop, asynchrony, prototypes, metaprogramming;
- Library development: module systems, type definitions (JSDoc, TypeScript), semantic versioning, publishing to npm;
- Testing (Vitest, Playwright) and common development patterns;
- Server applications and runtimes (Node.js, Bun, Deno);
- Web components and browser extensions (Web Components, MV3);
- Web security: common vulnerabilities and performance profiling.
Prerequisites, prior knowledge and registration
Prerequisite courses: ICD0006 JavaScript and ICD0007 Web Technologies.
Students are expected to be capable of independent study and programming, and to have:
- basic knowledge of modern web technologies (HTML, CSS, JavaScript, TypeScript, REST/JSON);
- an understanding of the basic principles of how web applications work (HTTP requests and responses, the division of roles between client and server, the DOM and how the browser works, asynchronous requests, the general principles of authentication and sessions);
- basic knowledge of Git and the command line;
- the ability to read English-language documentation.
Students wishing to take the course must declare it in ÕIS by the deadlines set in the academic calendar.
Participation of students with special needs
Students with special needs are able to participate in the course. Students are asked to inform the lecturer at the start of the course of any special needs that may affect their participation in coursework or assessment activities.
Resources and technical requirements
A personal laptop is required. Recommended laptop specifications: 16 GB RAM, approx. 10 GB of free disk space.
Software: Visual Studio Code, Git, Node.js LTS, Google Chrome / Microsoft Edge.
Course organisation, workload and schedule
Lectures and practical sessions take place on campus according to the timetable and are also available online. Defences take place orally, on site at the university. If a defence is unsuccessful, one re-defence is permitted.
There are 4 academic contact hours per week — 2 hours of lectures and 2 hours of practical sessions. The practical session takes place within the same session as the lecture: the lecturer demonstrates, after which students work on their own. The average workload is 8–10 actual hours per week, though it may not be distributed evenly.
Students in session-based study are expected to watch the lectures as they are released, or during a suitable week according to the session-study calendar.
Course literature
- You Don't Know JS book series
- JavaScript: The Definitive Guide: Master the World's Most-Used Programming Language
- javascript.info
- ...
Course process and final grade
The course consists of three interconnected parts. All parts must be passed with a positive result.
Homework (10 p). In the first half of the course, smaller exercises and analysis of code examples that support the acquisition of lecture material. Assessed on the basis of completion. These same exercises form a question bank that is used as the basis for the mid-term defence.
Project (20 p). Over the course, the student designs and develops their own project, covering a library, a server-side part and a client-side solution. The project idea is agreed with the lecturer at the start of the course. While working, the student keeps a running notes file recording observations, problems encountered and choices made, together with the alternatives considered.
Defences (mid-term defence 25 p, final defence 45 p). A mid-term defence takes place in the middle of the course, where the student answers questions selected from the question bank and explains their work so far. At the end of the course, the student submits a short reflection (up to one page) on what they have learned during the course, based on their notes and project. The reflection forms the basis for the oral final defence.
Admission to the final defence requires a working project that meets the requirements. At the defence, the student's code is reviewed: they explain the choices made, justify the alternatives considered, and if necessary make small changes on the spot.
The oral defence is decisive in the assessment — students are expected to be able to explain and justify their solutions without any aids.
The point weightings may be specified more precisely at the start of the course.
NOTES.md file
Create a NOTES.md in your project repository. One entry per week: something that surprised you, or a decision you made with the alternative you rejected. Two lines is enough. Commit it so the timestamps are real.
The end-of-course reflection is assembled from this file. Students who keep it write that page in an hour.
Use of AI
The use of artificial intelligence is encouraged on this course. Students may use AI solutions as they see fit to better understand the topics covered in class or to complete homework, but the student must be able to explain the work done and the solutions used without AI assistance. No aids may be used during defences.
The lecturer may use automated solutions when grading homework. The analysis and results obtained from automated solutions, including any use of artificial intelligence, are reviewed manually. The grading decision is made manually by the lecturer.