Build a Web App!

Course Detail

Build a Web App!

This course introduces students to how websites and web applications are built from the ground up.

Overview

Designed for Grade 7 and above, this course introduces students to how websites and web applications are built from the ground up. Students learn the entire process of building a website from learning structure, style, logic, data handling, and best practices. Along the way, you'll even learn programming fundamentals that can be applied to other fields. We'll focus on core concepts, hands-on building, and understanding how web applications function. The course concludes by demonstrating how AI can be used to rapidly build a professional‑grade web application.

What students will learn

  • HTML
  • CSS
  • Python
  • Flask
  • SQLite
  • AI coding assistants ('Vibe-coding')

Course syllabus

Week 1: How the Web Works **Topics:** - What is a website? - How browsers read HTML - Tags, elements, and structure **Build:** - Create a basic personal webpage - Headings, paragraphs, images, links Week 2: Styling with CSS **Topics:** - Separation of content and style - Colors, fonts, spacing **Build:** - Apply styles to webpage - Improve readability and layout Week 3: Completing your Site ** Focus:** - Improve layout and design - Add navigation - Make site cleaner and more usable - Present your creation! **Instructor Role:** - Design feedback - CSS help - Layout troubleshooting Week 5: Introduction to Programming **Topics:** - What is a programming? What is a programming 'language'? - What is Scratch? - Variables and data types - Conditionals and loops **Build:** - Simple Scratch Project Week 6: Introduction to Python **Topics:** - What is Python? - Translating our knowledge from Scratch (block-based) into Python (text-based) - Variables, data types, conditionals, and loops in Python **Build:** - Simple Python scripts - Console-based exercises Week 7: Flask & Web Servers ** Topics:** - What a web server does - Flask basics - Routes and responses **Build:** - First Flask app - Serve HTML pages Week 8: Build Lab + Forms & Data Flow **Focus:** - Connect HTML forms to Flask - Handle GET and POST requests **Instructor Role:** - Backend troubleshooting - Explaining request/response flow Week 9: Databases & Persistence **Topics:** - Why databases exist - Tables and records - CRUD basics **Build:** - Save data to SQLite - Retrieve and display data Week 10: Build Lab + Project Architecture **Focus:** - Organize files - Clean up code - Begin discussing final project **Instructor Role:** - Code structure advice - Refactoring help Week 11 — Polishing & Vibe-Coding **Topics:** - Reviewing the full web application system - Cleaning up code and structure - Introducing 'Vibe-Coding' aka coding with AI **Focus:** - Finalize manual project - Identify areas for improvement **Instructor Role:** - Code review - Architecture guidance Week 12: Final Demo + More on AI acceleration **Topics:** - Present your project! - How AI code generation works - What makes a *good* prompt - How modern web apps use JavaScript (conceptual overview) - How AI handles frontend interactivity **Demonstration:** - Rebuild a complete web application in minutes using AI - Show how prompts generate HTML, CSS, Python, JavaScript, and database code - Review and explain the generated code at a high level **Student Activity:** - Students use AI to redesign or extend their own projects - Improve UI or add features using AI assistance **Key Lesson:** - AI can build full web applications quickly - Understanding fundamentals enables effective AI use Week 13: TBD

Instructor

Christopher Lin

View CV

Hi, I'm Chris! I'm the designer, instructor, and mentor for this course.

Credentials

  • Personal website: christopherlin.ca

  • Completed Harvard University CS50x (2022) Harvard University CS50web (2022) and CS50AI (2024)

  • Selected to attend University of Waterloo – Hack the North (2024)

  • GVRSF Gold Medalist (2024, 2025)

  • Selected to represent British Columbia at the Canada-Wide Science Fair (CWSF) (2024, 2025)

  • CWSF Bronze Medalist (2025)