From 9b755eed735900d10fa2bc1354403b0e679320b9 Mon Sep 17 00:00:00 2001 From: Andy Ko Date: Tue, 26 Mar 2019 13:41:11 -0700 Subject: [PATCH] Fixed #33, clarifying citations of history articles. --- history.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/history.html b/history.html index 5660e1d..91e0611 100644 --- a/history.html +++ b/history.html @@ -50,7 +50,7 @@
  • What kinds of tools and languages can accelerate a programmers work and help them prevent mistakes?
  • -

    These questions are at the foundation of the field of software engineering and are the core content of this course. Some of them have pretty good answers. For example, the research community rapidly converged toward the concept of a version control systems, software testing, and a wide array of high-level programming languages such as Fortran (Metcalf 2002), LISP (McCarthy 1978), C++ (Stroustrup 1996), and Smalltalk (Kay 1996), all of which were precursors to today's modern languages such as Java, Python, and JavaScript.

    +

    These questions are at the foundation of the field of software engineering and are the core content of this course. Some of them have pretty good answers. For example, the research community rapidly converged toward the concept of a version control systems, software testing, and a wide array of high-level programming languages such as Fortran (chronicled by Metcalf 2002), LISP (chronicled McCarthy 1978), C++ (chronicled by Stroustrup 1996), and Smalltalk (chronicled by Kay 1996), all of which were precursors to today's modern languages such as Java, Python, and JavaScript.

    Other questions, particularly those concerning the human aspects of software engineering, have been hopelessly difficult to understand and improve. One of the seminal books on these issues was Fred P. Brooks, Jr.'s The Mythical Man Month. In it, he presented hundreds of claims about software engineering. For example, he hypothesized that adding more programmers to a project would actually make productivity worse at some level, not better, because knowledge sharing would be an immense but necessary burden. He also claimed that the first implementation of a solution is usually terrible and should be treated like a prototype: used for learning and then discarded. These and other claims have been the foundation of decades of years of research, all in search of some deeper answer to the questions above.