https://studiegids.vu.nl/en/courses/2025-2026/XB_0102The 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.In this course, students will implement a complete web application including data acquisition, parsing, cleaning, representation, and interaction. The course builds upon the course Introduction to Python Programming and Computational Thinking. Students will learn how to choose and use different data structures (e.g., lists, dictionaries, tuples, matrices). They also will learn how to choose the right way of presenting information depending on the target audience and type of data.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.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/failImplementation (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.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.1836793Giorgia 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.Bachelor Artificial Intelligence (year 1)Students should have completed Introduction to Python Programming (XB_0082) with a sufficient grade before they can start this course.Human Computer Interaction (XB_0013) is highly recommended as background knowledge.