# Project: Building Blocks | The Odin Project

Curriculum

Chat

|

Sign

Ruby Programming PROJECT: BUILDING BLOCKS

Introduction By now you should feel pretty good working with strings, arrays and hashes. We’ll do a couple of classic “intro to programming” problems here to help solidify your knowledge and get warmed up to working on small projects. You’ll need to rely on some of your basic knowledge of conditionals and flow control from the prep work but you shouldn’t need to do anything you haven’t seen before. You can do these in IRB or create a separate script file to run from the command line if you know how to do that (we’ll cover it in the next few sections). Note: If you want to actually write and run your own Ruby code, you can either use IRB from the command line (type irb after the prompt), or run it from a script file using \$ ruby ./your_file_name_in_the_current_directory.rb , or use the online editor

at repl.it.

Project 1: Caesar Cipher From Wikipedia: In cryptography, a Caesar cipher, also known as Caesar’s cipher, the shift cipher, Caesar’s code or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. For example, with a left shift of 3, D would be replaced by A, E would become B, and so on. The method is named after Julius Caesar, who used it in his private correspondence.

There’s a brief video about it from Harvard’s CS50 class.

Assignment Implement a caesar cipher that takes in a string and the shift factor and then outputs the modified string:

> caesar_cipher("What a string!", 5) => "Bmfy f xywnsl!"

Quick Tips: You will need to remember how to convert a string into a number. Don’t forget to wrap from z to a . Don’t forget to keep the same case.

Project 2: Stock Picker Implement a method #stock_picker that takes in an array of stock prices, one for each hypothetical day. It should return a pair of days representing the best day to buy and the best day to sell. Days start at 0.

> stock_picker([17,3,6,9,15,8,6,1,10]) => [1,4] # for a profit of \$15 - \$3 == \$12

Quick Tips: You need to buy before you can sell Pay attention to edge cases like when the lowest day is the last day or the highest day is the first day.

Project 3: Substrings Implement a method #substrings that takes a word as the first argument and then an array of valid substrings (your dictionary) as the second argument. It should return a hash listing each substring (case insensitive) that was found in the original string and how many times it was found.

> dictionary = ["below","down","go","going","horn","how","howdy","it","i","low","own","part","partner","sit"] => ["below","down","go","going","horn","how","howdy","it","i","low","own","part","partner","sit"] > substrings("below", dictionary) => { "below" => 1, "low" => 1 }

Next, make sure your method can handle multiple words:

> substrings("Howdy partner, sit down! How's it going?", dictionary) => { "down" => 1, "how" => 2, "howdy" => 1,"go" => 1, "going" => 1, "it" => 2, "i" => 3, "own" => 1,"part" => 1,"partner

Quick Tips: Recall how to turn strings into arrays and arrays into strings.

Ruby Programming PROJECT: BUILDING BLOCKS View Course

Next Lesson

Got questions? Chat with our friendly Odin community in our Gitter chatrooms!

Open Gitter

Are you interested in accelerating your web development learning experience?

Thinkful

5-6 months

Get started

Job Guarantee

1-on-1 Mentorship

## Project: Building Blocks | The Odin Project

Curriculum Chat About FAQ | Sign Ruby Programming PROJECT: BUILDING BLOCKS Introduction By now you should feel pretty good working with strin...

#### Recommend Documents

Building Science - The NEED Project
are an influential factor in how energy is consumed, but the building design and components can .... fiberglass, or foam

Building Blocks Competition
Riley Falconer. 19. PHS. 38.4. 384. 14. Jose Zarate, Daniel Ruiz, Simon Barrera. 3 ... Azucena Izquierdo, Charlie Hernan

Building Blocks VFIS - VFIS.com
Apr 9, 1996 - Guidelines on writing newspaper articles profiling volunteers . ..... We can call these statementsââst

Project Showcase - The Building - Bentley Systems
Bentley's software for building teams empowers users at all phases of the project â from conceptual design and constru

fiberglass building insulation - Pharos Project
D. Requests for substitutions will be considered in accordance with provisions of Section ... Rigid board type applied t

Project Engineer | Building Utilities | DAVRON
Minimum 1 year of experience with commercial real estate or property condition assessments; Experience in construction m

Building Blocks of Geometry
L E S S O N. 1.1. Building Blocks of Geometry. Three building blocks of geometry are points, lines, and planes. A p

Customer Driven Project Management Building Quality Into Project
Into Project Processes PDF. Supplier Selection ... 12 Implement Or Upgrade SAP = Process Implement/ Upgrade SAP Onboard

Atoms: The Building Blocks of Matter
Sep 29, 2016 - Section Quiz: The Atom: From Philosophical. Idea to Scientific Theory. In the space provided, write the l

Web Resources: Multimedia Building Blocks
In that case, you may want to look at the following âWeb Typography Tutorialâ: http://hotwired.lycos.com/webmonkey/d