Winter 2023
Stanford University
This course introduces students to web technologies, enabling them to build sophisticated, interactive applications. It focuses on markup languages, scripting languages, network protocols, interactive graphics, event-driven programming, and databases.
Although the World-Wide Web was initially conceived as a vehicle for delivering documents, it is now being used as a platform for sophisticated interactive applications, displacing the traditional mechanism of installable binaries. Web-based applications offer numerous advantages, such as instant access, automatic upgrades, and opportunities for collaboration on a massive scale. However, creating Web applications requires different approaches than traditional applications and involves the integration of numerous technologies. This class will introduce you to the Web technologies and give you experience creating Web applications. In the process you will learn about markup languages, scripting languages, network protocols, interactive graphics, event-driven programming, and databases, and see how they all work together to deliver exciting applications.
The official prerequisites for this class on ExploreCourses are CS107 and CS108. These are listed as the prerequisites because we expect a certain level of engineering maturity and experience. You should be comfortable working with the command line, picking up a new language and framework, reading technical documentation, and debugging your code. Students who have taken this class directly after 106B/X have had to work harder and spend more time than their peers, but it's not impossible. If you have any questions about whether you should take this class, please feel free to contact the staff.
No data.
There is no required textbook for this class, and I am not aware of a book that is a perfect match to the lecture material. The content of the course is defined by the lectures. You will need additional reference material to complete the programming projects, but this material is available on the Web. One good online source for reference documentation on HTML, CSS, and the DOM is Mozilla Developer Network. A comprehensive book is Dynamic HTML: The Definitive Reference, Third Edition, by Danny Goodman (O'Reilly Media), but this describes the Web as of a few years ago, so it doesn't include newer features such as HTML5. It is freely available to Stanford students.
The web application we build in the course's projects will use what is known as the MERN stack. The MERN stack uses the JavaScript language in both the browser and the server-side. The lectures will provide an introduction to JavaScript, but more complete information can be found on the web and in some books freely available to Stanford students through O'Reilly.
The class project assignments, lectures and sections will cover what you need to know about the MERN stack. For additional material recommend starting at the web sites of the different components: