Course Schedule

This schedule will definitely change over the course of the semester. Please continue to check back for updates.

Topic 1: Intro to the Web

The web and the internet are interconnected systems that facilitate the exchange of data across computers worldwide. Web browsers communicate with servers using the HTTP/HTTPS protocol to fetch and display content, while the internet provides the infrastructure for this communication. Understanding IP addresses, DNS, and how websites are hosted provides a foundation for developing web applications.

Mo, Jan 12

Intro to the Course

  • Course introduction and overview
  • Understanding the web development landscape
Slides / Activities
Quizzes
We, Jan 14

Web & Internet Infrastructure

  • Understanding the Internet and how it works
  • Web infrastructure and protocols
  • How browsers and servers communicate
Required Readings
  1. Intro to the Internet: Watch How We Made the Internet. 2022. Nation Squid
  2. The Internet Explained. Timothy B. Lee, 2015.
  3. 40 Maps That Explain the Internet. Timothy B. Lee, 2014
  4. Intro to the Web: Watch The Internet: HTTP & HTML. Code.org
Quizzes
Assigned:
HW 1: The Internet and the News
Fr, Jan 16

The Internet & Society

  • Discussion of Internet and society issues
  • Net neutrality, privacy, and current events
Required Readings
  1. Watch: Black Mirror. Joan is Awful (2023), Season 6, Episode 1. Netflix.
    • If you don't have Netflix, you can purchase the episode for $1.99 on Amazon.
    • Content warning: some profanity, nudity, and irreverent scenes. That said, the broader point of the piece surfaces many important socio-technical themes that are worth thinking about.
  2. NPR's All Things Considered (January 7, 2025): Meta says it will end fact checking as Silicon Valley prepares for Trump
Optional Readings
  1. NPR Podcast (26 minutes): The history and future of the cookie
  2. NYT's Ezra Klein Show (1.5 hrs): "Will A.I. Break the Internet? Or Save It?". Ezra Klein and Nilay Patel.
  3. Erik Hoel Opinion Piece (Feb, 2024): Here lies the internet, murdered by generative AI
  4. Wall Street Journal (7 mins): Third-party cookies, explained
Assigned:
HW1: The Internet and the News

Topic 2: HTML

HTML (HyperText Markup Language) is the backbone of web content, structuring information on web pages. HTML can be used to create semantic, accessible layouts using elements like headings, paragraphs, lists, links, and media. This topic emphasizes the role of HTML in the broader web development process and how it integrates with CSS and JavaScript.

Mo, Jan 19

MLK Day - No class

We, Jan 21

Introduction to HTML

  • HTML basics and structure
  • Text markup, images, and media tags
  • Form elements and compound tags
Optional Readings
  1. Tali Garsiel and Paul Irish. How Browsers Work: Behind the scenes of modern web browsers. html5rocks.com, 2011
Quizzes
Fr, Jan 23

Introduction to HTML (Continued)

  • Hyperlinks and linking
  • Semantic HTML tags
  • Git and GitHub setup
Required Readings
Quizzes

Topic 3: CSS

CSS (Cascading Style Sheets) is used to control the layout and visual presentation of HTML elements. It allows developers to define styles such as colors, fonts, and spacing, enhancing user experience. CSS also includes techniques like Flexbox and Grid for responsive, modern web designs.

We, Jan 28

Introduction to CSS

Introduction to CSS basics and selectors, color, fonts, and the box model for styling HTML elements.
Slides / Activities
Quizzes
Due:
HW 1: The Internet and the News
Fri, Jan 30

CSS Layouts

  • CSS units and media queries
  • Flexbox and CSS Grid
  • Responsive design techniques
Slides / Activities
Quizzes
Assigned:
HW 2: Make the Photo App Interface: Part I

Topic 4: Design and Accessibility

Design refers to the process of creating an aesthetically pleasing and functional user interface (UI) and user experience (UX). It encompasses layout, typography, color schemes, and interactivity to ensure the site is intuitive, visually appealing, and accessible. Good design is crucial for engaging users and meeting their needs effectively. While design is a huge topic in its own right, we will briefly review some important design principles, and take a quick look at some design tools and systems.

We, Feb 4

Design with Accessibility in Mind

  • Design principles and visual design
  • Accessibility best practices
  • Color selection and style guides
Slides / Activities
Required Readings
Optional Readings
  1. Please skim the Accessibility Resources.

Topic 5: Mockups & Wireframes

Students will create mockups and wireframes for their PhotoApp project.

Mo, Feb 9

