Course Outline
Below is an outline of the course, broken down by week. See mycourses for official due dates and dropboxes.
Week 1 (1/26, 1/28)
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:
Assignments
ICE
- Hello Canvas - topics:
- get reference to canvas drawing API
- set the fill and stroke colors
- stroke and fill rectangles
- fill text
- set the current font and text alignment
- shadows
- lines
- simple polygonal shapes
- Shape Viewer
Links
HTML Review
DOM Links
- MDN - API Reference
- MDN - window.alert()
- MDN - console.log()
- MDN - window
- MDN - var
- MDN - Element
- MDN - HTMLElement
- MDN - Global Event Handlers
- MDN - document.querySelector()
Canvas Reference
Week 2 (2/2, 2/4)
Topics
- JavaScript Debugger
- More Canvas:
- Methods:
- ctx.arc()
- ctx.strokeText()
- State Properties:
- ctx.globalAlpha
- Methods:
- Buttons Sending Data:
- event.target
- anonymous functions
- Custom Data
Assignments
ICE
- - Shape Viewer (Buttons drawing rects, triangles, arcs)
- - Speed Circles - optional
- - Canvas Paint-1
Links
Demos
Week 3 (2/9, 2/11)
Topics
- More Canvas:
- ctx.clearRect()
- ctx.drawImage()
- Gradients:
- ctx.createLinearGradient()
- gradient.addColorStop()
- More JS:
- element.addEventListener()
- element.removeEventListener()
- Canvas Grapher ICE:
- arrays and array.push
- for loops
- Math.sin
Assignments
- Canvas Paint-2
- Audio Visualizer
Links
Canvas Paint-2 Links
Web Audio Links
Week 4 (2/16, 2/18)
Topics
- Canvas Visualizer ICE:
- file reader
- array buffers/typed arrays
- web audio API
- request animation frame
- callbacks
Assignments
- ...
Links
- ...
Week 5 (2/23, 2/25)
Topics
- JS Design Patterns
Assignments
- ...
Links
- ...
Week 6 (3/1, 3/3)
Topics
- Canvas Transforms & Animations
Assignments
- ...
Links
- ...
Week 7 (3/8, 3/10)
Topics
- Canvas Wrap-up
Assignments
- ...
Links
- ...
Week 8 (3/15, 3/17)
Topics
- Midterm Written Exam
Assignments
- ...
Links
- ...
Spring Break (Monday 3/21 - Friday 3/25)
Enjoy your time off!
Week 9 (3/29, 3/31)
Topics
- Web Services:
- Web Services
- GET/POST
- URI / URL Syntax
- Query Strings
- REST
- XHR
- JSON
- JSONP
- Ajax
- JQuery
Assignments
- ...
Links
- ...
Week 10 (4/5, 4/7)
Topics
- Web Services Continued
Assignments
- ...
Links
- ...
Week 11 (4/12, 4/14)
Topics
- Intro to PHP
- PHP Forms
Assignments
- ...
Links
- ...
Week 12 (4/19, 4/21)
Topics
- PHP:
- Web Services
- JSON API
- Simple RSS Proxy
Assignments
- ...
Links
- ...
Week 13 (4/26, 4/28)
Topics
- Storing data in the cloud with the Parse Service
- Client/Server Project
Assignments
- ...
Links
- ...
Week 14 (5/3, 5/5)
(Class only meets Monday 11/23 - Thanksgiving Break Week)
Topics
- ...
Assignments
- ...
Links
- ...
Week 15 (5/10, 5/12)
Topics
- ...
Assignments
- ...
Links
- ...
Finals Week (Monday 5/16 - Friday 5/20)
You will present your final projects during finals week: Time/Date TBA