Web Programming for Non-Programmers

DCI 110

Winter 2019

Credits: 4

Requirements Met: SC, DCI Minor Core Elective

GitHub Site: https://github.com/dci110w19

Class Meeting Metadata
Meets: M
W (lab)
2:45 - 4:15pm
3:15 - 4:45pm
2:45 - 4:15pm
Classroom: CGL 212
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:00 - 12:00
T 11:00 - 12:00
W 1:00 - 2:00
Or by appointment

Project Deliverable #1: Data Dictionary and Questions50 points

Due Friday, January 26 @ 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 (look for your group's repository called "project-CITYNAME" at https://github.com/dci110w19). Open the file called CITYNAME.csv.
    1. 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".
    2. This process will help you tremendously as you work with the data throughout the term.
    3. 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 addresses the following:

    In a brief paragraph, describe the perspective your group is taking. Are you a tourist board from your city? Are you a group of Airbnb hosts? Are you a pro-Airbnb group hoping show the benefits the service brings? Are you an anti-Airbnb group trying to demonstrate how it changes the community? Any other approach?

    Once you have established your perspective, propose at least five interesting questions that could be answered through the data via a chart or a map. Two should be answered through a map, two should be answered through a chart (bar, line, or pie), and the fifth can be answered through either a map or a chart. Because of how the data is aggregated, questions MUST be based on neighborhoods within your city (not on individual properties).

    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 addressed 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. A brief paragraph describing the perspective your group is taking
  3. Five distinct questions that could be answered through a map or chart and an explanation of how it will be done.

Grading Specifications

You will be graded on:

  1. Completeness and accuracy of the data dictionary
  2. Clearly communicating a perspective that informs the types of questions you'll investigate
  3. 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.