WDI Curriculum: Intermediate Phase

Class Policy

  1. Any resource found on the internet may be used to complete an assignment. Any code copied or modified from an internet resource must include inline comments. The student must demonstrate in the comments they they sufficiently understand the code they retrieved from the internet resource. Otherwise, the student will receieve no credit for that block of code.
  2. All assignments are due at the start of the next class. Extensions may be granted on a individual basis. 1 letter grade will be deducted per day after an assignment is due if submitted late.
  3. The Instructor will submit assignments 1 week in advance of the scheduled lesson to the TA for testing.
  4. The first half of the first day of class per week will be used for Whiteboarding practice. The Instructor and TA will select up to 3 sample problems for the class to work on until lunch time. After lunch time, the class will reconvene and review all the sample problems.
  5. All google feedback forms will be reviewed by the Instructor and/or TA at the end of every week.

Topic Legend

  • [Primary] - Indicates an essential topic that a student must have proficiency with upon completion of the module.
  • [Secondary] - Indicates a non-essential topic that should be understood or at least known by the student upon completion of the module.
  • [Tertiary] - Indicates a non-essential topic that can be optionally taught to a student if there is extra time within the module.

WDI-201 Backend Development: Web Servers and Databases

Overview

WDI-201 will introduce students to web servers and server-side functionality. Students will learn how to use NPM to install and save packages. Students will learn how to use ExpressJS to create and run a web server. Students will test their ExpressJS server using Postman. Students will learn the basics of databases, including the benefits and drawbacks of SQL vs NoSQL databases. Students will create and work with their own MongoDB database. Finally, students will connect their ExpressJS server to their MongoDB database in a single server-side application.

Web Servers

  • [Primary] ENV file
  • [Primary] NPM
  • [Primary] Package.json
  • [Primary] Node_Modules
  • [Primary] ExpressJS
    • express-generator
    • View Engine
    • Routes
    • Middleware
    • [Secondary] Serving Static Files
  • [Primary] REST
  • [Secondary] Postman

Databases

  • [Primary] MongoDB
    • Install, Run and Connect to Local Instance
    • Mongo CLI
    • Read/Write/Update/Delete Data
  • [Secondary] Mongoose
    • CRUD Functionality
  • [Tertiary] SQL vs NoSQL
    • Overview
    • Benefits/Drawbacks
    • ACID, CAP, BASE Overview

WDI-202 WDI-202 Front-End Development: React and Advanced CSS

Overview

WDI-202 will shift the class to front-end development and functionality. Students will be introduced to advanced front-end concepts such as the window/document object, advanced CSS topics such as specificity, responsive design, and combinators. Students will learn how to use the ReactJS front-end framework. Finally, students will learn how to use React-Router to display and navigate multiple views in a single page application.

Front-End Development

  • [Primary] Window/DOM
    • document
    • Cookies/Local Storage
    • Virtual DOM
  • [Primary] Developer Console
  • [Primary] CSS Specificity
  • [Primary] Responsive CSS
  • [Secondary] Advanced CSS
    • Combinators
    • Pseudo classes
  • [Primary] ReactJS
    • JSX
    • Rendering Elements
      • [Secondary] Class Components
    • State
    • Functional Components
    • Props
    • Event Handling
    • Synthetic Events
    • List Rendering
      • Keys
    • Conditional Rendering
    • Hooks
      • UseState
      • UseEffect
  • [Primary] React Router
    • BrowserRouter
    • Route/Path/Element
    • Navigation
      • Link
      • useNavigate
    • URL Params
    • Nested Routes
    • Index Routes

WDI-203 Fullstack Development

Overview

WDI-203 will combine the lessons from WDI-201 and WDI-202 into creating a single fullstack application. Students will learn additional web concepts such as troubleshooting CORS, web authentication methodology, Redux, application deployment via Heroku, web sockets and basic web architecture. Students will spend most of their remaining time creating and deploying their own fullstack project.

Fullstack Development

  • [Primary] Web Authentication
    • Password Salt/Hash Storage
    • JWT
    • OAuth
    • HTTPS/SSH
  • [Primary] CORS
  • [Primary] Fullstack Deployment
    • Heroku
  • [Primary] Basic Website Architecture
  • [Secondary] Web Sockets
  • [Secondary] Redux

WDI-204 Fullstack Final Project

Overview

In WDI-204, students will be given full autonomy to plan, design and implement their own fullstack project. Students will have the option of working in teams or alone to complete their project. Students will be required to create their own milestone list, front-end component wireframe mockup, and back-end architecture plan/diagram. Students will be required to check in with instructors on morning SCRUM as well as track their progress in JIRA as if they were working in a professional environment.

Capstone Project

  • [Primary] Project Planing and Breakdown
    • Milestones
    • Front-end Component Mockup
    • Back-end Architecture Diagram
    • Scrum
    • JIRA Ticketing
    • JSDoc
  • [Primary] Team/Solo Fullstack Project