Advanced JavaScript/TypeScript

Program: Bachelors Program in Full Stack Development
Program Level: Bachelor
Language: English
Subject Syllabus

Subject Overview

An advanced study of JavaScript and TypeScript for designing secure, scalable, maintainable full-stack systems. The subject combines language theory, runtime behavior, type-safe engineering, asynchronous programming, architecture, testing, performance, governance and contemporary industry practices.

Learning Goal

Students will be able to analyze JavaScript runtime behavior, construct advanced TypeScript models, design full-stack applications, evaluate architectural and tooling decisions, and deliver tested, secure, observable and ethically governed software aligned with current professional standards.

Syllabus

1. Advanced JavaScript Foundations and Execution Semantics

Learning Objective: Examine ECMAScript standards, lexical environments, scope, closures, hoisting, strict mode, primitive and reference values, equality, coercion, destructuring, iteration and execution contexts.

Category: foundation

2. Objects, Prototypes, Classes and Modules

Learning Objective: Apply property descriptors, prototypes, inheritance, composition, classes, private fields, symbols, iterators, generators and ES modules; compare object-oriented and composition-based designs.

Category: core

3. TypeScript Foundations and Compiler Architecture

Learning Objective: Use structural typing, inference, annotations, interfaces, type aliases, enums, unions, intersections, narrowing and compiler configuration; explain transpilation, declaration files and JavaScript interoperability.

Category: foundation

4. Advanced Type-Level Programming

Learning Objective: Construct generic APIs using constraints, conditional types, mapped types, indexed access, template literal types, utility types, discriminated unions and type guards while balancing type safety and complexity.

Category: advanced

5. Functions, Functional Programming and Immutability

Learning Objective: Master first-class and higher-order functions, closures, currying, composition, recursion, pure functions, immutability and persistent-data principles; evaluate functional and imperative trade-offs.

Category: core

6. Asynchronous JavaScript and Concurrency

Learning Objective: Analyze the call stack, event loop, task and microtask queues, promises and async/await; implement cancellation, retries, timeouts, streams, workers, concurrency control and race-condition prevention.

Category: core

7. Runtime Platforms: Browser, Node.js and Emerging Runtimes

Learning Objective: Compare browser, Node.js, Deno, Bun and edge runtime capabilities, including the DOM, Web APIs, file systems, processes, buffers, streams, modules and runtime-specific security boundaries.

Category: contemporary

8. Error Handling, Resilience and Observability

Learning Objective: Design typed error models, validation boundaries, fault-tolerant workflows and graceful degradation; apply structured logging, tracing, metrics and telemetry to diagnose production systems and support operational decisions.

Category: application

9. Full-Stack APIs and Data Integration

Learning Objective: Build type-safe REST, GraphQL and real-time interfaces; address serialization, schemas, validation, authentication, caching, database access, transactions, idempotency and shared client-server contracts.

Category: application

10. Software Architecture and Design Patterns

Learning Objective: Apply SOLID principles, dependency inversion, layered, hexagonal and event-driven architectures, and relevant creational, structural and behavioral patterns; document decisions and evaluate modular monolith and microservice trade-offs.

Category: strategic

11. Testing and Quality Engineering

Learning Objective: Develop unit, integration, contract, end-to-end, property-based and mutation tests using modern frameworks; use mocks responsibly, measure coverage and integrate static analysis and quality gates into CI/CD.

Category: application

12. Toolchains, Packages and Delivery

Learning Objective: Configure package managers, bundlers, transpilers, linters, formatters, source maps, monorepos and build pipelines; manage dependencies, semantic versioning, tree shaking, code splitting and reproducible deployments.

Category: core

13. Performance Engineering and Analytics

Learning Objective: Profile CPU, memory, network and rendering behavior; identify leaks and bottlenecks, optimize algorithms and bundles, and use benchmarks, Core Web Vitals and production analytics to prioritize evidence-based improvements.

Category: advanced

14. Security, Ethics and Software Governance

Learning Objective: Mitigate injection, XSS, CSRF, prototype pollution, insecure deserialization and supply-chain risks; apply secure coding, privacy, accessibility, licensing, auditability and responsible dependency governance.

Category: strategic

15. Contemporary Frameworks, AI Integration and Capstone Practice

Learning Objective: Evaluate typed patterns in contemporary frontend and backend frameworks, serverless and edge systems, WebAssembly and AI-assisted development; deliver a governed full-stack project while assessing maintainability, vendor risk, ethical AI use and digital-transformation value.

Category: contemporary

Advanced JavaScript/TypeScript
Bachelors Program in Full Stack Development