Starting Lines; Shaping and Sketching

Week One

Monday, January 13 Video

  1. Welcome & introductions
  2. Course policies
  3. Course calendar

Wednesday, January 15 Video

  1. Introduce Project One
  2. Lo-fi prototyping and shaping
  3. Fat-marker sketches

System-Design Fundamentals and Strategies

Week Two

Monday, January 20

  1. No class. Martin Luther King, Jr. holiday.

Wednesday, January 22 Video

  1. Refining your systems-design thinking
  2. Determining architecturally significant requirements
  3. Establishing project boundaries
  4. Arriving at narrowly defined problems

One-on-One Conferences; Project Two

Week Three

Monday, January 27

  1. No class. Individual Project One remote consultations with instructor.

Wednesday, January 29 Video

  1. Introduce Project Two

System Architecture and Patterns; Dev Teams as Design Studios

Week Four

Monday, February 3 Video

  1. Advanced basics: grooming a Git-centric development environment
  2. Determining architecturally significant system features via frontend prototyping
  3. Visual regression testing with BackstopJS

Wednesday, February 5 Video

  1. More front-end prototyping
  2. Abbreviated tour of an example framework (Ruby on Rails)

Describing and Illustrating System Architectures

Week Five

Monday, February 10 Video

  1. Framework selection: starting from No
  2. Comparatively exploring and developing in a new framework (ExpressJS example)

Wednesday, February 12 Video

  1. Establishing minimal foundations in reference to generated code
  2. Tracking dependencies (manifests, semantic versioning)
  3. From frontend prototype to backend framework (ExpressJS/NodeJS example)
  4. Establishing and seeking loosely-coupled component parts for a system
  5. Auditioning candidate components

Dependence on Libraries and Frameworks

Week Six

Monday, February 17

  1. No class. Remote team consultations with instructor.

Wednesday, February 19 Video

  1. Refresher: Git remotes and pull requests; enforcing code reviews
  2. Working on feature branches; keeping up-to-date with git rebase

Shifting Towards Life in Production

Week Seven

Monday, February 24

  1. Request/response and I/O
  2. Working with data (synchronous and asynchronous JS)
  3. Isolating business logic
  4. Beginning to write tests

Wednesday, February 26

  1. Working with databases
  2. Testing dependencies
  3. Aiming eventually to remove dependencies

Work Week

Week Eight

Monday, March 2

  1. TBD

Wednesday, March 4

  1. TBD

Stability: From Alphas to Betas

Week Nine

Monday, March 9

  1. TBD

Wednesday, March 11

  1. TBD

Spring Break

Week Ten

Monday, March 16

  1. No class.

Wednesday, March 18

  1. No class.

Designing for Production

Week Eleven

Monday, March 23

  1. TBD

Wednesday, March 25

  1. TBD

Interconnection, Configuration, Security

Week Twelve

Monday, March 30

  1. TBD

Wednesday, April 1

  1. TBD

Deployment I

Week Thirteen

Monday, April 6

  1. TBD

Wednesday, April 8

  1. TBD

Deployment II

Week Fourteen

Monday, April 13

  1. TBD

Wednesday, April 15

  1. TBD

Work Week

Week Fifteen

Monday, April 20

  1. TBD

Wednesday, April 22

  1. TBD

Work Week

Week Sixteen

Monday, April 27

  1. TBD

Wednesday, April 29

  1. TBD