Skip to content

Odin Practice Exercises Implementation Status and Wishlist #53

@rmonnet

Description

@rmonnet

This Issue is used to post the list of practice exercises planned for the Odin track with their status. It superceeds issue #26.

If you are interested in working some of the exercises, please do not start working without discussing it on the forum Odin Track topic first so we can avoid duplicate work.

If you have suggestion, need some help, find some problems with the track tooling, please post to the forum Odin Track topic and we will do our best to respond.

IMPORTANT
To keep things moving and keep the reviews and code changes manageable, we will only access one exercise per PR.

Completed

  1. Acronym
  2. All Your Base
  3. Allergies
  4. Anagram
  5. Armstrong Numbers
  6. Atbash Cipher
  7. Bank Account
  8. Binary Search
  9. Binary Search Tree
  10. Bob
  11. Book Store
  12. Bottle Song
  13. Bowling
  14. Change
  15. Circular Buffer
  16. Clock
  17. Collatz Conjecture
  18. Custom Set
  19. Darts
  20. Diamond
  21. Difference of Squares
  22. D&D Character
  23. Dominoes
  24. Eliud’s Eggs
  25. Flatten Array
  26. Food Chain
  27. Forth
  28. Gigasecond
  29. Grade School
  30. Grains
  31. Hamming
  32. Hello World
  33. High Scores
  34. Intergalactic Transmission
  35. ISBN Verifier
  36. Isogram
  37. Knapsack
  38. Leap
  39. Line Up
  40. Linked List
  41. List Ops
  42. Luhn
  43. Matching Brackets
  44. Nucleotide Count
  45. Pangram
  46. Pascal's Triangle
  47. Perfect Numbers
  48. Protein Translation
  49. Proverb
  50. Pythagorean Triplet
  51. Queen Attack
  52. Raindrops
  53. Rational Numbers
  54. Resistor Color
  55. Resistor Color Duo
  56. Reverse String
  57. RNA Transcription
  58. Robot Name
  59. Robot Simulator
  60. Roman Numerals
  61. Series
  62. Sieve
  63. Simple Cipher
  64. Space Age
  65. Sublist
  66. Triangle
  67. Two Bucket
  68. Two Fer
  69. Word Count
  70. Yacht
  71. Zebra Puzzle
  72. Zipper

Claimed

Bonus Exercises: Pick Whichever You Want

  • Affine Cipher: Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East
  • Alphametics: Given an alphametics puzzle, find the correct solution
  • Baffling Birthdays: Estimate the birthday paradox's probabilities
  • Camicia: Simulate the card game and determine whether the match ends or enters an infinite loop
  • Connect: Compute the result for a game of Hex / Polygon
  • Complex Number: Implement complex numbers (not using Odin built-ins)
  • Conway’s Game of Life: Implement Conway's Game of Life
  • Crypto Square: Implement the classic method for composing secret messages called a square code
  • Dot DSL: Write a Domain Specific Language similar to the Graphviz dot language
  • ETL: Change the data format for scoring a game to more easily add other languages.
  • Error Handling: Implement various kinds of error handling and resource management.
  • Flower Field: Mark all the flowers in a garden.
  • Go Counting: Count the scored points on a Go board.
  • Grep: Search a file for lines matching a regular expression pattern. Return the line number and contents of each matching line.
  • Hangman: Implement the logic of the hangman game using functional reactive programming. (May not be suited to Odin)
  • House: Output the nursery rhyme 'This is the House that Jack Built'
  • Killer Sudoku Helper: Write a tool that makes it easier to solve Killer Sudokus
  • Kindergarten Garden: Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Largest Series Product: Given a string of digits, calculate the largest product for a contiguous substring of digits of length n
  • Ledger: Refactor a ledger printer
  • Lens Person: Use lenses to update nested records (specific to languages with immutable data)
  • Markdown: Refactor a Markdown parser
  • Matrix: Given a string representing a matrix of numbers, return the rows and columns of that matrix
  • Meetup: Calculate the date of meetups
  • Nth Prime: Given a number n, determine what the nth prime is (close to the Sieve problem, may not be worth having both)
  • OCR Numbers: Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled
  • Palindrome Products: Detect palindrome products in a given range
  • PaaS I/O: Report network IO statistics
  • Parallel Letter Frequency: Count the frequency of letters in texts using parallel computation (how do we check that the student actually used Odin concurrent features?)
  • Phone Number: Clean up user-entered phone numbers so that they can be sent SMS messages
  • Piecing It Together: Fill in missing jigsaw puzzle details from partial data
  • Pig Latin: Implement a program that translates from English to Pig Latin
  • Poker: Pick the best hand(s) from a list of poker hands
  • POV: Reparent a graph on a selected node
  • Prime Factors: Compute the prime factors of a given natural number
  • Rail Fence Cipher: Implement encoding and decoding for the rail fence cipher
  • React: Implement a basic reactive system
  • Rectangles: Count the rectangles in an ASCII diagram
  • Resistor Color Trio: Convert color codes, as used on resistors, to a human-readable label (we do have Resistor Color and Resistor Color Duo already)
  • REST API: Implement a RESTful API for tracking IOUs
  • Rotational Cipher: Create an implementation of the rotational cipher, also sometimes called the Caesar cipher
  • Run-Length Encoding: Implement run-length encoding and decoding
  • Saddle Points: Detect saddle points in a matrix (an opportunity to use Odin matrix type)
  • Satellite: Rebuild binary trees from pre-order and in-order traversals
  • Say: Given a number from 0 to 999,999,999,999, spell out that number in English
  • Scrabble Score: Given a word, compute the Scrabble score for that word
  • Secret Handshake: Given a decimal number, convert it to the appropriate sequence of events for a secret handshake
  • SGF Parsing: Parsing a Smart Game Format string
  • Simple Linked List: Write a simple linked list implementation that uses Elements and a List
  • Spiral Matrix: Given the size, return a square matrix of numbers in spiral order
  • Split-Second Stopwatch: Keep track of time through a digital stopwatch
  • Square Root: Given a natural radicand, return its square root
  • State of Tic-Tac-Toe: Determine the game state of a match of Tic-Tac-Toe
  • Strain: Implement the keep and discard operation on collections
  • Sum of Multiples: Given a number, find the sum of all the multiples of particular numbers up to but not including that number
  • Swift Scheduling: Convert delivery date descriptions to actual delivery dates
  • Tournament: Tally the results of a small football competition
  • Transpose: Take input text and output it transposed
  • Tree Building: Refactor a tree building algorithm
  • Twelve Days: Output the lyrics to 'The Twelve Days of Christmas'
  • Variable Length Quantity: Implement variable length quantity encoding and decoding
  • Word Search: Create a program to solve a word search puzzle
  • Wordy: Parse and evaluate simple math word problems returning the answer as an integer

Metadata

Metadata

Assignees

No one assigned

    Labels

    x:type/contentWork on content (e.g. exercises, concepts)

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions