CompSci 290.2
Spring 2018
Web Application Development

The exact order and details of these topics is subject to change during the semester based on the pace needed, but we will try to set them at least two weeks in advance. As much as possible, materials discussed in class will be posted here in case you miss class.

Readings should be completed early in the week on which they are listed. If you miss a lab class or need extra time, you can get credit for the it by submitting it by the end of the day it is given.

Date Topic Activity Readings Due
Jan 10
Week 1
Course Introduction
Document Content
HTML
Example
Video
Information Management: A Proposal
Crazy and Wonderful State of Web Development
The Basics of HTML
Experience Survey, Fri
Jan 15
Week 2
MLK, Jr Day - NO CLASS
SNOW - NO CLASS
GITing Started The Basics of CSS
Guide to Versioning Systems
 
Jan 22
Week 3
Document Style
CSS
Example
Video
CSS Layout Page Layout with CSS
Design and Coding
Introductions, Part 1, Mon
Introductions, Part 2, Thu
Jan 29
Week 4
Making Web Pages Responsive
Bootstrap
Example
Video
Bootstrap Responsive Web Design Basics
CSS Preprocessors
Bootstrap: What, How, and Why
CSS Zen Garden, Tue
Feb 5
Week 5
Making Web Pages Interactve
JavaScript
Examples
Video
JavaScript JavaScript for Java Developers
Classes in JavaScript
JavaScript Debugging for Beginners
Responsive List, Mon
Feb 12
Week 6
Understanding Document Structure
jQuery and AJAX
Examples
Video
jQuery What is jQuery?
jQuery in Steps
jQuery and JavaScript Equivalents
Useful Javascript Debugging Tips
Game, Mon
Feb 19
Week 7
Frameworks and Binding Data
Vue.js
Examples
Video
Vue Working with JSON Data
Vue.js, a JS framework for humans
MVVM JavaScript Design Pattern
Image Gallery, Tue
Feb 26
Week 8
Persisting and Sharing Data
Firebase
Examples
Video
Project Work NoSQL Databases Overview
A Look at the New Firebase
Firebase Data Modeling: Parts 1 and 2
Firebase Interactive Tutorial
Trello, Basic, Sun
Mar 5
Week 9
VMs, Servers, and Structure of the Web
Guest: Mark McCahill
Video
Project Work How Does the Internet Work?
Complete Vue.js Application
 
Mar 12 SPRING BREAK      
Mar 19
Week 11
Client/Server with Node.js
Vue Web Components
Examples
Video
No Lab Web Application Architecture
What is Node.js?
Building Reusable Custom Components
 
Mar 26
Week 12
Programming the Web: Using APIs
What are APIs?
Example
Video
Node Web Services and Distributed Computing
Web 2.0 Movement
LOTs of API tutorials
Trello, Final, Mon
Final Project, Topic, Fri
Apr 2
Week 13
Designing the User Experience
Guest: Joel Crawford-Smith, Duke Web Services
Designing Accessible Sites
Video
Mashup
Client Deployment
Why Users Like Mindless Choices
Building Web Apps for Everyone
Quiz, Tue
Apr 9
Week 14
Programming the Web: Making REST APIs
Example
Video
 
Web Page UX Design with User Testing
Guest: Sean Aery, Duke Library
Video
No Lab
Server Deployment
REST Web Services
Server-side Programming
Express and Node Introduction
Final Project, Plan, Mon
Explore, Fri
Apr 16
Week 15
Authenticating Users
Testing Web Pages
Example
Video
No Lab Why Test-Driven Development?
TDD with Vue.js
Vue.js Unit Tests Jest
 
Apr 23
Week 16
Internet Security
Guest: Iain Hadgraft, Duke OIT Web Services
No Lab Basics of Web App Security
OWASP Top Ten Critical Web App Security Risks
Building for the Modern Web is Really, Really Hard
Final Project, Complete, Sun
April 30
9am-12pm
Final Project Presentations     Final Project, Demo, Mon