May 2021 - The Limitation Game

Created on May 6, 2021

"Alan Turing from The Imitation Game."


Step into the shoes of Alan Turing and use your coding skills to crack an encryption algorithm. The main focus of this challenge is to learn about type classes and type bounds. To facilitate this, you'll be working on the problem of cracking a caesar cipher.

In this challenge you will:

  1. Implement a caesar cipher (encryption and decryption)
  2. Implement an algorithm that can crack a caesar cipher without any human intervention
  3. Learn about how type classes work and explore their use with higher kinded types.

Getting Started

  1. Clone the starter code here. The starter code contains acceptance tests. Get the ChallengeSpec to pass and you are done!
  2. Run the tests to ensure you are set up (using sbt test, for example). All tests will be failing for now.

Note that the starter code contains two main elements: the challenge and the fundamentals. The challenge is the problem described above and the fundamentals are simpler, shorter problems you can solve to brush up on your knowledge prior to completing the full challenge. Feel free to skip the fundamentals if you don't feel like you want/need to do them.

Tip: It may be helpful as you are going through to run only the tests for either the fundamentals or the challenge. For example, if you only want to run the fundamental tests, you can do so with sbt 'testOnly **.FundamentalsSpec'.

To Be Continued

The solutions for this challenge will be posted at the end of the month of May 2021.


April 2021 - Spring Break

By using this site, you agree that you have read and understand its Privacy Policy.