CS 98SI: Introduction to JavaScript

Description

This class introduces the JavaScript language, with a focus on advanced language features and client-side programming. Topics covered include basic syntax, object-oriented programming, closures, higher-order functions, the DOM, and AJAX. The class will also introduce recent libraries, including jQuery, Backbone.js, node.js, and d3. The class will include in-class coding exercises and assignments consisting of implementation of web applications. Prerequisite: CS106B/X.

Objectives

Through taking this course, students should:

Format

Class will consist of two weekly 50-minutes lectures. Lectures will take place in a lab format, and will consist primarily of code examples and demos. Students will be expected to solve in-class exercises. Homework will consist of two programming assignments. Grades will be based on class participation and homework.

Prerequisites

Required: CS106A Strongly recommended: CS106B/X Students should be adept in at least one other programming language, preferably Java or C++. Additionally, students should be familiar with the following advanced concepts:

Assignments

There will be two assignments.

You will have two free late days. Each late day is a class day. If you use one late day, the assignment is due at the beginning of class the following Monday. If you use two late days, the assignment is due at the beginning of class the following Monday.

Grading Basis

The class must be taken Satisfactory / No Credit. Grading weightage is as follows.

Syllabus

The syllabus is available from the front page of the http://cs98si.stanford.edu/.

Relationship to other classes

This class is somewhat related to CS142 (Web Applications). This class has about 15%-20% overlap with CS142.

Course Website

The course website is located at http://cs98si.stanford.edu/. It contains course information, syllabus, lecture notes, lecture code, and assignments.

Discussion

Questions should be posted to Piazza.

Software

You need a text editor for editing code. Pick an editor that supports at least indentation and syntax highlighting. These text editors are recommended:

These text editors are recommended for advanced users only, as they can be very difficult to learn

You will need a web browser.

Readings

This course will primarily use material from the course reader. There are no required textbook readings.

The recommended textbooks for this class are JavaScript: The Definitive Guide by David Flanagan and JavaScript: The Good Parts by Douglas Crockford. Of the two, Flanagan is the more useful book, and the notes will link to relevant chapters of the book where appropriate. Both of them are available online for free from Safari Books Online from within the Stanford campus network.

The MDN JavaScript Wiki is the best reference for looking up JavaScript or DOM functions.

This class also draws some advanced material from Dive Into HTML5 by Mark Pilgrim, Learning Advanced Javascript by John Resig, and JavaScript Garden