Elliot Koffman

Last updated
Elliot Bruce Koffman
Born (1942-05-07) May 7, 1942 (age 82)
Nationality American
Occupation Computer scientist
Known forEducational development and textbooks

Elliot Bruce Koffman (born 7 May 1942 in Boston, Massachusetts) [1] is a noted computer scientist and educationist. He is the author of numerous widely used introductory textbooks for more than 10 [2] different programming languages, including Ada, BASIC, C, C++, FORTRAN, Java, Modula-2, and Pascal. Since 1974, he has been a professor of computer and information sciences at Temple University, Philadelphia, Pennsylvania.

Contents

Education and career

Koffman attended the Massachusetts Institute of Technology, where he earned his Bachelor of Engineering and Master of Engineering degrees in 1964. He received his PhD in 1967 at Case Institute of Technology with a dissertation on learning games through pattern recognition. [3]

That same year, Koffman began work at the National Security Agency in Fort Meade, Maryland as an electrical engineer. He was promoted to captain of the U.S. Army and assigned to the Defense Intelligence Agency in Washington, D.C. from 1967 to 1969. [1]

Koffman also began his teaching career in 1967, serving as a professorial lecturer at George Washington University, Washington, D.C. (19671969); an Assistant Professor (19691972) and Associate Professor (19721974) in the Department of Electrical Engineering and Computer Science at the University of Connecticut; and an Associate Professor (19741978) and Full Professor (1978present) in the Department of Computer and Information Sciences at Temple University. [1]

Koffman's early research was in artificial intelligence and intelligent tutoring systems. In 1974 he began writing and co-authoring textbooks for introductory programming courses for computer science majors (CS1) in programming languages such as Ada, BASIC, C, C++, Fortran, Java, Modula-2, and Pascal. He also wrote textbooks for the first data structures course (CS2) in C++, Java, and Pascal. [2]

In 2009 he was awarded the SIGCSE Outstanding Contribution Award "for an extraordinary record of teaching, curriculum development, publishing papers as well as numerous textbooks, and for helping to shape Computer Science education". [4]

Other activities

Koffman chaired the Association for Computing Machinery (ACM) task force to revise CS1 and CS2 courses from 1983 to 1985. He was also chairman of the ACM Special Interest Group in Computer Science Education (SIGCSE) from 1987 to 1991. [2]

Family

Koffman married Caryn Jackson [5] in 1963. [3] She is a photographer whose work has won awards [6] and has been featured in a local gallery. [7] They have three children, Richard, Deborah and Robin. They live in Elkins Park, Pennsylvania. [5]

Bibliography

Related Research Articles

<span class="mw-page-title-main">Ada (programming language)</span> High-level programming language first released in 1980

Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has built-in language support for design by contract (DbC), extremely strong typing, explicit concurrency, tasks, synchronous message passing, protected objects, and non-determinism. Ada improves code safety and maintainability by using the compiler to find errors in favor of runtime errors. Ada is an international technical standard, jointly defined by the International Organization for Standardization (ISO), and the International Electrotechnical Commission (IEC). As of May 2023, the standard, called Ada 2022 informally, is ISO/IEC 8652:2023.

<span class="mw-page-title-main">Computer program</span> Instructions a computer can execute

A computer program is a sequence or set of instructions in a programming language for a computer to execute. It is one component of software, which also includes documentation and other intangible components.

<span class="mw-page-title-main">Niklaus Wirth</span> Swiss computer scientist (1934–2024)

Niklaus Emil Wirth was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages".

This is a "genealogy" of programming languages. Languages are categorized under the ancestor language with the strongest influence. Those ancestor languages are listed in alphabetic order. Any such categorization has a large arbitrary element, since programming languages often incorporate major ideas from multiple sources.

In software engineering, a design pattern describes a relatively small, well-defined aspect of a computer program in terms of how to write the code.

In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language elements, be easier to use, or may automate significant areas of computing systems, making the process of developing a program simpler and more understandable than when using a lower-level language. The amount of abstraction provided defines how "high-level" a programming language is.

In computer science, imperative programming is a programming paradigm of software that uses statements that change a program's state. In much the same way that the imperative mood in natural languages expresses commands, an imperative program consists of commands for the computer to perform. Imperative programming focuses on describing how a program operates step by step, rather than on high-level descriptions of its expected results.

<span class="mw-page-title-main">Robert Sedgewick (computer scientist)</span> American computer scientist

Robert Sedgewick is an American computer scientist. He is the founding chair and the William O. Baker Professor in Computer Science at Princeton University and was a member of the board of directors of Adobe Systems (1990–2016). He previously served on the faculty at Brown University and has held visiting research positions at Xerox PARC, Institute for Defense Analyses, and INRIA. His research expertise is in algorithm science, data structures, and analytic combinatorics. He is also active in developing college curriculums in computer science.

In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain-specific programming language (DSL) is used within a specific area. For example, Python is a GPL, while SQL is a DSL for querying relational databases.

<span class="mw-page-title-main">History of programming languages</span>

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

In computer programming, a return statement causes execution to leave the current subroutine and resume at the point in the code immediately after the instruction which called the subroutine, known as its return address. The return address is saved by the calling routine, today usually on the process's call stack or in a register. Return statements in many programming languages allow a function to specify a return value to be passed back to the code that called the function.

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect or "concern" of the desired functionality.

Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods—instead of sequentially—with one completing before the next starts.

<i>Walls and Mirrors</i> Computer science textbook

Walls And Mirrors is a computer science textbook, for undergraduates taking a second computer science course, originally written by Paul Helman and Robert Veroff. The book attempts to strike a balance between being too mathematically rigorous and formal, and being so informal, practical, and hands-on that computer science theory is not taught.

<span class="mw-page-title-main">Goto</span> One-way control statement in computer programming

Goto is a statement found in many computer programming languages. It performs a one-way transfer of control to another line of code; in contrast a function call normally returns control. The jumped-to locations are usually identified using labels, though some languages use line numbers. At the machine code level, a goto is a form of branch or jump statement, in some cases combined with a stack adjustment. Many languages support the goto statement, and many do not.

Programming languages have been classified into several programming language generations. Historically, this classification was used to indicate increasing power of programming styles. Later writers have somewhat redefined the meanings as distinctions previously seen as important became less significant to current practice.

<span class="mw-page-title-main">Object-oriented programming</span> Programming paradigm based on the concept of objects

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.

This article deals with programming languages used in the Amiga line of computers, running the AmigaOS operating system and its derivatives AROS and MorphOS. It is a split of the main article Amiga software. See also related articles Amiga productivity software, Amiga music software, Amiga Internet and communications software and Amiga support and maintenance software for other information regarding software that runs on Amiga.

References

  1. 1 2 3 "Curriculum Vita". Temple University. 1 October 2000. Archived from the original on 29 September 2011. Retrieved 19 July 2011.
  2. 1 2 3 "CSC Colloquium: Elliot Koffman". Villanova University. 28 April 2008. Archived from the original on 27 March 2012. Retrieved 19 July 2011.
  3. 1 2 Koffman, Elliot. "All I Really Need to Know I Learned in CS1" (PDF). Temple University. p. 8. Archived from the original (PDF) on 2012-10-12. Retrieved 2011-07-19.
  4. "Outstanding Contribution Award". Special Interest Group on Computer Science Education. Archived from the original on 3 June 2013. Retrieved 19 July 2011.
  5. 1 2 "Death Notices: Jackson". The Jewish Exponent . 20 October 2005. Archived from the original on 14 March 2012. Retrieved 19 July 2011.
  6. Pinard Bogaert, Pauline (13 November 1994). "Luncheon And Fashion Show Raise $9,500 For Scholarships To Nurses". The Philadelphia Inquirer . Archived from the original on July 8, 2012. Retrieved 19 July 2011.
  7. Dove, Pheralyn (22 April 1996). "Gallery Highlights Works Of 3 Women: The Artforms Exhibit Features Sculpture, Paintings And Photographs By The 3 Montco Artists". The Philadelphia Inquirer. Archived from the original on June 6, 2012. Retrieved 19 July 2011.