Prentice Hall is a major educational publisher owned by Pearson plc. Prentice Hall publishes print and digital content for the higher-education market. Prentice Hall distributes its technical titles through the Safari Books Online e-reference service. On October 13, 1913, law professor Charles Gerstenberg and his student Richard Ettinger founded Prentice Hall. Gerstenberg and Ettinger took their mothers' maiden names—Prentice and Hall—to name their new company. Prentice Hall was acquired by Gulf+Western in 1984, became part of that company's publishing division Simon & Schuster. Publication of trade books ended in 1991. Simon & Schuster's educational division, including Prentice Hall, was sold to Pearson by G+W successor Viacom in 1998. There were two or more authors, their books turned up missing. One book'The Roof Builder's Handbook' is still being sold in 2018 for as much as $230 per new copy, but the author William C. McElroy was told by Pearson that all new books were either destroyed or went missing in 1995.
Some 2,385 copies are missing. Prentice Hall is the publisher of Magruder's American Government as well as Biology by Ken Miller and Joe Levine, their artificial intelligence series includes Artificial Intelligence: A Modern Approach by Stuart J. Russell and Peter Norvig and ANSI Common Lisp by Paul Graham, they published the well-known computer programming book The C Programming Language by Brian Kernighan and Dennis Ritchie and Operating Systems: Design and Implementation by Andrew S. Tanenbaum. Other titles include Dennis Nolan's Big Pig, Monster Bubbles: A Counting Book, Wizard McBean and his Flying Machine, Witch Bazooza, Llama Beans, The Joy of Chickens. A Prentice Hall subsidiary, Reston Publishing, was in the foreground of technical-book publishing when microcomputers were first becoming available, it was still unclear who would be buying and using "personal computers," and the scarcity of useful software and instruction created a publishing market niche whose target audience yet had to be defined.
In the spirit of the pioneers who made PCs possible, Reston Publishing's editors addressed non-technical users with the reassuring, mildly experimental, Computer Anatomy for Beginners by Marlin Ouverson of People's Computer Company. They followed with a collection of books, by and for programmers, building a stalwart list of titles relied on by many in the first generation of microcomputers users. Prentice Hall International Series in Computer Science Prentice Hall website Prentice Hall School website Prentice Hall Higher Education website Prentice Hall Professional Technical Reference website
Computer programming is the process of designing and building an executable computer program for accomplishing a specific computing task. Programming involves tasks such as: analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, the implementation of algorithms in a chosen programming language; the source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task on a computer for solving a given problem; the process of programming thus requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, formal logic. Tasks accompanying and related to programming include: testing, source code maintenance, implementation of build systems, management of derived artifacts, such as the machine code of computer programs.
These might be considered part of the programming process, but the term software development is used for this larger process with the term programming, implementation, or coding reserved for the actual writing of code. Software engineering combines engineering techniques with software development practices. Reverse engineering is the opposite process. A hacker is any skilled computer expert that uses their technical knowledge to overcome a problem, but it can mean a security hacker in common language. Programmable devices have existed at least as far back as 1206 AD, when the automata of Al-Jazari were programmable, via pegs and cams, to play various rhythms and drum patterns. However, the first computer program is dated to 1843, when mathematician Ada Lovelace published an algorithm to calculate a sequence of Bernoulli numbers, intended to be carried out by Charles Babbage's Analytical Engine. Women would continue to dominate the field of computer programming until the mid 1960s. In the 1880s Herman Hollerith invented the concept of storing data in machine-readable form.
A control panel added to his 1906 Type I Tabulator allowed it to be programmed for different jobs, by the late 1940s, unit record equipment such as the IBM 602 and IBM 604, were programmed by control panels in a similar way. However, with the concept of the stored-program computers introduced in 1949, both programs and data were stored and manipulated in the same way in computer memory. Machine code was the language of early programs, written in the instruction set of the particular machine in binary notation. Assembly languages were soon developed that let the programmer specify instruction in a text format, with abbreviations for each operation code and meaningful names for specifying addresses. However, because an assembly language is little more than a different notation for a machine language, any two machines with different instruction sets have different assembly languages. Kathleen Booth created one of the first Assembly languages in 1950 for various computers at Birkbeck College. High-level languages allow the programmer to write programs in terms that are syntactically richer, more capable of abstracting the code, making it targetable to varying machine instruction sets via compilation declarations and heuristics.
The first compiler for a programming language was developed by Grace Hopper. When Hopper went to work on UNIVAC in 1949, she brought the idea of using compilers with her. Compilers harness the power of computers to make programming easier by allowing programmers to specify calculations by entering a formula using infix notation for example. FORTRAN, the first used high-level language to have a functional implementation which permitted the abstraction of reusable blocks of code, came out in 1957. In 1951 Frances E. Holberton developed the first sort-merge generator which ran on the UNIVAC I. Another woman working at UNIVAC, Adele Mildred Koss, developed a program, a precursor to report generators. In USSR, Kateryna Yushchenko developed the Address programming language for the MESM in 1955; the idea for the creation of COBOL started in 1959 when Mary K. Hawes, who worked for Burroughs Corporation, set up a meeting to discuss creating a common business language, she invited six people, including Grace Hopper.
Hopper was involved in developing COBOL as a business language and creating "self-documenting" programming. Hopper's contribution to COBOL was based on her programming language, called FLOW-MATIC. In 1961, Jean E. Sammet developed FORMAC and published Programming Languages: History and Fundamentals which went on to be a standard work on programming languages. Programs were still entered using punched cards or paper tape. See computer programming in the punch card era. By the late 1960s, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into the computers. Frances Holberton created a code to allow keyboard inputs while she worked at UNIVAC. Text editors were developed that allowed changes and corrections to be made much more than with punched cards. Sister Mary Kenneth Keller worked on developing the programming language, BASIC when she was a graduate student at Dartmouth in the 1960s. One of the first object-oriented programming languages, was developed by seven programmers, including Adele Goldberg, in the 1970s.
In 1985, Radia Perlman developed the Spannin
Bertrand Meyer is a French academic and consultant in the field of computer languages. He created the idea of design by contract. Bertrand Meyer received a master's degree in engineering from the École Polytechnique in Paris, a second master's degree from Stanford University, a PhD from the Université de Nancy, he had a technical and managerial career for nine years at Électricité de France, for three years was a member of the faculty of the University of California, Santa Barbara. From October 2001 to early 2016, he was professor of software engineering at ETH Zürich, the Swiss Federal Institute of Technology, where he pursued research on building trusted components with a guaranteed level of quality, he was Chair of the ETH Computer Science department from 2004 to 2006 and for 13 years taught the Introduction to Programming course taken by all ETH computer science students, resulting in a disseminated programming textbook, Touch of Class. He is a Professor at the Polytechnic University of Milan, where he arrived with an ERC Advanced Investigator Grant project.
Meyer's other activities include associate professorships at Innopolis University and, in 2015–16, a Chair of Excellence at the University of Toulouse. From 1998 to 2003 he was adjunct professor at Monash University in Australia, he is a member of the French Academy of Technologies. He is active as a consultant, trainer in object technology and other software topics, conference speaker. For many years Meyer has been active in issues of research and education policy and was the founding president of Informatics Europe, the association of European computer science departments. Meyer pursues the ideal of simple and user-friendly computer languages and is one of the earliest and most vocal proponents of object-oriented programming, his book Object-Oriented Software Construction is considered to be the best work on presenting the case for OOP. Other books he has written include Eiffel: The Language, Object Success, Reusable Software, Introduction to the Theory of Programming Languages and Touch of Class.
He has authored edited conference proceedings. He is the initial designer of the Eiffel method and language and has continued to participate in its evolution, is the originator of the Design by Contract development method, his experiences with object technology through the Simula language, as well as early work on abstract data types and formal specification, provided some of the background for the development of Eiffel. Eiffel has been influential in the development of other languages including C# and Python. In 2005, Meyer was the "senior award" winner of the first AITO Dahl-Nygaard award; this prize, named after the two creators of object technology, is awarded annually to a senior and a junior researchers who have made significant technical contributions to the field of Object Orientation. Meyer has received honorary doctorates from ITMO University in Saint Petersburg and the University of York, UK. In 2006, Meyer received the Software System Award of the ACM for "impact on software quality" in recognition of the design of Eiffel.
He is a 2008 Fellow of the ACM. He is the 2009 recipient of the Harlan Mills Award of the IEEE Computer Society. On 28 December 2005, an anonymous user falsely announced Meyer's death on German Wikipedia's biography of Meyer; the hoax was reported five days by the Heise News Ticker and the article was corrected. Many major news media outlets in Germany and Switzerland picked up the story. Meyer went on to publish a positive evaluation of Wikipedia, concluding "The system succumbed to one of its potential flaws, healed itself; this doesn't affect the big picture. Just like those about me, rumors about Wikipedia's downfall have been grossly exaggerated." Open/closed principle Uniform access principle Bertrand Meyer home page
In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example, 5! = 5 × 4 × 3 × 2 × 1 = 120. The value of 0! is 1, according to the convention for an empty product. The factorial operation is encountered in many areas of mathematics, notably in combinatorics and mathematical analysis, its most basic use counts the possible distinct sequences -- the permutations -- of n distinct objects: there are n!. The factorial function can be extended to non-integer arguments while retaining its most important properties. Factorials were used to count permutations at least as early as the 12th century, by Indian scholars. In 1677, Fabian Stedman described factorials as applied to change ringing, a musical art involving the ringing of many tuned bells. After describing a recursive approach, Stedman gives a statement of a factorial: The notation n! was introduced by the French mathematician Christian Kramp in 1808. The factorial function is defined by the product n!
= 1 ⋅ 2 ⋅ 3 ⋯ ⋅ ⋅ n, for integer n ≥ 1. This may be written in the Pi product notation as n! = ∏ i = 1 n i. From these formulas, one may derive the recurrence relation n! = n ⋅!. For example, one has 5! = 5 ⋅ 4! 6! = 6 ⋅ 5! 50! = 50 ⋅ 49! and so on. The factorial of 0, 0!, is 1. There are several motivations for this definition: For n = 0, the definition of n! as a product involves the product of no numbers at all, so is an example of the broader convention that the product of no factors is equal to the multiplicative identity. There is one permutation of zero objects, it makes many identities in combinatorics valid for all applicable sizes. The number of ways to choose 0 elements from the empty set is given by the binomial coefficient = 0! 0! 0! = 1. More the number of ways to choose all n elements among a set of n is = n! N! 0! = 1. It allows for the compact expression of many formulae, such as the exponential function, as a power series: e x = ∑ n = 0 ∞ x n n!. It extends the recurrence relation to 0; the factorial function can be defined for non-integer values using more advanced mathematics, detailed in the section below.
This more generalized definition is used by advanced calculators and mathematical software such as Maple, Mathematica, or APL. Although the factorial function has its roots in combinatorics, formulas involving factorials occur in many areas of mathematics. There are n! Different ways of arranging n distinct objects into a sequence, the permutations of those objects. Factorials appear in the denominator of a formula to account for the fact that ordering is to be ignored. A classical example is counting k-combinations from a set with n elements. One can obtain such a combination by choosing a k-permutation: successively selecting and removing one element of the set, k times, for a total of ⋯ = n!! = n k _ possibilities. This however produces the k-combinations in a particular order. Different ways, the correct number of k-combinations is n ( n
Object-Oriented Software Construction
Object-Oriented Software Construction is a book by Bertrand Meyer considered a foundational text of object-oriented programming. The first edition was published in 1988. Numerous translations are available including Dutch, German, Japanese, Polish, Russian and Spanish; the book has been cited thousands of times in computer science literature. The book won a Jolt award in 1994. Unless otherwise indicated, descriptions below apply to the second edition; the book known as "OOSC", presents object technology as an answer to major issues of software engineering, with a special emphasis on addressing the software quality factors of correctness, robustness and reusability. It starts with an examination of the issues of software quality introduces abstract data types as the theoretical basis for object technology and proceeds with the main object-oriented techniques: classes, genericity, Design by Contract and persistence, it includes extensive discussions of methodological issues. The first edition of the book used Eiffel for the examples and served as a justification of the language design choices for Eiffel.
The second edition uses Eiffel as its notation, but in an effort to separate the notation from the concepts it does not name the language until the Epilogue, on page 1162, where "Eiffel" appears as the last word. A few months after publication of the second edition, a reader posted on Usenet his discovery that the book's 36 chapters alternatively start with the letters "E", "I", "F", "F", "E", "L", a pattern being repeated 6 times. In addition, in the Appendix, titled "Epilogue, In Full Frankness Exposing the Language", the first letters of each paragraph spell out the same pattern. Uniform access principle Book's page at Eiffel Software Page on Spanish translation Bertrand Meyer's publication page