Course Outline
Below is a tentative outline of the course (subject to change), broken down by week. See mycourses for official due dates and dropboxes.
Week 1 (1/16, 1/18)
Topics
- Review of Basic Web App Structure:
- HTML/CSS
- JS
- Detecting page load
- Selecting HTML elements on the page
- Event handlers
- JS Review:
- Did the page load?
- window.onload - Window Event Handlers
- Selecting elements on the page:
- Properties and methods of a DOM element - Element
- document.querySelector()
- document.querySelectorAll()
document.getElementsByTagName()document.getElementById()
- Handling Events:
- "Caveman" Debugging:
- Did the page load?
- Intro Canvas:
- Methods:
- canvas.getContext('2d')
- ctx.fillRect(x,y,w,h)
- ctx.beginPath()
- ctx.closePath()
- ctx.moveTo(x,y)
- ctx.lineTo(x,y)
- ctx.stroke()
- ctx.fill()
- ctx.fillText("text")
- ctx.measureText("text")
- Canvas State attributes (Canvas Spec)
- ctx.fillStyle
- ctx.strokeStyle
- ctx.lineWidth
- ctx.shadowBlur
- ctx.shadowColor
- ctx.shadowOffsetX
- ctx.shadowOffsetY
- ctx.font
- ctx.textAlign
- ctx.textBaseline
- Methods:
Links
HTML and JavaScript Review
We assume you learned basic HTML/CSS and JavaScript in your previous web courses. If you feel you need some review, check out these resources:
- IGME-230 :: Spring 2018
- Web App Tutorial Series (Chapters 1-5)
- IGME-110 Web-Review
- If necessary, review the content in Lynda.com HTML Essential Training, Lessons 1-7
DOM Links
- MDN - API Reference
- MDN - window.alert()
- MDN - console.log()
- MDN - window
- MDN - let
- MDN - var
- MDN - Element
- MDN - HTMLElement
- MDN - Global Event Handlers
- MDN - document.querySelector()
Canvas Reference
Week 2 (1/23, 1/25)
Topics
- JavaScript Debugger
- Javascript Objects
- More Canvas:
- Methods:
- ctx.arc()
- ctx.strokeText()
- State Properties:
- ctx.globalAlpha
- Methods:
- Buttons Sending Data:
- event.target
- anonymous functions
- Custom Data
Links
Demos
Week 3 (1/30, 2/1)
Topics
- More Canvas:
- ctx.clearRect()
- ctx.drawImage()
- Gradients:
- ctx.createLinearGradient()
- gradient.addColorStop()
- Canvas Transforms & Animations
- More JS:
- element.addEventListener()
- element.removeEventListener()
- Arrays
- Hoisting
- Closure
Links
Canvas Paint-2 Links
JS
Web Audio Links
Week 4 (2/6, 2/8)
Topics
- JS:
- JS Object Literals
- Immediately Invoked Function Expressions (IIFE or "iffy")
- Callbacks
- Function Constructors
- Canvas Visualizer ICE:
- file reader
- array buffers/typed arrays
- web audio API
- request animation frame
- offscreen canvas
- global composite operation
- pixel filters
Links
JS
- Typed Arrays
- Immediately Invoked Function Expressions (IIFE or "iffy")
- Callback (Concept)
- Callbacks in JS Explained
- Declaring & using JS Callbacks
- Demystifying Closures, Callbacks & IIFEs.
- JS Promises (Advanced)
Canvas
Week 5 (2/13, 2/15)
Topics
- Canvas
- getImageData() & putImageData()
- getUserMedia()
Links
Week 6 (2/20, 2/22)
Topics
- Object.seal()
- Object.freeze()
- Object.defineProperty()
- Object.keys()
- Canvas Demos
Links
Week 7 (2/27, 3/1)
Topics
- JS
- Apply, Bind & Call
- JS Design Patterns
- Facade Pattern
- PubSub Pattern
- Canvas Wrap Up
- More Canvas Demos
Links
Week 8 (3/6, 3/8)
Topics
- Midterm Review
- Midterm Exam
Links
Spring Break (March 11-17)
Enjoy your time off!
Week 9 (3/20, 3/22)
Topics
- Web Services:
- URI & URL Format
- Query Strings
- REST
- XHR / Ajax
- File Loading
Links
Week 10 (3/27, 3/29)
Week 11 (4/3, 4/5)
Topics
- Web Services:
- More JSON
- JSON-P (JSON-Padded)
- Web Services
Links
Week 12 (4/10, 4/12)
Topics
- Node:
- Node Intro
- Simple HTTP Servers
Links
Week 13 (4/17, 4/19)
Topics
- HTTP & Proxies
- oAuth
- Platform as a Service (Paas using Heroku)
Links
Week 14 (4/24, 4/26)
Topics
- Course Wrap Up
- Final Exam Review
Links
Finals Week
We will meet during finals week - Tuesday 5/8 from 8:00AM-10:00AM - where you all will present your final projects.