During the period 1970 to 1973, I was on active duty, assigned to Coast Guard headquarters in Washington, DC. I had already decided to leave the service. With veteran benefits available, I decided to go to graduate school to obtain my Masters Degree in Mechanical Engineering, specializing in Transportation Engineering. The field was new. Few understood what a Transportation Engineer would do. But it was challenging. My mentor suggested certain statistical analysis courses as well as some practical work.

One of the things about statistics is the need to perform computations, a large number of time-consuming and complex computations. I was able to use an IBM 1130 at Coast Guard Headquarters to compute guideway functions but a large amount of time was spent in the graduate computer laboratory at George Washington University. The graduate computer center was shared by graduate students and faculty. There was a remote job entry station in the lab along with card punches, sorters, and printers. Usually, I worked at the lab at night.

Over time, I became known as an expert in FORTRAN programming. Other graduate students and professors (and sometimes undergraduate students) would ask me for technical advice. In most cases, I was delighted to supply them with sufficient information for them to solve their problems.

One day, a non-resident professor, teaching at the Tidewater extension, came to me. His problem was that he was obtaining a constant value from the FORTRAN RAND function. He was using the code

v = RAND ( x )

where v and x had been declared as REAL and x had been assigned an initial value. Unfortunately, this reference to the RAND function would return the same value repeatedly, the constant value that the professor had observed. I told him that his code was missing a statement immediately following the function reference, and that the fragment should read

v = RAND ( x )
x = v

The professor's response was unexpected. He suggested that I was ill-advised. I just shrugged off his reaction.

Two weeks later, the professor apologized. At wit's end, he tried my advice and his program produced results. He asked me what I was planning to do when I finished graduate studies and I told him I had not decided. He asked if I would be interested in a job with the Norfolk, VA Police Department (NPD). Apparently, the NPD had just received a grant from the Law Enforcement Assistance Administration (LEAA), then a federal agency within the U.S. Department of Justice. LEAA required, as a condition of funding, that a crime analyst be employed who, although paid by the NPD, would make monthly reports to the LEAA. I accepted the position, unknowing that I was about to be introduced to two of the more confrontational and blustering people of my acquaintance.

In order to perform the analysis, required by LEAA, I needed access to the City of Norfolk Data Processing (DP) Center. The DP Manager required that all programs be written in Assembly Language and so all city code was written in Assembly. I told him that I programmed in FORTRAN and COBOL. With pressure from the Chief of Police, he reluctantly gave me access. But I was not allowed to store my programs on disk. I had to use punched cards. Also, all of the data (four years of monthly crime statistics) was to remain on magnetic tape. The magnetic tape data was not blocked. So each time a crime report record was read, the tape needed to be repositioned by the hardware before the next crime report record could be read. This repositioning required time, enough to make a simple report take four hours to produce. As a result, the operators and I became friends.

Single Tape Drive Read

versus

Single Tape Drive Read

Thinking about the tape read problem (four tapes were mounted), I realized that I could read the tapes in order. This would allow the first tape read to be repositioned as the other three tapes were read. The speed-up was extraordinary – time to run was reduced to fifteen minutes. Things went well. The reports were produced. Until, one evening, a drunken DP Manager stumbled into the computer room. He stood there swaying, watching the tape drives move almost without stop. Believing that the tape drives were out of control, he ran over to the control panel and hit the "big red button," causing the computer to shut down. He was very lucky. There was no real damage to the system. I never told anyone about this very stupid man. But he did learn some new words from an ex-Lieutenant Commander in the Coast Guard (I think they are called "salty"). He never interfered with me again.

The program upon which I was reporting was called High Intensity Target (HIT). HIT was to place extra officers on patrol in a designated area. It was headed up by a Police Lieutenant who did not like the fact that an independent source was reporting to the LEAA. I think the first fall out that I had with him was when I reported that the HIT area was improperly positioned. The City of Norfolk was divided into Planning Districts. A police crime report contained the planning district in which the reported crime occurred. Unfortunately, when applying for the LEAA grant, the data for "Calls for Service" was used rather than the data for arrests. Calls for service are not generated in poor, crime-ridden planning districts; they are generated in wealthier planning districts by people who expect service from the police department. In crime-ridden planning districts, residents are more apt to avoid interaction with the police. So the study area was positioned in six wealthier planning districts rather than in the six crime-ridden planning districts.

The Lieutenant was not happy. One Friday, with most of the HIT officers present, he began a rant against statistical analysis. Finally, he stated "You cannot forecast crime!" So with the gauntlet thrown down, I took up the challenge.

The bet was simple; I would predict crime throughout the City of Norfolk for that weekend. For each city block I was right, the Lieutenant would pay me a dollar (there were more than 1500 city blocks); for each city block I was wrong, I would pay the Lieutenant a dollar. We shook hands on the bet. I then predicted that there would be no crime in the City of Norfolk that weekend. I'm sure that the Lieutenant went home thinking that he has just won a lot of money.

On Monday, I obtained the report that enumerated the crimes that occurred in the City of Norfolk over the weekend. As I recall there were fewer than 100 crimes and they were concentrated in the six crime-ridden planning districts, about 30 city blocks. So I owed the Lieutenant $30 and he owed me $1470. The HIT officers were having a grand time at the expense of the Lieutenant. Although I did not need to do so, I quieted the group and explained some statistics to them. I suggested that the material was not known to the Lieutenant and so I forgave the debt. From that day forward, the Lieutenant and I had somewhat better relations.

Two lessons for programmers here:

Have friends in high places
Know your problem area