Skip to content

soniakandah/seattle-javascript-401n14

 
 

Repository files navigation

401 Advanced Javascript

Course Goals

Students will be able to demonstrate ...

  • 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

Course Takeaways / Alumni Toolkit

  • 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

Student Operation

Students will fork the class repository

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.

ASSIGNMENTS

  • 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.

About

Seattle JS 401n14 with Lead Instructor, Sonia Kandah

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 91.9%
  • HTML 5.3%
  • CSS 2.8%