XB_0102Year 1 · Period 66ECModerateOfficial study guide

Applied Programming for AI

Advanced programming for AI: web technologies, HTML/CSS/JavaScript, Git, RESTful APIs, and building data-driven web applications.

Mandatory attendance

All practical sessions are mandatory. Students are expected to be full-time available for this course.

Learning objectives

The course prepares students for future projects that involve programming within the bachelor programme. Students learn to apply programming concepts in a medium sized project. The course introduces students to web technologies such as HTML, CSS and JavaScript, and commonly used tooling in software development, e.g. Git. (Knowledge and understanding), as well as using and understanding RESTful API services. After completing the course, students will be able to plan, develop, and implement a web application that involves data manipulation and visualization requirements. (Applying knowledge and understanding) (Making Judgements) Students will interact with generative AI tools for coding to explore how to work with them in a collaborative setting. Also, to understand their advantages and limitations.

This is a project-based course where you build a full-stack web application from scratch in teams of four over 4 intensive weeks. You will develop a Python backend with a RESTful API (using Flask or Django) that interacts with external APIs, handles data persistence, and supports CRUD operations and querying with filters. The frontend is built individually using HTML, CSS, JavaScript, and optionally Bootstrap — and this is the one part where you are allowed (and encouraged) to use generative AI coding tools like Copilot or Cursor. The backend and frontend must be separate applications that communicate via REST. Development follows a Test-Driven Development (TDD) approach: you write tests first, commit them, then implement features until tests pass. The course covers the internet and HTTP basics, Git version control and branching, virtual environments, user stories and prototyping, CRUD and REST APIs, Flask/Django, HTML/CSS/JavaScript, and prompting with GenAI tools. Deliverables include a project proposal, backend + tests, an individual frontend, a GenAI report, a final demo presentation, a peer review, and a pass/fail coding interview. Attendance at practicals is mandatory — missing more than one session costs 2 grade points each, and missing four or more means an automatic fail on the coding interview (which has no resit).

Assessment

The student's knowledge will be assessed based on their group project's implementation, their individual contribution to the development based on version control statistics, and weekly meetings, and a final coding interview. The final grade for this course consists of the following parts: Project Proposal (team) → Pass/fail Implementation (team) → 60% Degree of participation (individual) (20%) Attendance, Contribution to the project. Git Activity, Project report/reflection (individual and team components) → 10% Final demo presentation (team) → 10% Coding interview (individual) → Pass/fail To obtain a passing grade for the course, you must pass the coding interview. Each week you have deliverables that you must implement and push to your repository. Each week, you have partial deliverables that you must submit via Canvas or GitHub. If you do not push your contributions in time, you will automatically get a fail for the coding interview. There is no resit for the coding interview.

Teaching methods

A combination of a few lectures and a lot of practical work. Students are expected to be full time available for this course. All practical sessions are mandatory.

Literature

The following literature will be used: Judith Donath, Alex Dragulescu, Aaron Zinman, Fernanda Viégas, and Rebecca Xiong. 2010. Data portraits. In ACM SIGGRAPH 2010 Art Gallery (SIGGRAPH '10). Association for Computing Machinery, New York, NY, USA, 375–383. https://doi.org/10.1145/1836786.1836793 Giorgia Lupi. Data Humanism: The Revolutionary Future of Data Visualization. In Printmag, January 30, 2017. https://www.printmag.com/article/data-humanism-future-of-data-visualization/ Edward R. Tufte. 2001. The visual display of quantitative information. Graphics Press, USA. Jacoba Urist. From Paint to Pixels. In The Atlantic, May 14, 2015. https://www.theatlantic.com/entertainment/archive/2015/05/the-rise-of-the-data-artist/392399/ Andy Kirk. 2016. Data Visualisation: A Handbook for Data Driven Design. Sage Publications Ltd.

Prerequisites

Students should have completed Introduction to Python Programming (XB_0082) with a sufficient grade before they can start this course.

programmingpythonelective