|
|
|
|
|
|
|
|
|
|
|
|
|
Moore's Law describes the relationship between time and the performance of computing (hardware)
technology. More precisely, it states that the number of transistors per unit of
space doubles every 18 months or so. Since production costs remain relatively flat, the cost per unit of
performance of hardware; e.g., $/MHz or $/Mb should follow the same
pattern.
Collect performance and cost data from the last 20 years and
statistically test Moore's law for cost. It is suggested that you sample price
and performance data from PC Magazine
(20 years worth available in the
Valley Library (QA76.8I1015P38 -- pre 1987 issues stored on the
so-called 'compact shelves') and run a regression analysis to
statistically test the
relationship. Be careful not to confuse annual data with monthly data
and do not confuse Moore's Law's exponential trend with a linear trend.
The notes on software development contain
a table comparing US software development groups with Offshore groups
regarding their SW-CMM scores. Just eyeballing the pattern you might
conclude that there is a relationship between where software
engineering groups are located (US vs. Offshore) and how well they score on SW-CMM. Test the pattern for statistical significance using a chi-squared test. Does the test conclusively tell you whether or not US or Offshore groups are better software engineers? Motivate your answer.
Write up your results in a short but nicely word-processed report (hand in hard copy).
We compiled a MySQL database that contains all HTTP web server requests submitted to a web site of K-12 engineering curricula (www.teachengineering.com) for the period April-June, 2005.
MySQL is an industry-strength Open Source database management system that runs as a server application that manages individual databases. Users connect to these databases through a client program that runs on their local machine.
From any machine in the COB computer labs you can establish an SQL connection to your MySQL database using the SQLyog MySQL client software.
Each of you have your own database to interact with. The name of the database consists of the string teweblog followed by an underscore followed by your COB login. For instance, if your COB login is foobar123, your database is teweblog_foobar123.To interact with your database, you must use a special login and password. The login is the same as your COB login; the password consists of that login followed by an underscore followed by the last four digits of your student_id. For instance, if your COB login is foobar123 and the last 4 digits of your student id are 7890, your password would be foobar123_7890.
To start interacting with the database, start the SQLyog application and select the Connect... option on the File menu. Fill out the following fields in the interface:
Once connected, you can type SQL queries in the SQL query window at the top right corner of the interface. All queries typed in the SQL query window must be ended with a semicolon (;). Once you've typed a query, you can right-click it and have it executed.
IMPORTANT NOTE!! Since this exercise requires some rather large transactions on the database (you will remove over 100,000 records), and since this is a learning exercise,it is very likely that at some time or other, you break things. You either delete the wrong things and perhaps even wipe out an entire database table. DON'T PANIC!! If you find yourself in this situation, do the following:
Clean out your database by dropping any table that you have left (use SQL's drop table... command).
Import into the database the file action_table.sql using the Import from SQL Dump... option on the Tools menu. This file contains the SQL to recreate your database as it was at the start of the exercise.
If all of this fails, see your instructor for help.
To see the structure of the table, use the SQL describe command:
describe action;
This exercise consists of a series of SQL operations that you'll have to design and execute to explore and clean up these web server log entries. It gives you the opportunity to learn a few things:
Below you'll find 13 questions and directions to carry out. In the (hard copy) work you hand in, clearly indicate the question, the SQL you used to find its answer and the answer you found.
Please note:
The Questions:
In this case, we want to remove all hits from any of the schools that participated in the development of the system (University of Colorado, Colorado School of Mines, Duke University, Oregon State University, and Worcester Polytechnic Institute). For this exercise you may consider the first two bytes of the IP address (for OSU: 128.193) to be the (unique and only) IP signature of the institutions. To find the first two bytes of the various schools' IPs, issue the following DOS or UNIX/Linux commands:
>ping www.oregonstate.edu
>ping www.colorado.edu
>ping www.mines.edu
>ping www.duke.edu
>ping www.wpi.edu
Eliminate from the action table all requests from the participating schools.
Check that after elimination of these records you have 153147 records left.
Check that you have 121877 records left:
Next, you can query the totals table for those host_ips that contain a hit count of only 1.
Check that the answer = 3018.
First,we have to add a so-called index to the totals table. An index is essentially a sorted reference (like in the back of a textbook) that allows the query solver to quickly search through a table:
SQL: create index totals_idx on totals (host_ip);
Next, we can delete from the action table, all rows for which the host_ip has only one hit in the totals table:
SQL: delete from action where host_ip in (select host_ip from totals where hits = 1);
Check that you have 121877 - 3018 = 118859 records left:
Check that after the removal we have 68201 records left.
Check that you have 64906 hits left.