Lectures and Schedule
Lectures: Tue/Thu 3:00-4:20 PM
Lectures will be in 420-040. They will not be recorded.
Schedule
Here is the tentative schedule of lectures.
Date | Description | Materials | Coursework |
---|---|---|---|
Week 1: Intro, HTML, JavaScript fundamentals | |||
Tue Apr 4 |
1. Overview, Syllabus, HTMLWe start with an overview of the course and logistics, then jump into HTML. |
Out: Assignment 0 |
|
Thu Apr 6 |
2. Intro to JavaScriptAfter recapping HTML, we introduce the JavaScript language, including a brief history, key syntax and concepts, and how to use it in the browser. |
||
Week 2: JavaScript: classes, the DOM, events | |||
Tue Apr 11 |
3. JavaScript ADTs, classes, modulesWe continue our exploration of JavaScript syntax, including data structures, classes, and modules. |
Due: Assignment 0 |
|
Thu Apr 13 |
4. Events, interactors, and the DOMWe discuss how to use JavaScript to interact with the web page via buttons and inputs, as well as traversing page contents using the DOM. |
||
Week 3: JavaScript DOM/events, intro to CSS | |||
Tue Apr 18 |
5. Forms, more DOM, and intro to stylesWe explore another example with interactors, forms, DOM manipulation, and communicating between classes. Then we start discussing how to apply styles to elements. |
||
Thu Apr 20 |
6. CSS, stylesheets, and page layoutWe continue our discussion of styling our page elements, this time using stylesheet files, and we begin discussing concepts around page layout. |
Due: -->Assignment 1 Out: Assignment 2.1 |
|
Week 4: CSS and page layout | |||
Tue Apr 25 |
7. CSS LayoutsWe discuss page layout using CSS, including block vs. inline elements and the box model. We then introduce Flexbox. |
||
Thu Apr 27 |
8. CSS Odds and EndsWe introduce Flexbox, then discuss a few assorted CSS details--different units and |
||
Week 5: APIs, JSON, fetch , and async | |||
Tue May 2 |
9. async/await, APIs, and JSONWe turn our attention toward accessing external resources using |
Due: Assignment 2.1 Out: Assignment 2.2 |
|
Thu May 4 |
10. REST APIsWe discuss the structure of a REST API, including details of HTTP requests and responses. Then we discuss using |
||
Week 6: Backends with Node.js | |||
Tue May 9 |
11. More REST APIsWe continue our discussion of REST APIs, including error handling and more examples of sending and receiving data from the server. |
Due: Assignment 2.2 |
|
Thu May 11 |
12. Intro to Node and Node web serversWe turn our attention to server-side programming, first introducing Node.js and web servers in general, then showing how to write a web server/app in Node. |
Out: Assignment 3.1 |
|
Week 7: Backends and databases | |||
Tue May 16 |
13. Node API backendsWe continue looking at building a REST API using a Node web server with Express. We discuss Express middlewares, some common backend issues (e.g. CORS), and tips for designing API endpoints. |
Due: Project proposal |
|
Thu May 18 |
14. Databases and MongoDBWe discuss storing our data in a database using MongoDB. Note: To follow along during this lecture, you will need to install MongoDB (you will have to do this for assignment 3.2 anyway). Since it may take a little time to download and install, we recommend doing this before lecture. Note 2: To initialize the MongoDB database for the students example, run |
Due: Assignment 3.1 Out: Assignment 3.2 |
|
Week 8: Full stack topics | |||
Tue May 23 |
15. App Organization and History APIWe discuss a few assorted topics that may be useful for various projects, including overall web app structure and managing the URL bar. We end with a quick intro to Git, which you may want to use to organize your project code. | ||
Thu May 25 |
16. Authentication and usersWe discuss storing users in our database and logging them in, including using third-party providers like Google for account management. |
Due: Assignment 3.2 (Sat) |
|
Week 9: More full stack topics | |||
Tue May 30 |
17. Mobile pages and CSS tricksWe discuss a couple of techniques to make our pages more mobile-friendly, as well as a few assorted CSS tricks, such as animations and icon fonts. |
Due: Project milestone |
|
Thu Jun 1 |
18. AccessibilityWe discuss challenges that users may face when accessing your website, and techniques for mitigating those issues. | ||
Week 10: What's next in web dev? | |||
Tue Jun 6 |
19. Misc topics and wrap-upWe give a whirlwind tour of a few more assorted topics. We'll end with a little AMA, so please bring your questions! | ||
Finals Week | |||
Tue Jun 13 |
Due: Final project (no grace period) |