layout | title | permalink | active |
---|---|---|---|
page |
Lectures |
/lectures/ |
lectures |
This page will contain the slides, notes, and example code pertaining to lecture.
- [Tentative Course Schedule]({{ site.baseurl }}/syllabus): See the roadmap for the semester.
- Slides: [lecture24.pdf]({{ site.baseurl }}/lectures/lecture24.pdf)
- Next steps: General advice
- Important ideas we didn't cover
- Libraries and frameworks
- Final advice
- Slides: [lecture23.pdf]({{ site.baseurl }}/lectures/lecture23.pdf)
- Web application architecture
- Server-side rendering with Handlebars
- Single-page web app
- Modules, Middleware, Routes
- Authentication
- Web application architecture
- Code
- Slides: [lecture22.pdf]({{ site.baseurl }}/lectures/lecture22.pdf)
- MongoDB and NodeJS
mongo
/ mongod- insert, find, delete, update, upsert
ObjectID
- Web application architecture
- Multi-page web apps (server-side rendering)
- Single-page web apps
- MongoDB and NodeJS
- Code
- Slides: [lecture21.pdf]({{ site.baseurl }}/lectures/lecture21.pdf)
- Saving data
- POST body
body-parser
- Saving to a file
- MongoDB: Saving to a database
- Saving data
- Code
- Slides: [lecture20.pdf]({{ site.baseurl }}/lectures/lecture20.pdf)
- Sending data to the server
- Returning JSON
package.json
async/await
: A JavaScript language feature
- Slides: [lecture19.pdf]({{ site.baseurl }}/lectures/lecture19.pdf)
- Servers
- NodeJS
- npm
- Express
- fetch() to localhost
- Slides: [lecture18.pdf]({{ site.baseurl }}/lectures/lecture18.pdf)
- Servers
- NodeJS
- npm
- Express
- fetch() to localhost
- Slides: [lecture17.pdf]({{ site.baseurl }}/lectures/lecture17.pdf)
- Interactions with D3
- Listening for click events
- Unidirectional data flow
- Selecting marks by clicking or hovering
- Capturing mouse motion to render text
- Interactions with D3
- Slides: [lecture16.pdf]({{ site.baseurl }}/lectures/lecture16.pdf)
- The general update pattern of D3
- Another view on enter, update and exit
- Animated transitions
- Object constancy
- Nested and single elements
- The general update pattern of D3
- Slides: [lecture15.pdf]({{ site.baseurl }}/lectures/lecture15.pdf)
- Making a bar chart with D3
- Bind CSV files to SVG shapes
- Introduction to axes and scales
- Making a bar chart with D3
- Slides: [lecture14.pdf]({{ site.baseurl }}/lectures/lecture14.pdf)
- SVG: Scalable Vector Graphics
- D3: Data-driven Documents
- Selections
- Data joins
- Slides: [lecture13.pdf]({{ site.baseurl }}/lectures/lecture13.pdf)
- Querying REST APIs
- Form submission
- Fetch API gotchas
- CORS and Closures
- Single-threaded asynchrony
- JS Event loop
- Querying REST APIs
- Slides: [lecture12.pdf]({{ site.baseurl }}/lectures/lecture12.pdf)
- Fetch
- JSON
- Fetch in an class
- Promises
- Querying REST APIs
- Form submission
- Fetch
- Code:
- [fetch-images]({{ site.baseurl }}/pages/fetch-images)
- [tvmaze-search]({{ site.baseurl }}/pages/tvmaze-search)
- Slides: [lecture11.pdf]({{ site.baseurl }}/lectures/lecture11.pdf)
- Callbacks
- Functional JavaScript
- Closures
- Anonymous functions
- Closures
- Loading data from files
- Fetch API
- Promises
- JSON
- Slides: [lecture10.pdf]({{ site.baseurl }}/lectures/lecture10.pdf)
- Callbacks
- Functional JavaScript
- Closures
- Anonymous functions
- Closures
- A1 week
- A1 week
- Semana Santa
- Slides: [lecture09.pdf]({{ site.baseurl }}/lectures/lecture09.pdf)
- Classes and objects in JavaScript
this
keyword andbind
- Custom events
- Callbacks
- Slides: [lecture08.pdf]({{ site.baseurl }}/lectures/lecture08.pdf)
- CSS animations
- Classes and objects in JavaScript
this
keyword andbind
- Introduction to Custom events
- Introduction to callbacks and functional programming
- Slides: [lecture07.pdf]({{ site.baseurl }}/lectures/lecture07.pdf)
- JS Events in detail
- Other JavaScript events
- Case Study: photo-album
- Code:
- [key-events]({{ site.baseurl }}/pages/key-events)
- [photos-start]({{ site.baseurl }}/pages/photos-start)
- [photos-key-events]({{ site.baseurl }}/pages/photos-key-events)
- [photos-touch-events]({{ site.baseurl }}/pages/photos-touch-events)
- Slides: [lecture06.pdf]({{ site.baseurl }}/lectures/lecture06.pdf)
- Adding and removing elements from DOM
- Case Study: tic-tac-toe
- Traversing the DOM
- [Homework 2]({{ site.baseurl }}/homework/2-tv-show-episodes) HW2 assigned
- HW1 DUE
- Code:
- [html]({{ site.baseurl }}/pages/tic-tac-toe/index.html) / [css]({{ site.baseurl }}/pages/tic-tac-toe/style.css) / [js]({{ site.baseurl }}/pages/tic-tac-toe/script.js): Case study: tic-tac-toe.
- Slides: [lecture05.pdf]({{ site.baseurl }}/lectures/lecture05.pdf)
- Start JavaScript
- How to connect to HTML (<script defer>)
- Language tour
- Some form elements (input, textarea) and maybe how to style them
- Basic event handling
- Introducing the DOM: Document Object Model
- Start JavaScript
- Slides: [lecture04.pdf]({{ site.baseurl }}/lectures/lecture04.pdf)
- More flexbox: shrink and grow
height
/width
percentage quirks:vh
/vw
andbox-sizing
position
- Useful
background-image
properties - Mobile CSS
- Relative sizes:
em
andrem
- Code:
- [html]({{ site.baseurl }}/pages/bedford/index.html) / [css]({{ site.baseurl }}/pages/bedford/style.css): A rough copy of the Bedford Squarespace template. Be sure to inspect elements and view the source to see how it works!
- [html]({{ site.baseurl }}/pages/bedford/index-mobile.html) / [css]({{ site.baseurl }}/pages/bedford/style-mobile.css): The mobile version of our Squarespace layout.
- Slides: [lecture03.pdf]({{ site.baseurl }}/lectures/lecture03.pdf)
- The CSS Box model
- Debugging with Chrome Inspector
- Case study: Squarespace Layout
- Flexbox
- [Homework 1]({{ site.baseurl }}/homework/1-tv-show-list) HW1 assigned
- HW0 DUE
- Slides: [lecture02.pdf]({{ site.baseurl }}/lectures/lecture02.pdf)
- Block vs inline
div
andspan
class
es andid
s- Combining selectors; cascading; inheritance
- Block vs inline guide
- Slides: [lecture01.pdf]({{ site.baseurl }}/lectures/lecture01.pdf)
- Syllabus and course info
- HTML and CSS basics: syntax; element selector
- [Homework 0]({{ site.baseurl }}/homework/0-welcome) HW0 assigned