CSCC09 Winter 2023

Schedule

An outline of what we're going to cover in 12 weeks, as well as assignment and project deadlines.

1

Intro to Web Dev, HTML/CSS

Week of January 09

An introduction to web development and its evolution; How to succeed in this course; A quick (re)introduction to HTML and CSS - how to create nice layouts.

Lecture Slides

2

Javascript

Week of January 16

Learn how to programatically manipulate the Document Object Model (DOM) through Javascript; common coding practices when working with the language; limitations of Javascript running in the browser.

Lecture SlidesLab: HTML/CSSAssignment: Frontend

Assignment Due Date: January 30, 2023


3

Web API

Week of January 23

Create elegant RESTful Application Programming Interfaces (API) with Express.js; Breaking down the HTTP request; Using Javascript to make HTTP requests on the browser without reloading.


4

Storing Data

Week of January 30

Determine the best way of storing application data; Storing and serving images; Using ORMs in backend code; Learn the different methods of pagination and how to properly paginate in the backend; Solving the N+1 problem.

Lecture SlidesLab: Web APIAssignment: BackendProject Proposal

Assignment Due Date: February 13, 2023

Project Proposal Due Date: February 17, 2023


5

Authentication and Authorization

Week of February 06

Protect views from unauthorized individuals; A deep dive into the Open Authorization (OAuth) protocol; Learn the differences between authentication and authorization.


6

Javascript Event Loop & Frontend Frameworks

Week of February 13

An introduction to the Javascript event loop and how to debounce in Javascript using setTimeout. Learn how to use a frontend framework (Angular) to build a web application.

Assignment Due Date: February 26, 2023


7

Reading Week

Week of February 20


8

Real-time web applications and integrating with external services

Week of February 27

Technologies to enable real-time features on a web application; integrating with external services through using their API and consuming webhooks.


9

Web Application Security

Week of March 06

A demonstration of common exploits of the web, such as XSS, CSRF, SQL Injection, etc. How to protect a web application from these attacks.

Project Alpha Version Due Date: March 08, 2023


10

Intro to Deployments

Week of March 13

Learn how to deploy a web application to the internet through the use of a Virtual Machine (VM) and Docker; Best practices on deployment architecture.


11

Large Scale web applications

Week of March 20

This lecture will go over strategies of maintaining large scale web applications; such as implementing a web caching layer, database migrations, etc. Samuel Zhou, a Team Lead at Verto Health, will also be giving a Guest Lecture on this topic.

Project Beta Version Due Date: March 22, 2023


12

Guest Lectures - Intro to Chrome Devtools

Week of March 27

Intro to Chrome Devtools by Aleksander Bodurri, Core Contributor at Angular.

Project Presentation Due Date: March 31, 2023


13

Exam Review and Final Presentations

Week of April 03

A summary of what was covered in the past 11-weeks; showcasing the best web application projects developed in this course.

Project Final Version Due Date: April 03, 2023


© 2022 Cho Yin Yong. Made with Gatsby