Is a dictionary basically just a hash table?
Also bonus: In the Ruby code \"Hash.new {0}\" what is the \"{0}\" at the end for?
In Ruby a Hash is a key, value store
h = Hash.new
h['one'] = 1
h['one'] #=> 1
h['two'] #=> nil
the {0} is a block that will be evaluated if you where to call a Key that did not exist, it's like a default value.
h = Hash.new {0}
h['one'] #=> 0
h = Hash.new {|hash,key| "#{key} has Nothing"}
h['one'] #=> "one has Nothing"