Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save VeeAndrade/3a0b7fb9dd6479a14d165638f54d829e to your computer and use it in GitHub Desktop.

Select an option

Save VeeAndrade/3a0b7fb9dd6479a14d165638f54d829e to your computer and use it in GitHub Desktop.
Mod 0 Session 2 Practice Tasks

Session 2 Practice Tasks

The assignments listed here should take you approximately 2 hours.

To start this assignment, click the button in the upper right-hand corner that says Fork. This is now your copy of the document. Click the Edit button when you're ready to start adding your answers. To save your work, click the green button in the bottom right-hand corner. You can always come back and re-edit your gist.

1. Documentation and Googling (60 min)

Documentation of a langauge, framework, or tool is the information that describes its functionality. For this part of the practice tasks, you're going to practice digging into documentation and other reference material.

NOTE: The linked documentation for each question below is a good starting place, but you should also be practicing your Googling skills and sifting through the results to find relevant and helpful sites.

  • In your own words, what does the Ruby array drop method do? As you're explaining, be sure to provide an example. Your answer: The Ruby array drop drops the amount of numbers from the array according to the number that was placed in (n). Ex( a = [1, 2, 3, 4, 5] a.drop(2) would leave me with an array containing a = [3, 4, 5])

  • What did you Google to help you with this task, and how did you pick your results? Googled: drop method ruby. I picked my result based on similar information provided by the link above. Repition must mean others are doing that way as well.

  • In your own words, what does the Ruby string split method do? As you're explaining, be sure to provide an example. Your answer: A string method that splits according to the arguement and returns an array.

  • What did you Google to help you with this task, and how did you pick your results? Googled: split method ruby. I went off of the examples that were easiest to interpret.

  • In your own words, what does the JavaScript array slice method do? As you're explaining, be sure to provide an example. Your answer: A slice returns a selected elements in an array using the 'begin' and 'end' arguement without including the 'end.'

  • What did you Google to help you with this task, and how did you pick your results? Googled: slice javascript. Again, went off examples that were easy to understand and tried explaining it aloud.

2. Data Types (15 min)

Imagine that you're taking your favorite board game and turning it into a computer-based game.

  • Name of board game: Catan

  • Use the space below to categorize game data into each of the following data types. You should have a minimum of two pieces of data for each category.

  1. String data: Title, cards, rules
  2. Integer and/or float data: land worth, dice
  3. Boolean data: is this land taken? building requirements
  4. Array data: building requirements, colors available
  5. Hash or Object data: board object, card data as hash, card object, player object

3. Iteration (30 min)

  • Create a list below of three real-life situations where iteration is used. For each situation, explain why it would be an example of iteration.

  • Following a recipe, prepare ingredient, place ingredient, repeat.

  • Board game, player plays turn, repeat.

  • Setting up a table, find seat, place plate, place silverware, repeat.

  • Create a list below of three programming situations where iteration would be used. For each situation, explain why it would be an example of iteration.

  • Projects, gain instructions, preform designated tasks, complete and turn in, repeat with next project.

  • Formatting names, finding name, capatalize first name, lower case the rest, repeat with next name.

  • calculating birthyear, get age, subtract age from current year, get birthyear, repeat.

4. Identifying Mistakes (15 min)

The following code examples each contain a mistake. Describe the problem for each.

Original Mistakes Problem
students.each do |student|
  puts "Welcome, #{student}"
end
students.each do |student|
  puts "Welcome, #(student)"
end
The problem is that there are parenthesis around the word 'student' instead of the curly brace.
.main-content {
  font-size: 12px;
  border: 3px solid black;
  font-family: sans-serif;
}
.main-content {
  font-size: 12px;
  border: 3px solid black;
  font-family: sans serif;
}
The problem is that 'sans serif' has no dash between it to link the word together.
log(2, (1022 * ((score - min(score) over ()) / ((max(score) over ()) - (min(score) over ()))) + 2)::numeric) log(2, (1022 * ((score - min(score) over ()) / ((min(score) over ()) - (min(score) over ()))) + 2)::numeric) The problem is that the second 'min' should be 'max' to do the proper calculation.
arr.product(arr).reject { |a,b| a == b }.any? { |a,b| a + b == n } arr.product(arr).reject { |a,b| b == b }.any? { |a,b| a + b == n } The problem is that it should be 'a == b' instead of 'b == b'.
class Cat
  attr_reader :color, :name
  def initialize(data)
    @name = data[:name]
    @color = data[:color]
  end
end
class Cat
  attr_reader :color, :name
  def intialize(data)
    @name = data[:name]
    @color = data[:color]
  end
end
The problem is that the spelling of the word'initialize' is incorrect in the second part.

5. Modify your Bash Profile (10 min)

  • Watch this video and follow each step to modify your own bash profile. As mentioned in the video, you will need this snippet below:
# get current branch in git repo
function parse_git_branch() {
  BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
  if [ ! "${BRANCH}" == "" ]
  then
    STAT=`parse_git_dirty`
    echo "[${BRANCH}${STAT}]"
  else
    echo ""
  fi
}

# get current status of git repo
function parse_git_dirty {
  status=`git status 2>&1 | tee`
  dirty=`echo -n "${status}" 2> /dev/null | grep "modified:" &> /dev/null; echo "$?"`
  untracked=`echo -n "${status}" 2> /dev/null | grep "Untracked files" &> /dev/null; echo "$?"`
  ahead=`echo -n "${status}" 2> /dev/null | grep "Your branch is ahead of" &> /dev/null; echo "$?"`
  newfile=`echo -n "${status}" 2> /dev/null | grep "new file:" &> /dev/null; echo "$?"`
  renamed=`echo -n "${status}" 2> /dev/null | grep "renamed:" &> /dev/null; echo "$?"`
  deleted=`echo -n "${status}" 2> /dev/null | grep "deleted:" &> /dev/null; echo "$?"`
  bits=''
  if [ "${renamed}" == "0" ]; then
    bits=">${bits}"
  fi
  if [ "${ahead}" == "0" ]; then
    bits="*${bits}"
  fi
  if [ "${newfile}" == "0" ]; then
    bits="+${bits}"
  fi
  if [ "${untracked}" == "0" ]; then
    bits="?${bits}"
  fi
  if [ "${deleted}" == "0" ]; then
    bits="x${bits}"
  fi
  if [ "${dirty}" == "0" ]; then
    bits="!${bits}"
  fi
  if [ ! "${bits}" == "" ]; then
    echo " ${bits}"
  else
    echo ""
  fi
}

export PS1="\u\w\`parse_git_branch\`$ "

5. Questions/Comments/Confusions

If you have any questions, comments, or confusions from the any of the readings that you would an instructor to address, list them below:

@damwhit
Copy link

damwhit commented Jul 24, 2019

@VeeAndrade, overall good work on this. For the data types section, I'd love to see some examples of the data type values. Also, for the iteration section, make sure to start with collection, and perform an operation for each item in the collection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment