Web Programming for Non-Programmers

DH 110

Fall 2017

Credits: 4

Requirements Met: SC

Class Meeting Metadata
Meets: MW
R (lab)
2:30 - 3:55pm
8:35 - 10:00am
Classroom: CGL 211 (MW) & CGL 114 (R)
Instructor's Metadata
Instructor: Jason T. Mickel, Ph.D.
E-Mail: mickelj@wlu.edu How to Email a Professor
Phone: (540) 458-8653
Office: Leyburn M33
Office Hours: M 11:15 - 12:15
W & R 1:00 - 2:00
Or by appointment

Project Deliverable #1: Data Dictionary and Questions50 points

Due Friday, September 29 @ 11:55pm


The primary goal of this course is for you to be able to develop your skills as a web programmer in order to display data programmatically via a web site. To accomplish this, you will be completing a project over the course of our 12 weeks together intended to showcase what you have learned. There will be 5 separate deliverables from a proposal to a complete site and presentation.

This assignment is deliverable #1: familiarizing yourself with the data available.

Steps to Complete the Assignment

  1. Familiarize yourself with the Airbnb web site (http://www.airbnb.com) even if you have used it in the past.
    1. Do some sample searches and take note of the data that you're asked for when searching.
    2. View some properties and take note of all of the data that is displayed (hint: there's a LOT of data).
    3. Consider the possible choices for each piece of data and how it is stored (Whole numbers? Decimal numbers? Free text? etc.)
  2. Now review the raw data from Airbnb file that your group has been assigned (available in Sakai → Resources → Project Team Data).
    1. Use Excel (or Google Sheets) to load the file to make it easier to read.
    2. What is each column? Use the title (column header) of each data point and the data that is in it to create a "data dictionary", which is a formalized document that briefly describes what each field represents and what type of data is in it. For example:
      1. The field "neighborhood" contains a unique name for each city's neighborhood and is stored as text.
      2. "price_per_day" contains the average daily price for properties in a neighborhood, and it is stored as a whole number.
      3. Hint: all of the numeric fields are averages except "num_properties".
    3. This process will help you tremendously as you work with the data throughout the term.
    4. The final data dictionary should be either a spreadsheet or a word processing table that contains three columns: Field, Description, and Data Type.
  3. After completing your data dictionary, create a brief Word document that proposes at least five interesting questions that could be answered through the data via a chart or a map. Two should be a map, two should be a chart (bar, line, or pie), and the other can be either a map or a chart.

    The questions should be significantly different from one another (not just minor changes from one to the next)

    1. With all of the data available, what would you or a viewer of your website like to know in the end? What can you do with the data?
    2. In the Word document, write out each question followed by a brief explanation of how it will be address in your web site.
    3. An example question and explanation (you may NOT use this exact question, but you may use a modified version of it):

      Which neighborhoods in Asheville have an average daily price of less than $150?

      This question will be addressed using a map that plots the location of each matching neighborhood When a user clicks on the neighborhood outline, they will see the name of the neighborhood, the average number of people accommodated in its properties, the average nightly price, and the average price per night for each extra person.

What to Submit

  1. Comprehensive data dictionary in Excel or a Word table
  2. Five distinct questions that could be answered through a map or chart and an explanation of how it will be done. This is a Word document.

Grading Specifications

You will be graded on:

  1. Completeness and accuracy of the data dictionary
  2. Quality of the questions and explanations based on whether they are logical, data is available to address them, and a little hint of originality/creativity. 2 map, 2 chart, 1 either/or

The deliverable will begin with a full score of 50 points and deductions will be made according to the amount and severity of errors. All team members will receive the same score.