Web Programming for Apps and Services

Schedule Notes Resources Graded Work Code examples

Learning resources

This page has information about and links to learning resources that you will use in this course.

Previous courses

This is the third course in the web programming sequence.

Therefore, continue to use the content from the courses that you have successfully completed:

Developer tools

You will need one or more devices. A College or personal desktop or laptop, and (likely) a personal mobile device (e.g. a smartphone).

Use macOS or Linux

We expect the student to do their work on a computer that runs macOS (Mac OS X), Linux, or another Unix-like operating system.

If a student has a Windows-only computer, then plan to install a multiboot or virtualization environment that enables the installation of Linux.

Required textbook

None. This is a web programming course therefore, the best source for content is on the web!

Required online resources

There are several required online resources:

In October 2017, Microsoft, Google, and the W3C committed to making MDN Web Docs the single authoritative source for web developer documentation.
Read more about this in an article by Ali Spivak.


Oh, and you should must know (and love!) the series of RFCs that describe HTTP, 7230 through 7235. If you want a friendlier introduction to HTTP, read its Wikipedia article.

Other resources

Front end frameworks


State management


Visual Studio Code tips and info

Start VS Code from the command line

Make sure that you’re in your project folder.
Then type this command: code .

Note: This assumes that your computer is configured to run this command. See the Running VS Code on Mac to configure that feature.

Useful keyboard shortcuts

Trigger IntelliSense: Control + Space

Toggle comments on/off: Command + /

Reformat document: Shift + Option + Command + F

Show/hide left-side bar: Command + B

Show/hide terminal: Control + (back-tick)

Markdown preview pane toggle on/off: Command + K, V

Useful Emmet snippets

For most elements, just begin typing the element name, without the angle bracket.

. Declare class(es), e.g. div.row

# Declare unique identifier, e.g. table#customers

> Child, e.g. div>p

* Multiplier, e.g. ul>li*5

( ) Grouping, often used with multiplier

+ Sibling, e.g. div>h3+p*3

{blahblah} Text content for an element, e.g. h3{Hello, world!}

[ Custom attribute, e.g. span[data-bind

See the Emmet cheat sheet for full coverage.