CSSE280 – Introduction to Web Programming

Fall, 2016-17

Schedule Overview

All non-Moodle web pages for the course are available from This index page.

This schedule page will be updated regularly throughout the term. I’ll often update daily schedules and slides just before class.

Preparation is to be completed before the class session.

Unless otherwise noted, all assignments are due at 11:59 PM on the day indicated. I recommend that you complete them before midnight the day before, but some students believe that their best work times are after midnight.

Schedule last updated Tue Nov 8.

Session quick links:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Week Session Preparation Due Topics Resources
0

1

Thu Sep 1

  • By the end of Day 1 class (We'll do most of these together):
  • Course introduction
  • Roll Call
  • Establish in-class "lab partners"
  • Install Visual Studio Code
  • Networks, the web, and HTTP
  • HTML introduction
    • Page structure(head, body)
    • p tag
    • heading tags
1

2

Mon Sep 5

  • Review the Syllabus, bring questions to class.
  • HTML & CSS (that stands for the HTML & CSS: design and build websites book) Skim Chapter 1
  • HTML & CSS Chapters 2 and 3. Read these carefully.
  • A lot of reading, but reading is all you have to do for this class for the first three sessions.
 
  • HTML Structure, Text, and List elements
    • br tag
    • em and strong tags
    • list tags
    • Attributes and values
    • Elements with no content and no closing tag
    • hr tag
    • dl, dt, and dd tags
    • q and blockquote tags
    • del and ins tage
    • abbr and code tags
    • sup and sub tags
  • Exercises on Basic HTML
1

3

Tue Sep 6

  • HTML & CSS Chapters 4, 5, and 8. Read these carefully.
  • HTML link and image elements, extra markup
    • Block vs. inline elements
    • img tag
    • link elements
    • HTML character entities
    • HTML Comments
    • HTML-encoding text that contains special characters
    • meta tag
    • div and span elements
1

4

Thu Sep 8

  • HTML & CSS Chapters 10, 11, and 12. Read these carefully.
  • CSS Introduction
    • Associating style rules with HTML elements
    • CSS Properties affect how elements are displayed
    • Two ways to incorporate CSS code
    • CSS selectors
    • How CSS rules cascade
    • Inheritance
2

5

Mon Sep 12

   
  • Specifying colors with CSS
    • How to specify colors
    • Color terminology and contrast
    • Background color
  • Formatting text with CSS
    • Size and typeface of text
    • bold, italics, capitals, underlines
    • Spacing between lines, words, and letters
2

6

Tue Sep 13

  • HTML & CSS Chapters 13, 6, and 14. Read these carefully.
 
  • The CSS Box model
    • Control the dimensions of boxes
    • Explain the CSS box model for borders, margin, and padding
    • Create borders around boxes
    • Set margins, and padding for boxes
    • Display and hide boxes
2

7

Thu Sep 15

 
  • Tables
    • Creating HTML tables
    • Determining what information suits tables
    • Representing complex information in tables
    • Using CSS to specify table width
    • Adding borders and backgrounds to table cells
3

8

Mon Sep 19

  • JavaScript & JQuery book: Chapters 1, 2. Read these chapters before class.
  • How JavaScript makes web pages interactive
  • What is a script and how to create one
  • How computers fit in with the world around them
  • How to write a script for a web page
  • Basic JavaScript Instructions
    • JavaScript statements
    • JavaScript comments
    • JavaScript variables
3

9

Tue Sep 20

  • JavaScript & JQuery book: Chapter 3. Read before class.
  • Basic JavaScript Instructions
    • Data types JavaScript
    • Operators in JavaScript
  • JavaScript functions
  • JavaScripts Objects and Methods
3

10

Thu Sep 22

 
  • Exam 1 in class
  • Exam 1 in class
 
4

11

Mon Sep 26

 
  • JavaScript functions
    • Write JavaScript functions that return one or more values
    • Create anonymous functions in JavaScript using function expressions
    • Immediately invoke function expressions
    • Describe how memory and variables work in JavaScript
    • Explore JavaScript function calling patterns
4

12

Tue Sep 27

  • JavaScript & JQuery book: Skim Chapter 4, read chapter 5.
 
  • JavaScript functions
    • Explore JavaScript function calling patterns
    • JavaScript Closures
4

13

Thu Sep 29

 
  • In-class quiz on JavaScript
  • JavaScript Objects
    • Create JavaScript objects using literal notation
    • Create JavaScript objects using constructor functions
    • Update JavaScript objects using dot notation or square bracket syntax
    • Delete properties from JavaScript objects
    • Explore JavaScript built-in objects
5

14

Mon Oct 3

 
  • The Document Object Model
    • The DOM tree
    • The DOM is an API
    • Locating nodes that represent the elements you want to work with
    • Traversing the DOM
    • Using an element's text content, child elements, and attributes
    • Adding and removing elements from the DOM tree
    • Working with attribute nodes
5

15

Tue Oct 4

  • JavaScript & JQuery book: read chapter 6.
  • DOM events
    • What happens when an event occurs
    • Different event types
    • Steps of event handling
    • Binding an event to an element
    • Using parameters with event listeners
    • Using properties of the event object
    • Using methods of the event object
6

16

Mon Oct 10

  • JavaScript & JQuery book: read chapter 7
  • Project Team information
  • jQuery
    • What is jQuery and what are the merits of using it
    • Ways to include jQuery in a web page
    • Using CSS-style selectors and other jQuery selectors to select HTML elements
    • Doing things with jQuery selection
    • Rewriting JavaScript application using jQuery
6

17

Tue Oct 11

  • JavaScript & JQuery book: read chapter 8
  • HTML & CSS book: read chapter 7
 
  • Forms and AJAX
    • How forms work
    • Form controls
    • HTML5 form controls and form validation
    • AJAX and its use in asynchronous communication
    • using jQuery AJAX wrapper to make AJAX requests
6

18

Thu Oct 13

 
  • Exam 2 in class
  • Exam 2 in class
 
7

19

Mon Oct 17

  • Read Express in Action book chapters 2, 8.1 - 8.2
  • Finish Project Milestone 0c. Product idea sheet by Sunday night. See Project Specification Document for details.
  • Check-off the formsAndAJAX project that you started in class during session 17. The description of the assignment is posted on the TO DO slides for that session.
  • Node Javascript runtime
  • Introduction to MongoDB
7

20

Tue Oct 18

  • Read Express in Action book chapters 1, 3, 5
 
  • Building server back-end application with express.js
    • Describe the express framework
    • Install express local in a project
    • Start building a simple express application that interacts with a MongoDB database
7

21

Thu Oct 20

 
  • Project Milestone 1. Initial Project Planning doc
  • Building server back-end application with express.js
    • Build and expose a back-end API with express.js, Node.js, and MongoDB
    • Use Postman (an API testing tool) to test the back-end API
8

22

Mon Oct 24

 
  • Challenge Exercise on ContactsAppBackendEndDay2 project
  • Project Milestone 2. Mocks
  • Project Milestone 3. Datastore Model Object Design, and Sprint 0 Plan
  • Express middleware & routing
    • Express middleware
    • How middleware works at a high level
    • Express built-in middleware
    • Third-party middleware libraries
    • Various components of routing
      • Route methods
      • Route paths
      • Route parameters
      • Route handlers
      • Response methods
    • Different ways to do routing
8

23

Tue Oct 25

 
  • REST API
    • What is REST?
    • 6 constraints that characterize REST
    • Rules for building a REST API
    • Associating status codes with responses to REST API requests
8

24

Thu Oct 27

 
  • Project Milestone 4. Sprint 0 Results and Sprint 1 Planning
  • Connecting front-end application with back-end
    • Single-origin policy
    • Supporting cross-domain requests
    • Providing CORS support in back-end server
    • Using Ajax in front-end application to request data from remote back-end server
9

25

Mon Oct 31

 
  • Pushing a website live on the Internet
    • Deploying a server API application to Heroku
    • Deploying a database to mLab
    • Connecting a server back-end application to a mLab hosted database
    • Deploying a front-end web application to Heroku
9

26

Tue Nov 1

 
  • Review for exam 3
  • Same topics as last session
  • Project work time
9

27

Thu Nov 3

 
  • Exam 3 in class
  • Exam 3 in class
 
10

28

Mon Nov 7

   
  • Guest lecture on security by Dr. Sid Stamm
 
10

29

Tue Nov 8

 
  • Project Milestone 6. Sprint 2 Results
  • Modules, libraries, frameworks and other tools that can facilitate creativity and productivity
  • Course evaluation
  • Project work time.
  • Show me current state of your project.
10

30

Thu Nov 10

 
  • Project Milestone 7. In-class Final Presentation
    Project Milestone 8a. Technical Documentation
    Project Milestone 8b. Code Submission
    Project Milestone 9. Evaluations
  • Project demos/presentations; attendance is required.