layout | title | permalink | active |
---|---|---|---|
page |
Syllabus |
/syllabus/ |
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
div
andspan
class
es andid
s- Combining selectors; cascading; inheritance
- Box model:
padding
,border
,margin
- Debugging with Chrome Inspector
- Case study: Squarespace layout
- Flexbox basics
- HW0 DUE
- More flexbox:
shrink
andgrow
- height/width percentage quirks:
vh
/vw
and box-sizing - Useful
background-image
properties - Units:
em
,vw
/vh
, percentages position
- Case study: Squarespace layout continued
- Mobile web and
meta
tag;@media
em
andrem
- 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
this
keyword /bind()
- Communicating between classes
- Custom events
- Callbacks
- First-class functions
- JavaScript application architecture
- HW2 DUE
- Semana Santa
- Communicating between classes: Custom events
this
keyword /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
div
s 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