Git Product home page Git Product logo

vandise-agile-sp2018-oop's Introduction

Agile w Design Patterns Final

This repository is an old interview question for Jr. Software Developers a major retail company in the mid-west. I was given permission to utilize this technical interview exercise for the purposes of this course.

This technical interview is traditionally administered over 1 hour. Applicants who did not complete the exercise were no longer considered for the position.

What is this exam?

This exam contains supporting unit tests explaining the functionality of the code. However, there are many missing and/or broken aspects that need to be corrected. You will see some helpful comments and TODO notes to guide you where you need to add/fix the functionality.

The exam is a simplified version of Battleship. You have various types of ships with different sizes that can be added to a 10x10 grid. However, the ships can only be vertically aligned.

For example:

If a ship has covers 3 coordinates and you set the position to (5,5); the coordinates the ship will cover are: (5,5), (5,4), and (5,3).

The unit tests describe the additional behaviors of the game.

You need to implement and/or fix all the functionality of the project described by the unit tests.

This exam also tests your ability to follow directions. Failure to do so will result in a 0.

How this exam will be administered

This exam will be administered in-class. You will be given 3 hours to complete the exam. If you do not get all unit tests to pass, you will turn in what you have completed for evaluation.

How you will complete this exam and Competencies

The following specifies how this exam needs to be completed.

Version Control (Git)

You will complete this exam using version control practices that you have been demonstrated in-class. You will not receive points for the version control aspects of this assessment if you do not follow the exact details specified below:

  • You fork this repository
  • You will fix each feature in a separate branch. Adding ships, calling coordinates, implementing classes, etc. Utilize your best judgement on what should be a separate feature / branch.
  • Never commit on master unless merging in a feature / branch.
  • You do not push your changes to GitHub until AFTER the exam. Any changes pushed to GitHub before the alloted time for the exam expires will be considered cheating and will recieve a 0.
  • You send a pull request at the end of the exam. Any pull requests sent BEFORE the exam is complete will be considered cheating and recieve a 0.

OOP, TDD, and Efficient Code

You must follow object-oriented practices. You will need to demonstrate you understand the prerequesits of this course and how they can apply to test-driven development.

Your code needs to be clean and efficient. No obsure variable names, your objects do one thing and one thing only. Your methods perform only one specific task they describe.

Problem-Solving Skills with an existing codebase

This is code someone else wrote. Demonstrate your flexibility to work with others in contributing to a final project.

Understanding of Datatypes and Control Structures

Demonstrate an understanding of complex datatypes. Arrays, Vectors, Iterators, Enum, and POJO's (plain old java objects). If-Else, Switch, Loops, Recursion, Functions, Methods.

Attention to Detail

Demonstrate the ability to follow directions to an exactness.

Utilization of Resources and Documentation

Demonstrate the ability to utilize resources and documentation effectively.

Grading

Each competency specified above will be worth 10 points, totaling to 50. This will be graded as an assessment

vandise-agile-sp2018-oop's People

Contributors

vandise avatar

Watchers

James Cloos avatar Drewry Pope avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.