Web Technologies and Programming course
This course is about building, not listening. It runs as a development studio: there are no planned lectures and no live coding by the instructor. Throughout the term each student develops a single product in their own repository: a Campus Events application.
In the six sprints before the midterm, students first build a working web prototype with HTML, CSS and JavaScript, then migrate it to an integrated frontend with Vite, TypeScript and React. In the six sprints after the midterm, the same repository gains a REST API with Express, persistent data with MongoDB and Mongoose, authentication with JWT, frontend–backend integration with Axios, and a production deployment. The term ends with a live full-stack application.
Every sprint follows the same rhythm: before class, study a 2–3 hour resource pack and complete a short preparation task; in class, develop your own code and get feedback directly on it; at the end of the sprint, demonstrate the working result and commit, push and tag the sprint.
A 3.5-hour session: 10 minutes of goals and acceptance criteria, 155 minutes of individual development with code-level guidance, 30 minutes of demonstrations, 15 minutes of commit, push and submission notes.
The technology stack is deliberately limited: client side HTML, CSS, JavaScript, TypeScript (strict), Vite, React, React Router and Axios; server side Node.js, Express, REST, JWT, MongoDB and Mongoose; delivery with Git, GitHub and deployment. Next.js/SSR, refresh tokens/OAuth and advanced cloud architecture are out of scope.
Prerequisites Basic programming. Sprint 0 (installing Node.js, npm, Git and GitHub) must be completed before the first class.
On successful completion, students will be able to:
Badge bonus: Tam isabet +1, İlk adım +1, Seri +2, İstikrar +3, Yarı yol +3; at most +10, capped at full marks.
Badge bonus: Tam isabet +1, İlk adım +1, Seri +2, İstikrar +3, Yarı yol +3; at most +10, capped at full marks.
Sprint grading: Every sprint is graded with the same weights: 40% working core functionality, 20% code that shows the learning goal, 20% commit, push, tag and submission note, 20% explaining the change. There is no separate “integrated project” grade; technical work is graded in the sprint where it is built. Responsibility accumulates: each new sprint builds on the previous features and must keep them working.
Midterm and final weeks: Most of the midterm and final grade comes from the sprints; the rest comes from that week's demo and submission (see Assessment). In midterm week the working React frontend is demonstrated live (repository, README, production build and domain). In final week the live full-stack application is shown: logging in, creating, updating and deleting an event, and the ownership check.
Submission: At the end of each sprint, commit, push and create a sprint tag (e.g. sprint-01); list known gaps in the submission note. Sprints are not separate repositories but recorded versions of the same product.
Sprint 0: Not graded; completed before the first class so that technical problems surface before Sprint 1.
Role of the instructor: The instructor walks around the class, reviews code in place and gives direction. Solved code is not handed out; you get pointers for finding the bug. Every student runs, shows and can explain their own code.
AI tools: AI tools may be used; state the help you used in the submission note and be able to explain the code you add. Code you do not understand cannot be submitted.