Topics For Exam I
  1. Know the material on the history page, particularly Berners-Lee, the browser wars, and the creation of standards.
  2. HTML
    1. The correct page structure.
    2. What tags, attributes and entities are.
    3. Common tags: <p>, <i>, <b>, <a>, <img>, <div>, <span>, <ol>, <ul>, <li>, headers (<h1>, etc).
    4. Block v. inline elements.
    5. Structural v. formatting tags, and the replacement of the later using CSS.
    6. That <div> and <span> are just for styling.
    7. URLs
      1. Know the parts.
      2. Understand relative URLs and how the browser resolves them from a page at a particular location.
      3. Understand what the .. means in a URL.
  3. CSS
    1. The purpose: separate appearance from structure.
    2. Locations: inline, embedded, external, and how to make them.
    3. Block model, and properties height, width, padding and margin. Simple borders.
    4. Colors
      1. Notations for creating them.
      2. Color and background color properties.
    5. z-index
    6. Selectors
      1. What they are and when they are needed.
      2. Major types: tag type, id, class, descendant, sibling.
      3. Important pseudoclasses: hover, first-child, last-child.
      4. Conflict rule: more specific wins.
    7. Fonts
      1. Specifying the font property (three parts).
      2. font-style: italic
      3. font-weight: bold;
      4. And don't forget that the the color property applies to what you write with that font.
  4. JavaScript: On the language itself, material from the Syntax notes. Note in particular:
    1. Dynamic types.
    2. The fact that normal numeric type is always floating point. (Unlike Java, 3/2 is 1.5.)
    3. The === operator and why it exists.
    4. The array syntax and its operations.
    5. The usual, boring control constructs.
    6. How to create functions, named and anonymous.
    7. Don't worry about function-created objects with new. Just the { } kind.
  5. DOM
    1. Creating elements and adding them to the document.
    2. Selection of elements by id and other ways.
    3. Updating regular attributes of elements.
    4. Updating CSS properties of elements.
    5. .innerHTML and .textContent.
    6. Events
      1. Using onClick from HTML, including sending this.
      2. Setting click and other events with addEventListener, including using the event object in the handler.
      3. Timed events, both flavors.
    7. DocumentWrite.
    8. AJAX
      1. Know what the term refers to.
      2. Know that the XMLHttpRequest object and the fetch interface are the original and current ways to do this in JavaScript.
      3. Be able to understand and describe the effects of a code segment using either of these.
      4. Know what JSON is, and that it is often used to transfer data under AJAX.
  6. Understand the JavaScript event loop.
  7. JQuery
    1. We haven't had a project on this, so any questions should be fairly high-level, and not ask for details.
    2. Understand the things shown on the first notes page. (But don't avoid looking at the examples which could make things clearer.)
      1. Chaining.
      2. Creation, modification, and insertion of new elements.
      3. Selection of existing elements, and the principle that the following chain acts on all of them.
      4. Know what these methods do: .attr, .css, .addClass, .removeClass, .on, .filter, .append, .appendTo.
      5. Difference between .append and .appendTo.
      6. Won't ask any details about the $.ajax() method. Just know that it sends an HTTP request and runs call-backs for the results like all the other ways of doing it.