- Complete mastery of JS Fundamentals
- Objects, Factories, Classes
- Standard and Arrow Functions
- Looping, Iteration, Traversal of Arrays and Objects
- Recursion
- Documentation best practices with JSDoc
- Understanding of core data structures
- When each structure is most appropriate
- Real world applicataions of each structure
- Looping, Iteration, Traversal
- Stacks & Queues
- Linked Lists
- Trees
- Graphs
- Hash Tables
- Creation and operation of an Express web server
- Static Routes
- Dynamic Routes
- EJS
- Creation and operation of an Express API Server
- RESTful, Dynamic Model Management
- Authenticated Access with RBAC
- Swagger Documentation
- Creation and operation of a Socket.io Message Queue Server and Client Library
- Creation of a single page web app in React
- Creation of a mobile app with React Native
- Deploy a website to AWS, Heroku, Zeit, Netlify, GoDaddy
- Deploy an API & Lambda functions at AWS
- Reliable, Scalable API Server
- Reliable, Scalable WWW Server
- Message/Queue Service and Client Library
- React/Redux Starter App
- React Native (Mobile) Starter App
- Stable of React and React Native Components at NPM (Styled)
<Header />
<Footer />
<Modal />
<Auth />
<Rotator />
<Autocomplete />
<Draggable />
and<Droppable />
- Scalable SASS Layout and Theme Engine
On most days, the lab folder will have some starter-code for them to copy. They will generally be making a new repository each day and copying that code in as a starting point.
It's advisable that the students first make an new org (perhaps called '401-js-') that these repositories can be created in, to help them organize things better.
-
READING (Due before each lecture)
- Reading assignments should be done as articles/notes in the wiki of their repo fork
-
LAB Assignments (4 per block)
- 10 Points (graded on the rubric)
- ~ 3-5 Hours
- Should be completed in a new repository for each day
- Generally, these are smaller implementations, refactors, and practice to support the lecture concept. Not necessarily a full-scale application.
- Code must be tested through Travis and deployed through either Heroku or AWS
- JS Code must be documented with JSDoc
- APIs must also be documented with Swagger
- Students must use the README.md template (from the resources folder) to complete their assignment
- The README requires working links to deployed code, Travis, functional documentation, test documentation and a UML and/or data-flow diagram.
-
DESIGN (1 per block)
- 10 Points (complete/incomplete)
- Timebox to ~1-2 Hours
- Following a short lecture at the end of each block, students will iteratively build out a scalable "design" or "theme" which should be easily transferable to any project they do.
-
DS&A IMPLEMENTATION
- 10 Points (complete/incomplete)
- Installed at the root level of your
data-structures-and-algorithms
repository - These will be used as libraries to solve code challenges
-
DS&A CODE CHALLENGE (4 per block)
- 5 points (3 points for whiteboard, 1 point for testing, 1 point for working code)
- Generally requires a working implementation (above) to work
- Timebox execution to ~ 1 Hour
-
END OF BLOCK PROJECT
- 25 Points (graded on the rubric)
- ~ 2 Days (10 hours)
- Generally Paired
- Takes the learnings/components/modules from the previous 4 classes and has the students assemble them into a larger/full-scale application.