CompSci 290
Spring 2021
Web Application Development

Module 2 - Dynamic Web Pages: JavaScript, JSON, and Handling Asynchrony

In Module 1 we got our feet wet with basic HTML, CSS, and JavaScript. In this module, we’ll focus on mainly on JavaScript — not just as yet another programming language, but as a “quirky” language that has evolved to uniquely serve the needs of Web programming. In particular, you’ll learn about JSON, a standard way of passing JavaScript data around, and writing asynchronous code (callbacks and Promise’s), which you use to handle problems ranging from downloading data to keeping web pages from “freezing up” on the user. These concepts may seem foreign at first to people who are used to Java or Python, so be sure to go through the readings and examples carefully so that you get the feel of how they work.

This learning module is scheduled for February 3, 2021 through February 16, 2021.

Readings

These readings/videos are suggested to help give you an overview of the important concepts for this learning module.

Suggested Schedule

You can work at your own pace, but here is our suggested schedule (i.e., as if this were a typical in-person class with "lab meetings").

We strongly discourage waiting until the last minute since working with the web can range from awkward to tricky to downright frustrating — please leave yourself plenty of time for unforeseen complications!

Examples

These examples are provided to help you see our expectations for your code to get you started.

We strongly encourage you to experiment with these examples interactively to see how changes affect the results.

Exercises

These exercises are provided to help you practice with the important concepts in a controlled way.

While we will not be explicitly checking that you have completed all parts of all of these exercises, we strongly believe doing the minimum (and more!) will help make doing the primary assignment easier.

Quizzes

This is intended to be similar to the content of the quiz for this module and should help you understand our expectations for its scope.

Install VS Code Extensions

While it is not required, these plugins will help warn you of coding issues within your editor so there are fewer surprises when you validate your code online.

When installing these programs, unless otherwise noted, we suggest following the default options.