Skip to content
Codeoverdoze edited this page Apr 9, 2021 · 21 revisions

Welcome to the CSCD311 wiki!

This wiki contains all the needed information and resources required to successfully complete this course. Students are encouraged to visit this wiki regularly, study the material provided, and try out examples and demos.

Some resources:

Week 0: Foundation of Web Technologies

Students are required to cover all the material contained in this section before the start of the semester. The content of this section are foundational concepts and is necessary for a thorough understanding of the rest of the material.

Item Purpose Link
1. Understanding how the web works Basic concepts of web applications
2. Understanding REST APIs REST API Concepts
3. Understanding Version Control using Git Version Control Basics
4. Understanding HTML5 HTML5 Cheat Sheet
5. Understanding CSS3 CSS3 Cheat Sheet
6. Understanding how web browsers work Web browser internals

Week 1: Introduction to JavaScript (Part I)

Students will be introduced to JavaScript from the very basic concepts to advanced topics with simple, but detailed explanations. This introduction assumes prior exposure to other programming languages and familiarity with concepts like OOP and FP. Students are also expected to be comfortable using the terminal for executing tasks like package installation. Students are free to adopt any Integrated Development Environment of their choosing. VS Code and WebStorm are recommended options.

Presentation Slides

Introduction to JavaScript

Lab Exercise

JavaScript Fundamentals

Item Topic Link
1. Introduction Introduction
2. Values, Types, and Operators Values, Types, and Operators
3. Program Structure Program Structure
4. Functions Functions
5. Data Structures: Objects and Arrays Data Structures: Objects and Arrays
6. Higher-order Functions (https://eloquentjavascript.net/05_higher_order.html)
7. The Secret Life of Objects (https://eloquentjavascript.net/06_object.html)
8. Asynchronous Programming (https://eloquentjavascript.net/11_async.html)
9. The Document Object Model (https://eloquentjavascript.net/14_dom.html)
10. Handling Events (https://eloquentjavascript.net/15_event.html)

Week 2: Introduction to React

Building efficient web and mobile interfaces are often challenging and requires the use of imperative logic. React enables you to declaratively describe user interfaces in terms of their state, and it will do the heavy lifting of natively building them for you. First, you will see how to design class components and stateful function components, how to one-way flow data and behavior in a component tree, and how to read and update state elements. Then, you will delve into modern JavaScript features used with React like arrow functions, destructuring rest and spread operators, classes, async/await, and more.

Resources

[Official React Documentation] (https://reactjs.org)

Presentation Slides

Introduction to React

Lab Exercise

Introduction to React

Item Topic Link
1. Installation and configuration of development environment
2. Introduction to JSX
3. Rendering Elements
4. Components and Props
5. State and Lifecycle
6. Handling Events
7. Conditional Rendering
8. Lists and Keys
9. Forms
10. Lifting State Up
11. Composition vs Inheritance
12. Thinking In React

Week 3: Introduction to React Part II

First, you'll learn how to configure and customize full-stack JavaScript environments. Next, you'll explore how to work with async data and manage an application state both internally and externally. Additionally, you'll dive into components context API, and learn how to use it with higher-order components, pure components, presentational and container components, and all components lifecycle methods. By the end of this course, you'll be able to efficiently use presentational and stateful React components in production.

Resources

[Official React Documentation] (https://reactjs.org)

Presentation Slides

Introduction to React Part II

Lab Exercise

Introduction to React Part II

Item Topic Link
1. Context
2. Higher-Order Components
3. JSX In Depth
4. ReactDOM
5. Introducing Hooks
6. Hooks at a Glance
7. Introducing Hooks
8. Using the State Hook
9. Rules Hooks
10. Building Your Own Hooks

Week 4: Introduction to React Native (Part I)

Students will continue with more advanced topics in JavaScript ensuring a sound understanding of some of the more confusing concepts of the language.

Presentation Slides

Getting Started with Express

Lab Exercise

Building REST APIs with NodeJS and Express

Item Topic Link
1. Basic Syntax of Classes Class basic syntax
2. Class Inheritance Class Inheritance
3. Static Properties and Methods Static Properties and Methods
4. Private and Protected properties and methods Private and Protected Properties

Week 5: Building web servers (Part II)

Students will continue with more advanced topics in JavaScript ensuring a sound understanding of some of the more confusing concepts of the language.

Presentation Slides

Getting Started with Express

Lab Exercise

Building REST APIs with NodeJS and Express

Item Topic Link
1. Basic Syntax of Classes Class basic syntax
2. Class Inheritance Class Inheritance
3. Static Properties and Methods Static Properties and Methods
4. Private and Protected properties and methods Private and Protected Properties

Week 6: Consuming APIs (GraphQL & REST)

APIs are what we can use to supercharge our React applications with data. There are certain operations that can’t be done on the client-side, so these operations are implemented on the server-side. We can then use the APIs to consume the data on the client side. In this session, we delve into API consumption of the 2 dominant technologies for serving APIs (REST and GraphQL). Although there are other technologies like SOAP, only a few legacy applications still make use of them. Knowing how to consume GraphSQL and REST endpoints should be enough to survive in today's Tech ecosystem.

Presentation Slides

Getting Started with Express

Lab Exercise

Building REST APIs with NodeJS and Express

Item Topic Link
1. Basic Syntax of Classes Class basic syntax
2. Class Inheritance Class Inheritance
3. Static Properties and Methods Static Properties and Methods
4. Private and Protected properties and methods Private and Protected Properties