| layout | page |
|---|---|
| title | Syllabus |
| permalink | /syllabus/ |
| active | syllabus |
This is a tentative syllabus for Interactive Web Programming. This syllabus is subject to change; we may need to make significant adjustments to the schedule depending on a variety of factors. This syllabus will be updated throughout the semester.
- Syllabus and course info
- HTML and CSS basics: syntax
- Block vs inline
divandspanclasses andids- Combining selectors; cascading; inheritance
- Box model:
padding,border,margin - Debugging with Chrome Inspector
- Case study: Squarespace layout
- Flexbox basics
- HW0 DUE
- More flexbox:
shrinkandgrow - height/width percentage quirks:
vh/vwand box-sizing - Useful
background-imageproperties - Units:
em,vw/vh, percentages position- Case study: Squarespace layout continued
- Mobile web and
metatag;@media emandrem
- Start JavaScript
- How to connect to HTML (
<script defer>) - Language tour
- Some form elements (
input,textarea) and maybe how to style them
- How to connect to HTML (
- Basic event handling
- Introducing the DOM: Document Object Model
- Adding and removing elements from DOM
- Case Study: tic-tac-toe
- Traversing the DOM
- HW1 DUE
- Event propagation: bubbling and capturing
- Finish case study
data-*attributes- Mischief and hacks
- Keyboard events
- Pointer events
- Animations
- CSS animations (maybe)
- ES6 classes
thiskeyword /bind()- Communicating between classes
- Custom events
- Callbacks
- First-class functions
- JavaScript application architecture
- HW2 DUE
- Semana Santa
- Communicating between classes: Custom events
thiskeyword /bind()- First-class functions
- Callbacks
- Communicating between classes: Callbacks
- Functional JavaScript
- Closures
- Finish functional JS
- Currying
- Anonymous functions
- Closures
- Fetch API
- fetch()
- Promises and .then()
- JSON
- Recesso dos feriados de Tiradentes e de São Jorge
- Fetch API and JSON
- Fetch in a class
- REST APIs
- HTTP Methods: GET
- Query parameters
- More Fetch API:
- Querying 3rd-party REST APIs
- Submitting forms
- CORS
- Asynchrony in JavaScript
- JavaScript event loop
- Introduction
- Scalable Vector Graphics (SVG)
- Install
- Connecting data
- HW4 DUE
- Drawing
divs and SVGs - The method
data() - Basic graphs: barplot and scatterplot
- Scales: pixels, domain and ranges, normalizing
- Axis: configuration, cleaning and formatting
- Graph updates
- Transitions
- Other types of updates
- Servers in general
- NodeJS
npm- Express
- fetch() to localhost
- HW5 DUE
npm- Express
fetch()to localhost
async / await- Sending data to the server
- Returning JSON from Express
- Saving data
- POST body
body-parser- Saving to a file:
fs - MongoDB: Saving to a database
- mongo / mongod
- CRUD operations
- MongoDB and NodeJS
- insert, find, delete, update, upsert
- ObjectID
- Web application architecture
- Multi-page web apps (server-side rendering)
- Single-page web apps
- Corpus Christi
- Web application architecture
- Multi-page web apps (server-side rendering)
- Templates with Handlebars
- NodeJS Modules
- Express Router
- Middleware and Routes
- Single-page web app
- More MongoDB examples
- Authentication
- Important ideas we didn't cover
- Module bundling with browserify
- Older browser support with babeljs
- Testing
- Accessibility
- Libraries and frameworks
- Rants and general advice
- Don't use jQuery: prefer babeljs
- Don't use Bootstrap: learn CSS
- Pick a frontend framework and build something on it
- HW6 DUE
- A2 week