UX/UI Design: Wireframing

Part 1 of a two-part tutorial on low-fidelity prototyping.

Required Readings
  1. Low-Fidelity Prototypes. Interaction Design Foundation
Assigned:
Tutorial 4: Instagram Wireframes in Figma
We, Feb 11

UX/UI Design: High-Fidelity Prototypes

  • Visual design principles: color, typography, spacing
  • Creating high-fidelity prototypes in Figma
  • Design systems and consistency
  • Peer review and feedback
Assigned:
Tutorial 4: Instagram High-Fidelity Prototype in Figma
Fr, Feb 13

Exam 1 Review

  • Exam 1 review: HTML/CSS/Web Architecture/Design
Slides / Activities
  • Slides
Due:
HW 2: Make the Photo App Interface: Part I

Topic 6: Exam 1: HTML/CSS/Web Architecture/Design

Comprehensive exam covering web/internet architecture, HTML, CSS, design principles, and accessibility.

Mo, Feb 16

Exam 1

  • Web and Internet infrastructure
  • HTML structure and semantic markup
  • CSS styling, layout, and responsive design
  • Design principles and accessibility

Topic 7: JavaScript: DOM Programming

In this unit, we will use JavaScript to manipulate the Document Object Model (DOM) and respond to user-initiated events. By the end of this section, you will know enough to start building simple, interactive web applications.

We, Feb 18

Working with the DOM

  • Introduction to the DOM
  • Accessing and modifying DOM elements
  • DOM manipulation basics
  • Event handling in JavaScript
  • DOM traversal and manipulation
  • Creating and modifying DOM elements dynamically
Slides / Activities
  • Slides
  • DOM manipulation practice (part 1)
  • DOM manipulation practice (part 2)
Optional Readings
  1. Sarah's interactive DOM manipulation worksheet Link
  2. How to Traverse the DOM. Digital Ocean
Due:
  • Tutorial 4: Instagram High-Fidelity Prototype in Figma
  • Tutorial 4: Instagram Wireframes in Figma
Fr, Feb 20

Tutorial 5: JavaScript: Event Handlers

Topic 8: JavaScript: Programming Review & OOP

Review of JavaScript programming fundamentals and introduction to object-oriented programming concepts in JavaScript.

Mo, Feb 23

JavaScript Programming Review

  • Review of JavaScript concepts covered so far
  • Variables, functions, and control structures
  • Practice problems and exercises
Slides / Activities
  • Slides
  • JavaScript Review So Far
Due:
Tutorial 5: JavaScript: Event Handlers
We, Feb 25

JavaScript Classes (OOP)

  • Introduction to object-oriented programming in JavaScript
  • Classes and instances
  • Constructors and methods
Slides / Activities
  • Slides
Fr, Feb 27

Tutorial 6: Programming Review with JavaScript

Topic 9: JavaScript: Higher-Order Functions & Closures

Functional programming concepts in JavaScript, including higher-order functions, closures, and working with data using map, filter, reduce, and forEach.

Mo, Mar 2

Higher-Order Functions I: map, filter, reduce, forEach

  • Introduction to higher-order functions
  • Working with arrays and data
  • Practice with real data sets
Slides / Activities
  • Slides
Due:
Tutorial 6: Programming Review with JavaScript
We, Mar 4

Higher-Order Functions II: create your own + closures

  • Advanced higher-order function patterns
  • Understanding closures
  • Data manipulation practice
Slides / Activities
  • Slides
Fr, Mar 6

Tutorial 7: JavaScript: Practice with higher-order iteration functions

Topic 10: Spring Break

No class

Mo, Mar 9

Spring Break - No class

We, Mar 11

Spring Break - No class

Fr, Mar 13

Spring Break - No class

Topic 11: JavaScript: Async/Await & Fetch

The Fetch API is a modern JavaScript interface for making HTTP requests to servers and handling responses. Understanding how to use the Fetch API, handle response statuses, and work with data formats like JSON is key to building dynamic, data-driven web applications.

Mo, Mar 16

Intro to HTTP & Fetch API

  • Introduction to HTTP protocol
  • HTTP methods and status codes
  • Using the Fetch API
Slides / Activities
Assigned:
HW3: Building a "Vanilla" JavaScript Client
Due:
Tutorial 7: JavaScript: Practice with higher-order iteration functions
We, Mar 18

Async/await + Fetch API Practice

  • Async/await vs Promises
  • Making GET, POST, PUT, DELETE requests
  • Error handling and response parsing
Slides / Activities
  • Slides
  • Fetch Examples
