About this course
Design server-side applications and well-structured APIs that power web and mobile clients, with attention to data modeling, authentication, and scale.
Built a back-end API platform on Node.js or FastAPI exposing both REST and an Apollo GraphQL layer over a normalized, indexed PostgreSQL schema, secured with JWT authentication and role-based access control, accelerated with Redis caching, and load-tested with k6 against scaling targets.
Expected outcomes
- Explain the architectural constraints of REST and resource-oriented design
- Compare REST and GraphQL and reason about their trade-offs
- Model relational and non-relational data and analyze normalization
- Design and implement APIs with versioning and clear contracts
- Implement authentication, sessions, and authorization securely
- Apply caching strategies and reason about consistency and invalidation
- Analyze database indexing, transactions, and query performance
- Scale back-end services horizontally and handle concurrency
- Validate APIs with automated and contract testing
- Evaluate consistency, availability, and latency trade-offs in data systems
Key topics
- REST & GraphQL APIs
- Databases & data modeling
- Authentication & sessions
- Caching & scaling
Theoretical foundations
The concepts and results this course rests on.
- REST architectural constraints and resource-oriented design
- The relational model and normalization theory
- ACID transactions, isolation levels, and indexing internals
- Token and federated identity flows for authentication
- Cache coherence, invalidation, and consistency trade-offs
- Replication, statelessness, and the CAP trade-off
- Role and attribute-based access control and least privilege
Prerequisites
Course-specific prerequisites:
- Databases
- Computer networks
- Software engineering and a server-side language
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants to generate REST and GraphQL handlers, refactor resolvers, and draft normalized SQL schemas with sensible indexes and migrations. They prompt tools to write contract and integration tests, seed realistic data, and build k6 load scripts, while connecting agents to database and API MCP servers to inspect query plans and propose tuning. AI helps reason about caching and invalidation strategies and draft JWT and role-based access rules, which students then probe for authorization gaps. Every generated query and auth rule is reviewed, since a plausible-looking AI suggestion can leak data or trigger an N+1 performance cliff.
Student project
Teams build one back-end service that grows from basic endpoints into a complete API platform with a tuned data layer. The service exposes both REST and GraphQL, enforces secure authentication and authorization, and adds caching and scaling to meet load targets. Each increment is validated with automated and contract 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
- Node.js or Python: implement back-end services
- Express or FastAPI: build HTTP API frameworks
- PostgreSQL: store relational data
- Prisma or SQLAlchemy: model and query the database
- Apollo Server: serve a GraphQL API
- Redis: cache responses and session data
- JSON Web Tokens: implement token-based authentication
- OpenAPI: document and validate REST contracts
- Postman: explore and test APIs
- Docker: run databases and services locally
- k6: load test back-end endpoints
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
- YouTubeNode.js and Express Back End Development (8-Hour Course)
- UniversityFull Stack Open: Deep Dive Into Modern Web Development
In Hebrew · בעברית
Primary literature
Seminal works to read for graduate-level depth.
- PaperArchitectural Styles and the Design of Network-based Software Architectures
- PaperA Relational Model of Data for Large Shared Data Banks
- PaperRFC 9110: HTTP Semantics
- PaperRFC 6749: The OAuth 2.0 Authorization Framework
- PaperRFC 7519: JSON Web Token (JWT)
- PaperDynamo: Amazon's Highly Available Key-value Store
References
Books and resources link to an online or publisher page.
- TextbookRESTful Web APIs: Services for a Changing World
- TextbookLearning GraphQL: Declarative Data Fetching for Modern Web Apps
- TextbookDesigning Data-Intensive Applications
- TextbookDatabase System Concepts, 7th Edition
- DocumentationOpenID Connect Core 1.0
- DocumentationGraphQL Documentation (Learn)
- DocumentationPostgreSQL Documentation
- DocumentationRedis Documentation
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Core · Semester 2 |
| Networking & Cyber Security | Elective |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Elective |
| Immersive Systems & Game Development | Elective |
| Defense Technologies & Autonomous Systems | Elective |