Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save eoneill23/a851e660952b25f16daed548f97de038 to your computer and use it in GitHub Desktop.
Save eoneill23/a851e660952b25f16daed548f97de038 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 (75 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 method is used to remove a specified number of items from an array and returns everything to the array other than the first n elements from the drop.

For example, if I have the following array for colors = ["desk","tree","purple","green"], using colors.drop(2) would remove desk and tree from the array and return purple and green.

  • What did you Google to help you with this task, and how did you pick your results? I Googled a number of things, but what got me the most helpful results was "Ruby Array Drop Method." I picked my results based on publish date, reliability of the source (i.e. StackOverflow), etc.

  • In your own words, what does the Ruby array push method do? As you're explaining, be sure to provide an example. Your answer: Essentially, the Ruby array push method allows an item to be added to the end of an array. For example, if I wanted to add a color to my array, I could write colors.push("Yellow") to add it to the end of my array.

  • What did you Google to help you with this task, and how did you pick your results? Like the first question, I searched "Ruby push method" and selected sources based on publish date and quality of the source.

  • In your own words, what does the Ruby string split method do? As you're explaining, be sure to provide an example. Your answer: The Ruby string split method cuts a string into pieces in a pre-determined method. For example, "desk tree purple green".split becomes ["desk","tree","purple","green"]

  • What did you Google to help you with this task, and how did you pick your results? I Googled "Ruby string split method" and filtered results based on the publish date as well as the reliability of the source, ending up with a stackoverflow result.

  • In your own words, what does the JavaScript array slice method do? As you're explaining, be sure to provide an example. Your answer: The JavaScript array slice method allows you to create a new array from an existing array without altering the original array. For example, ["desk","tree","purple","green"].slice(2) would return ["purple", "green"]

  • What did you Google to help you with this task, and how did you pick your results? I googled "Javascript array slice method" and searched through a few different results before settling on a result from javascripttutorial.net, which was published recently and had good information.

  • In your own words, what does the JavaScript object values method do? As you're explaining, be sure to provide an example. Your answer: The JavaScript object values method creates an array based on the object's values. For example, var colors = {0: "desk", 1: "tree" 2: "purple" 3: "green"}; console.log(Object.values(colors));//["desk","tree","purple","green"]

  • What did you Google to help you with this task, and how did you pick your results? Much like the other questions, I googled JavaScript object values method and filtered my results based on the publish date and the source, and wound up on the developer.mozilla.org page on object.values().

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: Monopoly

  • 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: Names of players, names of game pieces, names of properties
  2. Integer and/or float data: Money possessed by each player, money in the bank, dice numbers
  3. Boolean data: Player x's turn? Go to jail? Pass go? Collect $200?
  4. Array data: Order of turns, properties owned, number of each type of bill left in the bank
  5. Hash or Object data: {"property name": property value} {"hotel": property value x2}

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.

  • Choosing a pair of shoes to wear for the day. Choose the pair of shoes from the options, wear them, and then return them to your closet at the end of the day.

  • Performing chores around the house. Choose from the list of chores, complete them, and then return them until the next time they need to be completed.

  • Choosing a movie to watch. Select from the available titles, watch it, then return it.

  • 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.

  • Paying employees. ["Mark", "Rachel", "Steve"] $10 for the x number of hours they worked.

  • Calculating the total cost of a shopping cart online shopping. Add the cost of each item in the cart and then return them.

  • Sending an automated thank you email. Pull the recipient's email address, name, and the pre-drafted text to populate the email and then send.

4. 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:

  1. All of these terms and concepts are brand new to me, so I am glad that I am gaining exposure to them now. I have some previous limited experience with HTML and CSS, but none with JavaScript, so it will take time and effort to become more comfortable with it.
@katiescruggs
Copy link

Nice work, @eoneill23! You're right that it will take time and effort to become comfortable with these concepts, but it is good that you are getting exposed to them in Mod 0. It will help you so much in Mod 1 to have heard these terms before!

Nice examples of iteration!

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