Classes Using This Book

Twitter · Blog · Patreon · Discussions

If you are teaching or planning to teach a class from this book, we would be happy to provide you with teaching materials, including:

Write to us if you’d like a copy. We’re also happy to advise on course design, syllabus, grading, and so on, and share experiences from teaching the course multiple times. The courses below have used Web Browser Engineering as a textbook.

University of Utah

CS 4560 Web Browser Internals is an undergraduate-level course at the University of Utah first taught in Fall 2019 and most recently taught in Fall 2021. The most recent course description reads,

How does a web browser work? This class covers all the major components of a modern web browser, including networking, graphics, layout, styling, and JavaScript execution. Students will write their own web browser and work on extensions to it, implementing features like emoji support, scrollbars, text editing, and HTML canvas. Class follows a textbook and is taught in a “flipped” format, allowing a lot of student interaction.

In Spring 2024, it was taught by Pavel Panchekha under course number CS 4560.

In Fall 2021, it was taught by Pavel Panchekha assisted by Ian Briggs under course number CS 4962. Syllabus available.

In Fall 2020, it was taught by Pavel Panchekha under course number CS 6968. Syllabus available.

In Fall 2019, it was taught by Pavel Panchekha under course number CS 6968. Syllabus available.

University of Washington

CSE 493X Web Browser Engineering is an undergraduate-level course at the University of Washington most recently taught in Spring 2023. The most recent course description reads,

We live in a world completely permeated by the internet and the web. It’s time to think of the web browser as a critical piece of systems infrastructure, alongside compilers and operating systems. While industrial strength browsers are massive and complex systems with many features, the basic structure of a browser can be expressed in just a thousand lines of code. In this class we will study browser internals and build our own web browsers from scratch. By the end of the first week, you will have a working “browser” that does nothing more than download the webpage and print it as text to the console. From there, each week we will extend the browser with a new feature. By the end of the quarter, you will have your own graphical browser supporting text layout, CSS for styling, and JavaScript for building interactive pages. Weekly assignments will primarily involve implementing features in your browser. Previous experience with web technologies is not required.

In Spring 2024, it will be taught by Gilbert Bernstein.

In Spring 2023, it was taught by James R. Wilcox. Course materials can be found online.

In Spring 2022, it was taught by James R. Wilcox. Course materials can be found online.

HAW Hamburg

Web Browser Technology (“Technik von Webbrowsern”) is an undergraduate-level course at Hamburg University of Applied Sciences. It has been taught four times so far over the past 1.5 years (up to spring 2024). A course description reads (translation via Google Translate):

Every day we come into contact with web browsers, consciously or unconsciously. Be it because we explicitly use an available browser such as Firefox, Chrome or Edge or because we use a mobile phone app that uses an internal browser to display pages.

Modern web browsers have to handle a number of tasks. They communicate with servers and process their answer into a user-friendly display. The answer consists of a variety of artifacts such as HTML documents, layout information and script data. The display is optimized based on the device used and must also be sensitive to changes, e.g. react through scripts. And all of this needs to be done as quickly as possible by the browser so that users don’t switch to another one.

In this class you will learn the basic structure of a browser. Starting with communicating with servers and simply displaying text, through more complex layouts and simple interaction (links and buttons) to executing scripts, you will learn the basic techniques used by modern browsers.

During the lecture period, you will work on your browser to delve deeper into the topics covered. During the lab, all participants will work on a common browser project. Here you will implement extended functions of a web browser according to your interests.