Jumpstart Lab Curriculum

ScrabbleWeb

In this assessment you will:

  • Build a web-based scrabble word tracker
  • Use test-driven development
  • Demonstrate mastery of all parts of the Rails stack
  • Demonstrate mastery of Ruby throughout the process

Expectations

  • Work on the exercise with your facilitator
  • The facilitator will assign you a challenge similar but not identical to those in the test suite. The facilitator may change the expectations or ask additional questions to assess your understandings/skills
  • As you work, you should:
    • Think out loud so your facilitator can understand your process
    • Ask questions of your facilitator
    • Reference external public resources (ie: Google, Ruby API, etc)
    • Use the tooling most comfortable to you (Editor/IDE, testing framework, support tools like Guard, etc)
  • As you work, you should not:
    • Copy code snippets other than those present in this description
    • Seek live support from individuals other than your facilitator
  • After you complete the exercise, please use discretion with your classmates to allow them an authentic evaluation experience

Preparation

Before the session starts:

  • Clone the repo from GitHub: scrabble-web
  • Run bundle to install dependencies
  • Run the test suite (bundle exec rake test) and see that it has several pending tests
  • Setup any external tooling you want (your editor, etc)

Feature Description

For this exercise, the feature will be assigned by the facilitator. You can find example features implemented as tests in the project repository.

Evaluation Criteria

Subjective evaluation will be made on your work/process according to the following criteria:

1. Analytic/Algorithmic Thinking

  • 4: Developer independently breaks complex processes into logical sequences of small steps and validates progress along the way
  • 3: Developer breaks complex problems into small, digestible steps and executes them
  • 2: Developer can execute an algorithm or plan given to them
  • 1: Developer struggles to implement an algorithm or plan

2. Ruby Syntax & Standard Library

  • 4: Developer is able to comfortably implement solutions using the best-choice tools Ruby has to offer
  • 3: Developer is able to comfortably implement solutions in Ruby
  • 2: Developer is able to write Ruby with some debugging of fundamental concepts
  • 1: Developer is generally able to write Ruby, but gets stuck on or needs help with fundamental concepts

3. Rails Syntax & API

  • 4: Developer is able to smoothly utilize Rails methods and structures with a minimum of debugging or support
  • 3: Developer is able to utilize Rails methods and structures, but needs some direct guidance
  • 2: Developer is generally able to utilize Rails, but shows confusion or shallow knowledge about what Rails provides
  • 1: Developer needs significant support to utilize Rails’ elementary methods/concepts

4. Rails Style

  • 4: Developer is able to craft Rails features that make smart use of Ruby, follow the principles of MVC, and push business logic down where it belongs
  • 3: Developer generally writes clean Rails features that make smart use of Ruby, with some struggles in pushing logic down the stack
  • 2: Developer struggles with some essential concepts of MVC
  • 1: Developer shows little or no understanding of how to craft Rails applications

5. Testing

  • 4: Developer writes tests at multiple layers of abstraction to drive development
  • 3: Developer uses tests at multiple layers of abstraction to drive development
  • 2: Developer struggles to use tests to drive development
  • 1: Developer develops without guidance from tests

6. Collaboration

  • 4: Developer actively seeks collaboration both before implementing, while in motion, and when stuck
  • 3: Developer lays out their thinking before attacking a problem and integrates feedback through the process
  • 2: Developer asks detailed questions when progress slows or stops
  • 1: Developer is able to integrate unsolicited feedback but does not really collaborate
Feedback

Have Feedback?

Did you find an error? Something confusing? We'd love your help:

Thanks!