Package becker.xtras.nameSurfer

NameSurfer graphs names and their popularity over time as gathered from United States Social Security Administration data.

See:
          Description

Interface Summary
INameInfo Objects implementing INameInfo record information about a name and the popularity of that name over time.
INameList Objects implementing INameList are used to collect names with popularity rankings to be graphed in the NameSurfer application.
INameSurferModel  
 

Class Summary
SampleNameInfo Information about the popularity of one name.
SampleNameList A list of names and their rankings.
SampleNameSurferModel The model for the nameSurfer program specifies which names to graph.
SampleNameSurferView A view that accepts a name from the user and graphs the popularity ranking for that name across time.
 

Package becker.xtras.nameSurfer Description

NameSurfer graphs names and their popularity over time as gathered from United States Social Security Administration data. It is inspired by a program of the same name presented by Nick Parlante in the Nifty Assignments Panel at SIGCSE 2005.

The running program looks like this:

Running the Program

Students will typically write a main method such as the following

import becker.xtras.nameSurfer.*;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class NameSurfer extends Object
{
   public static void main(String[] args)
   {  INameList data = new SampleNameList("names-data.txt");
      INameSurferModel model = new SampleNameSurferModel(data);
      JPanel view = new SampleNameSurferView(model);
      
      // display the view in a frame
      JFrame f = new JFrame("NameSurfer");
      f.setSize(600, 500);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setContentPane(view);
      f.setVisible(true);
   }  
}

where NameList and NameSurferModel can be either student-written classes implementing the INameList and INameSurferModel interfaces or classes from the nameSurfer package. NameSurferView may be either student-written or from the nameSurfer package. It should extend JPanel and implement IView.

The data file is available for download here.