Tuesday, January 8, 2013, would have been George Forsythe's 96th birthday. He passed away in 1972 at the age of 55. A pioneer in the establishment of computer science as an intellectual discipline, he was my Ph.D. thesis advisor, colleague, and friend.
George Elmer Forsythe was born in State College, Pennsylvania, in 1917 and moved to Ann Arbor, Michigan, when he was a small boy. He went to Swarthmore as an undergraduate, where he majored in mathematics, and then to Brown for a Ph.D., also in mathematics, which he received in 1941.
Forsythe served in the Air Force in World War II. Working there as a mathematician and meteorologist, he developed some of the first methods of numerical weather prediction. He is the coauthor of an early textbook on numerical meteorology.
After the war, the National Bureau of Standards, with funding from the Office of Naval Research, sponsored the development of two electronic computers. The one on the west coast, at UCLA, was known as the SWAC, for Standards Western Automatic Computer.
The INA, the Institute for Numerical Analysis, was established at UCLA in 1947 to support the SWAC. Forsythe was one of its principal members.
Our photo, taken at UCLA sometime in the early 1950s, shows Forsythe in the center. Olga Taussky-Todd is the only woman in the photo and her husband, John Todd, is in the back row peering out between George and Olga.
The other institute members in the front row are Mark Kac, who would later ask if one could hear the shape of a drum; J. Barkley Rosser, who created the amazing rosser test matrix in MATLAB; Wolfgang Wasow, who would later coauthor a seminal book with Forsythe about the numerical solution of PDEs; and Magnes Hestenes, coinventor of the conjugate gradient method.
The INA was dissolved in 1953 as collateral damage from political scandals at the Bureau of Standards involving McCarthyism and congressional hearings about battery additives. The Todds moved a few miles across Los Angeles to Pasadena and Caltech and Forsythe moved a few hundred miles north to Palo Alto and Stanford.
I enrolled in Caltech in 1957 and a couple of years later was taking courses from John Todd. He introduced me to matrices, numerical analysis and computing and set me in the direction that brought me to where I am today. Olga would occasionally guest lecture in John's classes on her specialty, matrix theory.
One quarter in my junior year I got a B- in advanced calculus and an A+ in numerical analysis. I never looked back. When it was time to go to grad course, Todd recommended Stanford and his friend George Forsythe. I didn't apply anywhere else.
In 1961 Forsythe was a math professor at Stanford. Computing was just a master's degree specialization within the math department. I am not sure if it was even yet called "Computer Science". But Forsythe and others could see the need for a full fledged academic program, department, and discipline. They wanted to see Stanford appoint faculty and offer courses in new fields such as artificial intelligence and programming languages that certainly were not research mathematics.
So in January, 1965, the Stanford Computer Science Department was born. Forsythe was its founding department chairman and remained head until his death seven years later.
Today Stanford Computer Science is famous as the incubator for Google, Yahoo, and many other not-so-famous Silicon Valley commercial successes. But at their 50th anniversary celebration Stanford's president John Hennessy, himself a CS professor, reminded his audience that the department also deserves to be known for its some of its world renowned academics who did not start companies, including John McCarthy and Donald Knuth. These professors were recruited by George Forsythe.
Forsythe not only started Computer Science at Stanford, he was one of its advocates as an academic and intellectual discipline nationally and internationally. He served as president of the ACM early in its history. He was an editor of several journals. He was asked to advise other universities. He wrote influential articles and letters.
Shortly after Forsythe's death, Donald Knuth wrote, "It is generally agreed that he [Forsythe], more than any other man, is responsible for the rapid development of computer science in the world's colleges and universities."
load gatlin image(X) colormap(map) axis image axis off
This photo is one of the very first images distributed with MATLAB. The photo, taken in 1964, shows the organizing committee of the Gatlinburg conferences on numerical algebra. All of these men were to have some influence on the development of MATLAB. From left to right are:
- James Wilkinson, matrix computation
- Wallace Givens, plane rotations
- George Forsythe
- Alston Householder, elementary reflections
- Peter Henrici, complex algorithms
- F. L. Bauer, Algol 60
Householder was head of computing at Oak Ridge National Lab and a professor at the University of Tennessee in Knoxville. He organized the first two conferences on numerical algebra in the early 1960s. The meetings were held in Gatlinburg, Tennessee, which was then a lovely, small resort town in the Smoky Mountains.
These were intensive, week-long, research workshops with attendance by invitation only from this committee. When it came to organizing the third Gatlinburg conference in 1964, Forsythe wanted to invite one of his graduate students -- me. But the other committee members objected, students had not been invited to the previous meetings. I understand that Forsythe said if Moler could not come, neither would he. So I was invited. I was the only student there, among 40 or 50 of the most important people in my field. It was one of the most significant events of my professional career. And I was only 25 years old.
An Oak Ridge photographer took 8-by-10 black-and-white glossy photos. I kept the one of the organizing committee. Twenty-five years later we scanned it in to become a MATLAB, and Internet, classic.
After Householder retired, the committee evolved, and the locations changed. The meetings are now called the Householder Conferences and are held every four years. The locations alternate between North American and Europe. Attendance is still by invitation only, but anybody can apply. The next conference will be Householder XIX in June 2014, in Belgium, hosted by Universite catholique de Louvain and the Katholieke Universiteit Leuven.
Forsythe served as advising editor of the prestigious Prentice-Hall Series in Automatic Computation. He solicited manuscripts from many influential authors. With more than 75 titles published in the early years, this series helped define the Computer Science discipline. The distinctive red and white dust jackets can still be seen on many library shelves.
Two of the books in the Prentice-Hall series were by Forsythe and Moler, and by Forsythe, Malcolm and Moler. Before I was known for MATLAB, I could meet people at conferences and say, "You know those books by Forsythe and somebody, well I'm that somebody."
The Forsythe and Moler book, "Computer Solution of Linear Algebraic Systems", evolved from notes for the second quarter of a two-quarter basic numerical analysis course that Forsythe taught in the early 1960's and that I taught in 1965. The first quarter used a text by Peter Henrici that covered all of the material in our syllabus except matrix computation. The notes that George had written for the second quarter eventually became the book.
I wrote programs DECOMP and SOLVE that implement column-oriented Gaussian elimination in three languages, Algol 60, Fortran, and PL/1. When I was working on the book, the year was 1966 and Algol, the International Algorithmic Language, was the generally accepted standard for publishing mathematical material. Fortran was already over 10 years old and we didn't expect it to last much longer. PL/1 had been developed recently by IBM and we thought it might represent the future. You can see how accurate those predictions turned out to be.
The Forsythe, Malcolm, and Moler book, "Computer Methods for Mathematical Computations", had a longer incubation period. After I left grad school at Stanford, Forsythe started a more elementary course in numerical methods intended for engineers and other students outside of math and computer science. The course centered around a collection of well written mathematical software. Mike Malcolm was his teaching assistant.
Forsythe fell ill before he and Malcolm could refine their course notes into a book and they asked me to help complete the project. The reviewers of our first draft said that it read like it was written by three different authors who never read each other's chapters. They were right. It took Mike and I five years to smooth out the exposition, by which time we had rewritten much of the software. And, oh yes, it was 1977 and the clear choice for programming language was Fortran.
Forsythe was a great believer that published computer programs should be a means of scientific discourse between humans, as well as a means of controlling machines. He would read and edit code as carefully as he would prose, which was very carefully. One of the biggest reasons these two books were as successful as they were was because the programs in them were not only useful and correct, they were short and readable.
One of Forsythe's most important legacies is his students and his students' students. The Forsythe Tree has George at the root and links that are Ph.D. theses. There are 17 first-level nodes, one of which is me. The version on the Web is 10 years old and woefully out of date. Even this version has a depth of five or six and over 200 nodes. There are dozens of university professors and several deans, provosts and presidents. I suspect that a current version might be almost twice as deep and have several hundred nodes. It reaches far into academia and industry throughout the world. We should bring the tree up to date.
George never got to see MATLAB. He passed away before its birth. He would have loved it.
<http://www.stanford.edu/dept/ICME/docs/history/forsythe_knuth.pdf.> Knuth, Donald E. (1972). "George Forsythe and the Development of Computer Science". Communications of the ACM 15 (8).
Get the MATLAB code
Published with MATLAB® R2012b
Comments are closed.
13 CommentsOldest to Newest
Great post. A lovely article.
Gosh Cleve, thank you for this wonderful posting. I am not a math or cs person (just an engineer), but I am always interested in and fascinated by the humanity of the folks who make contributions to the real world. Imagine for a moment how the world would be different if the contributions of all these people did not come forward, or even if they did come forward but were held as proprietary trade secrets. Thanks.
Thanks, Duane. It’s good to hear from you.
It’s great to hear about a legend from another legend.
Thanks for the article about a great man.
Cleve, this is a great story! I was inspired to resurrect some of my old MATLAB code from obscurity and update it to (re)make the base of a Forsythe Tree (among other things) by crawling through the AMS Math Geneology project.
You can find the code here , so that you can find your own math genes:
>> format short
>> g = MathGene(7743)
MathGene of Cleve Barry Moler:
Ph.D. Stanford University 1965 UnitedStates
Dissertation: Finite Difference Methods for the Eigenvalues of Laplace’s Operator
1 Advisor, 15 Students
I hope this can help you and others bring the tree up to date!
Hi, David — I must ask why you choose to use “github” instead of the MATLAB Central File Exchange. And I’m afraid that the AMS Math Geneology project will not catch some of the tree that lives in computer science. — Cleve
Thank you Cleve. That was a very inspiring article indeed.
Great article Cleve! Is there as much progress being made in Numerical Analysis these days as their used to be?
Yes, there is as much “progress”, but it’s a different kind of progress because the field has changed.
Cleve – you’re absolutely right about the exclusion of the part of the Forsythe Tree that lives outside of the Math Departments of the world. The site http://academictree.org/ notably leaves out the disciplines of Mathematics and Computer Science, as though there are adequate genealogies already maintained on the internet for both. In a cursory look, I cannot find the CS complement to the AMS Math Genealogy. Do you know of one? There may be future promise in Microsoft Research’s Academic Search , but as present it’s not particularly well-connected.
As to your questions about Github vs. MATLAB Central File Exchange, I chose Github first because it links directly to a Git version control repository on my computer. I’ve seen a model (matlab2tikz) where more collaborative development occurs in that distributed repository first , and then updates are pushed to the File Exchange . This silos a bit the development of the source (which can support wikis, multiple languages, and distributed development) from the release and distribution of the product to the MATLAB community. In the end, it’s a stylistic choice, I think, to split those things as opposed to using only the File Exchange or only Github, and I was on the side of Github for the connected repository and distributed version control. I hope that answers your question. Please let me know if you’re curious about any parts of my answer.
I would have enjoyed knowing George Forsythe. I was born a little too late (in 1972 I was 6 years away from my first Fortran program…). From his book (and yours), it’s clear that he had a love for not just the math, but robust and usable software that makes the math work, so much so that the code is printed in the book, because it’s worth reading and thinking about. That’s what I like!
Looking at the Forsythe tree, it’s amazing to see so many people who love to write such wonderfully usable and robust code: yourself (MATLAB, LINPACK), Alan George (sparse matrix codes), Danny Sorensen (eigenvalue solver, ARPACK), Jack Dongarra (LINPACK, LAPACK), James Bunch (LINPACK), Esmond Ng and Joseph Liu (sparse matrix software), Rob Schreiber (sparse solvers and more), Rich Lehouq (Trilinos) to name just a few.
I know I’m leaving out many names. It would be an fun exercise to measure the impact of the *software* written by Forsythe and his academic descendants — both important historical codes no longer in use, and codes actively solving problems everyday. Until I looked at Forsythe’s tree just now, I had no idea all these people were so closely connected to him.
I think Donald Knuth really sums it up nicely when he writes: “He inaugurated a new area of scholarly work: refereeing and editing algorithms. His point of view was nicely expressed in the “Forum on Algorithms” in Communications, April 1966:”
“There are few problems for which a good algorithm of probable permanent value is known…Small details are of the greatest importance…The development of excellent algorithms requires a long time, from discovery of a basic idea to the perfection of the method…A useful algorithm is a substantial contribution to knowledge. Its publication constitutes an important piece of scholarship.” 
So, Cleve, what would your book with Forsythe look like if it was written in MATLAB?
I wouldn’t write the same book today that I wrote with Forsythe in 1967. The topics to be covered in a first course in matrix computation have changed quite a bit. Much less emphasis on floating point arithmetic and roundoff error. Consequently have time for eigenvalues and SVD in the first course.