We have updated the content of our program. To access the current Software Engineering curriculum visit curriculum.turing.edu.
War or Peace - Rubric
Learning Goals
- Follow an interaction pattern
- Write readable code that adheres to Ruby convention
- Write tests
- Create an Object Oriented Solution to a problem (objects should interact to achieve the stated goal)
- Host code on Github
Presentation Guidelines
Each student will have a live evaluation with an instructor, and should come prepared to do the following:
- Demonstrate how the game works by running it in the terminal (note: if you don’t complete Iteration 3, you can skip this demo)
- Run your tests and identify one test case you’re proud of, and one test case you’d like feedback on
- At a high level (i.e. don’t just read your code line by line) discuss your strategy for implementing one of the more complex methods, such as determining the winner of a Turn, awarding the spoils of war, etc.
- Give a brief overview of how you used your runner.rb file to set up the game play
- Identify an area you would refactor if you had more time
- Ask any remaining questions about the project or their solution
Exceptional | Meets Expectations | Below Expectations | Well Below Expectations | |
---|---|---|---|---|
Functionality | Application is robust and can handle a variety of inputs including invalid inputs and completes iteration 4 | Application adheres to the flow outlined in the specification and can handle a variety of valid inputs (not just what is outlined in spec). Iteration 3 is complete. | Only up to Iteration 2 is complete or the application does not follow the flow outlined in the specification. | Iteration 2 is not complete. |
Ruby Mechanics | Project includes appropriate uses of hashes and enumerables not covered in class | Appropriately uses Ruby’s built in datatypes and methods, flow control, and enumerables. | Does not appropriately use one or two of the following: Ruby’s built in datatypes and methods, flow control, and enumerables | Does not appropriately use Ruby’s built in datatypes and methods, flow control, and enumerables, or does not build classes |
Ruby Conventions | Classes, methods, and variables are well named so that they clearly communicate their purpose. Code is all properly indented and syntax is consistent. | Code is mostly properly indented, spaced, and lines are not excessively long. Class, method, variable, and file names follow convention | Code demonstrates some proper indenting and spacing. Class, method, variable, and file names inconsistently follow convention | Code is not properly indented and spaced and lines are excessively long. Class, method, variable, and file names do not follow convention |
Testing | All methods that do not require command line input/output are accurately tested. Best use assertions are made. | Each class has its own test file. Every method listed on the specification is tested. Most tests are written to accurately verify expected behavior. | Tests are written for most methods listed on the specification, but the tests may be in an incorrect location or the tests may not accurately verify the expected behavior | Fewer than 7 tests written (in addition to the card tests provided) |
Version Control
Code is required to be hosted on a GitHub repository, and will have at least 20 commits and one pull request.