About this course
Build responsive, accessible, interactive user interfaces with modern component frameworks and front-end tooling.
Shipped an accessible single-page application in React or Vue with TypeScript: a composed component hierarchy, predictable store-managed state, client-side routing, WCAG-audited markup, and a Vite code-split build tuned to performance budgets and covered by Vitest and Playwright tests.
Expected outcomes
- Explain the component model and unidirectional data flow in modern frameworks
- Analyze the document object model, rendering, and reconciliation foundations
- Build component-based interfaces with React or Vue
- Manage application state with predictable patterns and stores
- Design responsive layouts using modern CSS and design principles
- Apply accessibility standards grounded in the WCAG guidelines
- Configure modern build tooling and module bundling
- Measure and optimize front-end performance and loading behavior
- Test components and user interactions systematically
- Evaluate trade-offs between rendering strategies and architectures
Key topics
- Component frameworks (React/Vue)
- State management
- Responsive & accessible design
- Build tooling & performance
Theoretical foundations
The concepts and results this course rests on.
- The document object model and the browser rendering pipeline
- The component model and unidirectional data flow
- Declarative rendering, reconciliation, and the virtual DOM
- Reactive programming and dependency-tracked state propagation
- WCAG accessibility principles and semantic, inclusive interaction
- The critical rendering path and front-end performance metrics
- Module bundling, tree shaking, and code splitting
Prerequisites
Course-specific prerequisites:
- Programming fundamentals
- Basic web technologies (HTML, CSS, JavaScript)
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants to scaffold React or Vue components, refactor prop and event contracts, and convert rough sketches into typed, composable interfaces. They prompt tools to generate Vitest and Playwright tests, mock API data, and propose accessible ARIA markup, then ask the AI to audit components against WCAG and performance budgets. Editor-integrated agents and browser or Lighthouse MCP connections help diagnose render bottlenecks and bundle bloat and suggest code-splitting changes. Because generated UI code can silently break keyboard navigation or accessibility, students validate every suggestion against real assistive-technology and performance checks.
Student project
Teams design and build one single-page web application that grows from a static shell into a component-based, state-managed product. The application is made responsive, accessible to WCAG standards, and tuned to performance budgets with an optimized build. Every increment is validated through component and interaction tests.
Requirements
- Build a working system, not a set of disconnected exercises.
- Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
- Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
- Carry one running project from specification to a deployed, defensible result across the whole term.
- Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).
Example projects
Assessment & grading
Grading is project-based, with no written exam. Teams of three or four present one running project three times.
| Component | What it covers | Weight |
|---|---|---|
| Project · Specification | Presentation 1 (week 5): problem, objectives, and architecture | 20% |
| Project · Interim | Presentation 2 (week 8): the working system demonstrated live | 30% |
| Project · Final | Presentation 3 (week 13): end-to-end demo with oral defense | 50% |
Tools & platforms
- React: build component-based user interfaces
- Vue: build reactive component interfaces
- TypeScript: add static typing to front-end code
- Vite: bundle and serve the application during development
- Redux Toolkit or Pinia: manage application state
- React Router or Vue Router: handle client-side routing
- Tailwind CSS: compose responsive utility-based styles
- Vitest: run unit and component tests
- Playwright: run end-to-end interaction tests
- axe DevTools: audit accessibility compliance
- Lighthouse: measure performance and best practices
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
- YouTubeLearn React JS in This Free 7-Hour Course
- YouTubeFrontend Web Development: In-Depth Project Tutorial
In Hebrew · בעברית
- YouTubeקורס React מלא בחינם
- YouTubeקורס React - פיתוח צד לקוח
Primary literature
Seminal works to read for graduate-level depth.
- PaperArchitectural Styles and the Design of Network-based Software Architectures
- PaperA Survey on Reactive Programming
- PaperWeb Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation
- PaperHTML Standard (Living Standard)
- PaperDOM Standard (Living Standard)
- PaperECMAScript Language Specification (ECMA-262)
References
Books and resources link to an online or publisher page.
- DocumentationReact Documentation (Learn React)
- DocumentationVue.js Documentation (Vue 3 Guide)
- DocumentationMDN Web Docs
- DocumentationWCAG 2 Overview (Web Content Accessibility Guidelines 2.2)
- TextbookEloquent JavaScript, 4th Edition
- TextbookHigh Performance Browser Networking
- DocumentationVite Documentation (Getting Started)
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Core · Semester 1 |
| Networking & Cyber Security | Elective |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Elective |
| Immersive Systems & Game Development | Core · Semester 1 |
| Defense Technologies & Autonomous Systems | Elective |