Assigned:
HW 3: Building a "Vanilla" JavaScript Client
Fr, Mar 20

Tutorial 8: Get Started on HW3: GET, POST, and DELETE

Topic 12: React

React is a popular JavaScript library for building user interfaces, especially single-page applications (SPAs). It allows developers to create reusable components and manage the state of an application efficiently through a virtual DOM. React's declarative approach simplifies UI development and is widely adopted in modern web development.

Mo, Mar 23

React I: Components, JSX, Props

  • Introduction to React
  • Components and JSX
  • Props and component composition
  • Building user interfaces with React
Slides / Activities
  • Slides
  • Hands-on React Activity
Required Readings
  1. Tic Tac Toe. You are strongly encouraged to do this on your own.
Assigned:
HW 4: React Client
We, Mar 25

React II: State & Effects

  • State management and component hierarchy
  • useState and useEffect hooks
  • Thinking in React
Required Readings
Fr, Mar 27

Tutorial 9: React: Custom & Third-Party Components

Mo, Mar 30

React III: Sharing State & Syncing with External Data

  • Sharing state between components
  • Effects and side effects
  • Syncing with external data sources
Slides / Activities
  • Slides
Due:
Tutorial 9: React: Custom & Third-Party Components

Topic 13: Exam 2: JavaScript & React

Comprehensive exam covering JavaScript (DOM, OOP, higher-order functions, closures, async/await, Fetch API) and React (components, props, state, effects).

We, Apr 1

Exam 2 Review

  • Review of JavaScript: DOM manipulation, event handlers
  • Review of JavaScript: OOP classes, higher-order functions, closures
  • Review of JavaScript: Async/await and Fetch API
  • Review of React: Components, props, state, effects
Assigned:
Tutorial undefined: Final Project
Fr, Apr 3

Exam 2

  • JavaScript: DOM manipulation, event handlers
  • JavaScript: OOP classes, higher-order functions, closures
  • JavaScript: Async/await and Fetch API
  • React: Components, props, state, effects
Due:
HW 3: Building a "Vanilla" JavaScript Client

Topic 14: Servers & APIs

Understanding how to design and build RESTful APIs, including HTTP methods, endpoint design, authentication, and security. Students will learn to create their own API endpoints using a config-driven approach.

Mo, Apr 6

HTTP & REST Fundamentals

  • Server-side templates vs REST API
  • Understanding REST architecture
  • HTTP methods and RESTful design
Slides / Activities
  • Slides
Required Readings
  1. Avraham, Shif Ben (Sept. 5, 2017). What is REST — A Simple Explanation for Beginners.
Assigned:
HW3: Building a "Vanilla" JavaScript Client
We, Apr 8

Defining Endpoints: Config-Driven API Design

  • Introduction to config-driven API design
  • Designing your own API endpoints
  • Creating API configuration files
Slides / Activities
  • Slides
Fr, Apr 10

Tutorial 10: Design your own API

Topic 15: React + APIs Integration

Integrating React applications with custom APIs, working with student-designed endpoints, and building full-stack applications.

Mo, Apr 13

Final Project: API Design Workshop

  • Final project assigned
  • API design workshop
  • Designing your own API endpoints via config
Due:
  • Tutorial 10: Design your own API
  • HW 4: React Client
We, Apr 15

React with Custom APIs

  • Using student-designed endpoints in React
  • Connecting React components to custom APIs
  • Handling API responses and errors
Slides / Activities
  • Slides
Fr, Apr 17

Advanced React Patterns & Project Work

  • Advanced React patterns
  • Final project work time
  • API integration troubleshooting
Slides / Activities
Mo, Apr 20

Final Project Work Day

  • In-class time to work on final project
  • API endpoint testing and debugging
  • Frontend-backend integration

Topic 16: Final Project

Students will design their own API endpoints using a config-driven approach and build a React application that consumes those endpoints. This project integrates all concepts learned throughout the course.

Mo, Apr 22

Security & Authentication for APIs

  • Web security fundamentals
  • Authentication headers and security
  • JWT tokens and session management
Slides / Activities
  • Slides
We, Apr 24

Final Project Work Day

  • In-class time to work on final project
  • Final touches and testing
Slides / Activities
Mo, Apr 27

Final Project Due

  • Final project presentations
  • Course reflection and synthesis

Topic 17: Final Exam

The final exam will take place from 11:30am to 2:30pm on May 6th in 008 Whitesides (same class as our regular classroom).

We, May 6

Final Exam

UNC Asheville Department of Computer Science