Quiz 08: Policies and Information

Location, Date, and Time

Conflicts: There will be no conflict quiz as students are able to choose the time and date of their quiz.

Quiz Content

All quizzes are cumulative. Previous material can reappear on a later quiz.

13.1: Web APIs

HTTP(S) Requests:

  • How is an HTTP request formed?
  • What is a URI?
  • How is a URI different from a URL?
  • Why is it preferred to dynamically download files vs. manually downloading them?

Web + APIs:

  • Why should you use a Web API over scraping content from a website?
  • How are Web APIs similar to functions?
  • What is an endpoint?
  • Why is a web URI broken down into two different components?

REST:

  • What are the different components of HTTP requests and responses?
  • How are HTTP verbs used to access and retrieve data in a Data API?
  • Which component should always be checked prior to looking at the data?
  • Why do we need to encode special symbols inside a URL?

JSON:

  • What is JSON?
  • Why is JSON used with web APIs?
  • What R data structure most closely matches to JSON’s format?

13.2: Regular Expressions

Provided with: String Manipulation Cheatsheet

Background:

  • What are regular expressions?
  • Why are regular expressions useful?

Using Regex:

  • Literals and Meta Characters
    • What is the difference between a literal character and a meta character?
    • How can meta characters be used inside patterns like a traditional literal?
  • Character Classes
    • How many symbols does a character class detect by default? Why is this the case?
    • Explain the regex pattern: [^n]
    • Are the following two regexes equivalent: [:alpha:] vs. [[:alpha:]]?
    • Compare and contrast the str_*() and str_*_all() functions in stringr?
  • Quantifers:
    • What are the primarily differences between ?, *, and +?
    • How could we obtain exactly p pattern matches simultaneously?
    • When might we not want to use greedy regex?
    • Should regex be used to work on all structures of data?
  • Groups and Backreferences:
    • How do groups relate to backreferences?
    • Why are backreferences useful for extracting and replacing values?
  • Anchors
    • What are the two meanings of ^ as it relates to being at the start of the string vs. inside the character class?

14.1: Web Scraping

HTML:

  • What is HTML?
  • What kind of structure of data does HTML have?
  • What are the different parts of an HTML element?
  • Why might we want to understand how HTML works to extract information?

Scraping Information:

  • What are the steps to extract data from a Web Page?
  • How does html_node() differ from html_nodes()?
  • Why do we sometimes want the attribute information of an HTML element and not the content?
  • How is SelectorGadget used to extract information from a web page?
  • What are selectors?
  • How do selectors relate to HTML?
  • What happens if we pick an element that is not a table and then try to use html_table()?

Advanced Scraping:

  • How can we generate a selector?
  • Why is JavaScript problematic?

14.2: Breaking Functions

Ubiquitousness of Functions:

  • Why are functions considered to be the lingua franca of programming languages?
  • How does John Chambers’ explanation of R address functions?

Asserting Input:

  • What kind of assertions exist?
  • Why are assertions useful for handling problematic user input?
  • When shouldn’t you use an assertion?
  • How does STDOUT differ from STDERR?

Debugging Errors:

  • What are the different types of errors?
  • What the different modes of debugging available?
  • How does each debug mode differ?
  • How does variable scope work in terms of R functions?

Materials Needed

  • Preferably, a rested mind and non-broken hands that can type.

Policies

  • All answers must be reasonably simplified.
  • Decimals answers must contain two significant digits.
  • Grading will be done as follows:
    • A correct answer will receive all points.
    • An incorrect answer will receive proportionally appropriate partial credit.

If you have a technical issue while answering questions or need assistance with opening or starting the quiz, please alert the proctor.

Do not leave the CBTF without filing an issue with the proctor if something goes wrong.

DRES

Have a testing accommodation? Please see how the CBTF handles Letters of Accommodation.

The short version: Please bring a copy of the Letter of Accommodation to the CBTF Proctors prior to the test taking place.

Academic Integrity

In short, don’t cheat. Keep your eyes on your own quiz. Do not discuss the quiz with your friends after you have taken it. Any violation will be punished as harshly as possible.

Advice for Studying

The best way to study for a STAT 385 quiz is by writing and reading code. Try to take an idea in STAT 385 and apply it to your own work.

With this being said, there are three other resources that may assist your studies:

  • Topic Outline (Above)
  • Lecture Code
  • Homework

Again, the best way to study is to do programming in some fashion. Whether that be writing code or explaining how code works to someone else.

Consider using resources such as:

  1. RStudio Cloud Primers for interactive practice.
  2. Exercise problems listed in a given section of the readings.

Do not spend time memorizing lecture slides. You will not see any verbatim questions.

Do not try pulling an all-nighter. You can schedule your quiz anytime between a time window. To program efficiently, you need sleep despite the quote:

“Programmers are an organism that turns caffeine into code.”

Frequently Asked Questions

What kind of question types are on the quiz?

There are generally four types of problems:

  • True / False
  • Multiple Selection (e.g. select ALL correct answers from a list)
  • Fill in the blank
  • Writing Code

How many problems are on the quiz?

Only one question with 15012391 subquestions. In all seriousness, do not fixate on a number. There will be a reasonable amount of questions for the time period.

How long will it take to do the quiz?

Depending on your background, the quiz may take:

  • Prior R in-depth experience: 25 minutes
  • Some R experience: 35 minutes
  • No R experience: 50 minutes

Avoid fixating on time. Life will come and go more quickly than you realize. Focus more on the content.

When will the quiz be returned?

As all problems are automatically graded, we should be able to post the quiz results after the examination window closes.

Will the quiz be curved?

No.

We got our grades back, now will the quiz be curved?

No. Curving is only done sparingly at the end of the semester. Individual assignments are not modified.