-
Teach the students to teach themselves
-
Use the agile process consistently from start to finish
-
Work with Rails for the entire nine weeks
-
Do weekly sprints with Friday deployments
-
Insist on usability/accessibility
-
Use BDD consistently following best practices
-
Develop and follow a style guide
-
Drill down into more advanced topics, including:
- MV* (model-view-whatever)
- REST
- Real-time applications
- Single-page applications
- Reactivity
- Streams
- Theory and practice of OOP
- Theory and practice of FP and FRP
-
Drill down into alternative frameworks, libraries, methods:
- Sinatra/Cuba/Ramaze/Cramp/Lotus
- Angular/Ember/Meteor
- Polymer/React/Web components
- Flow/Typescript/Elm
- d3.js/three.js/moment.js/etc.
-
Make use of available APIs, such as:
- Google maps, leaflet, or equivalent
- Interop with Facebook, Twitter, etc.
- GitHub
-
Focus on:
- Teamwork
- Pair programming
- Big picture/context
- Behavior-driven development
- Continuous integration
- Just-in-time learning
-
Make the pedagogy part of the curriculum:
- Explain what we're doing, how, and why
- Replace lightning talks with short student lectures
Note: The degree to which we drill down will vary from person to person depending on motivation, ability, and available time. The above lists are possible topics. No student will cover all of them or even a majority. Some may be touched on lightly, others in more depth. But all students will be made aware of them.
During this week we'll delve deeply into Garrett's Five Elements of User Experience. The five elements will become the framework within which we will discuss what a website/web app is and how to build one.
- User centered design
- Five elements of user experience
- User needs analysis