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. Bob
  10. Book Store
  11. Bottle Song
  12. Bowling
  13. Change
  14. Circular Buffer
  15. Clock
  16. Collatz Conjecture
  17. Custom Set
  18. Darts
  19. Diamond
  20. Difference of Squares
  21. D&D Character
  22. Dominoes
  23. Eliud’s Eggs
  24. Flatten Array
  25. Food Chain
  26. Forth
  27. Gigasecond
  28. Grade School
  29. Grains
  30. Hamming
  31. Hello World
  32. High Scores
  33. ISBN Verifier
  34. Isogram
  35. Knapsack
  36. Leap
  37. Linked List
  38. List Ops
  39. Matching Brackets
  40. Nucleotide Count
  41. Pangram
  42. Pascal's Triangle
  43. Perfect Numbers
  44. Protein Translation
  45. Proverb
  46. Pythagorean Triplet
  47. Queen Attack
  48. Raindrops
  49. Rational Numbers
  50. Resistor Color
  51. Resistor Color Duo
  52. Reverse String
  53. RNA Transcription
  54. Robot Name
  55. Robot Simulator
  56. Roman Numerals
  57. Series
  58. Sieve
  59. Simple Cipher
  60. Space Age
  61. Triangle
  62. Two Bucket
  63. Two Fer
  64. Word Count
  65. Yacht
  66. Zebra Puzzle

Claimed

  • None at this time.

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
  • Binary Search Tree: Insert and search for numbers in a binary tree
  • 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'
  • Intergalactic Transmission: Add parity bits to a message for transmission
  • 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)
  • Line Up: Help lining up customers at Yaʻqūb's Deli
  • Luhn: Given a number determine whether or not it is valid per the Luhn formula (used to validate credit card numbers)
  • 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
  • Relative Distance: Given a family tree, calculate the degree of separation
  • 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
  • Sublist: Write a function to determine if a list is a sublist of another list
  • 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
  • Zipper: Creating a zipper for a binary tree

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