Top Banner
CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak www.cs.sjsu.edu /~mak
24

CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

CS 185C: The History of ComputingSeptember 14 Class Meeting

Department of Computer ScienceSan Jose State University

Fall 2011Instructor: Ron Mak

www.cs.sjsu.edu/~mak

Page 2: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

2

Projects

Philip Gebhardt cryptography and the German Enigma machine

Stefan Gloutnikov history of memory and storage systems

Michael Haney Commodore 64 simulator

Page 3: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

3

Projects

Youn Kim programming paradigms throughout history

Yulian Kynchev functional programming languages

Ryan Lichtig natural language processing (NLP)

Page 4: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

4

Projects

Weili Liu evolution of social networks

Patrick O’Connell simulation of PDP-1

Michael Riha history of compression algorithms

Page 5: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

5

Projects

Steven Terpe non von Neumann machines

Stephen Voglewede history of how computers have done science

Last call for IEEE usernames!

Page 6: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

6

Donald Knuth

Monday, September 19ENGR 189 auditorium, 6:00-7:00 PM

The world’s most famous computer scientist Born 1938 in Milwaukee, WI Name is pronounced kuh-NOOTH Professor of The Art of Computer Programming,

Emeritus, Stanford University, since 1993 First became Professor of Computer Science

at Stanford University in 1968

Page 7: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

7

The Art of Computer Programming

Best known as the author of the classic work, The Art of Computer Programming (TAOCP)

Volume 1: Fundamental Algorithms, 1968 2nd edition 1973, 3rd edition 1997

Volume 2: Seminumerical Algorithms, 1969 2nd edition 1981, 3rd edition 1997

Volume 3: Sorting and Searching, 1973 2nd edition 1998

Volume 4A: Combinatorial Algorithms, Part 1, 2011

Page 8: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

8

Analysis of Algorithms

Knuth pioneered the analysis of algorithms

Contributed to the development of rigorous analysis of the computational complexity of algorithms How to classify algorithms according to how difficult they

are to compute, time and space requirements, etc.

Developed formal mathematical techniques for doing this type of analysis

Also contributed to several other branches of theoretical computer science

Page 9: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

9

Knuth-Morris-Pratt Algorithm

String searching algorithm searches a string S for occurrences of a word (substring) W. Reduces the number of character-by-character comparisons by

using information gained from previous mismatches.

1 2 m: 01234567890123456789012 S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: 0123456

1 2 m: 01234567890123456789012 S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: 0123456

1 2 m: 01234567890123456789012 S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: 0123456

1 2 m: 01234567890123456789012 S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: 0123456

1 2 m: 01234567890123456789012 S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: 0123456

Builds a “partial match” table as it searches for matches to decidewhere to begin the next match.

Page 10: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

10

Concrete Mathematics

Co-authored by Knuth Based on a course taught at Stanford.

Mathematical preliminaries to TAOCP A blend of continuous and discrete mathematics A complement to abstract mathematics Written in a humorous style with

“mathematical graffiti” in the margins.

Invented several notations, such as for the floor and ceiling functions.

Page 11: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

11

MIX

Algorithms in TAOCP are implemented in the MIX assembly language for a virtual machine.

Assembly language allows you to understand at a low level how an algorithm works. Useful for analyzing performance

Like the Java Virtual Machine, there are many software implementations of the MIX machine, including integrated development environments (IDE)

Page 12: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

12

MIX IDE

Page 13: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

13

“Structured Programming with go to Statements”

A very complete description of what “structured programming” is about. Written by Knuth in 1974

Main themes A program needs to be rewritten several times before it can be

considered a truly good program. Efficiency is important in some programming applications, and

that the programmer needs the freedom to use goto’s to optimize critical portions of a program. Only 3% of a typical program needs to be optimized. “Premature optimization is the root of all evil.”

Structured programming could be made much more practical with the addition of a few language constructs.

Page 14: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

14

“Structured Programming with go to Statements”

There are times when the programmer should put goto statements into his code, rather than take them out. Use goto statements to: convert recursion to iteration implement coroutines eliminate Boolean variables by branching into common code

Strategy: First, write the program in a structured manner to convince

yourself that it is correct. Then transform it into an efficient program, possibly by

introducing some goto statements. Finally, leave the original structured code behind as

documentation, so that subsequent readers can understand how the transformation took place.

Page 15: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

15

TeX and WEB

Created the TeX computer typesetting system and the MetaFont font definition language and rendering system Developed after he became dissatisfied with the quality of the

typesetting of the second edition of Volume 2 of TAOCP.

Created the WEB programming system to promote “literate programming” Introduced in 1981 for TeX Programmed in Pascal Later CWEB for C programming Write programs in ordinary human language as a

meta-language over the underlying computer language.

Page 16: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

16

TeX

Computer typesetting system designed and mostly programmed by Knuth Started in 1977, current version released 2008

Used to produce high quality, well-formatted books, especially books containing mathematical formulas The LaTeX document preparation system uses a

high-level macro language to interface to TeX Widely used in academia

Page 17: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

17

TeX

\magnification=\magstep1\font\logo=manfnt % font used for the METAFONT logo\def\MF{{\logo META}\-{\logo FONT}}\hsize=4truein\raggedright

\noindent{\bf Donald E. Knuth} (B.S. and M.S., Case Institute ofTechnology 1960; Ph.D., California Institute of Technology 1963) isProfessor Emeritus of The Art of Computer Programming at Stanford University,where he supervised the Ph.D. dissertations of 28~students sincebecoming a professor in 1968. He is the author of numerous books,including three volumes (so far) of {\sl The Art of ComputerProgramming}, five volumes of {\sl Computers \& Typesetting},and a non-technical book entitled {\sl 3:16\enspace Bible Texts Illuminated}.His software systems \TeX\ and \MF\ are extensively used for book publishingthroughout the world....

\nopagenumbers\bye

Page 18: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

18

LaTeX\documentclass[12pt]{article} \usepackage{amsmath}\title{\LaTeX}\date{} \begin{document} \maketitle \LaTeX{} is a document preparation system for the \TeX{} typesetting program. It offers programmable desktop publishing features and extensive facilities for automating most aspects of typesetting and desktop publishing, including numbering and cross-referencing, tables and figures, page layout, bibliographies, and much more. \LaTeX{} was originally written in 1984 by Leslie Lamport and has become the dominant method for using \TeX; few people write in plain \TeX{} anymore. The current version is \LaTeXe.

% The following shows a little of the typesetting power of LaTeX: \begin{align} E &= mc^2 \\ m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}} \end{align} \end{document}

Page 19: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

19

LaTeX

Page 20: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

20

MetaFont

A programming language used to describe fonts, and the interpreter of the language Created by Knuth to work with his

TeX typesetting system.

Glyph definitions use mathematical equations to define “pen paths” Parameters to each definition include aspect ratio,

font slant, stroke width, serif size, etc. Change a parameter value to alter the appearance

of an entire font Uses cubic splines to describe curves

Page 21: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

21

MetaFont1 u#:=4/9pt#;2 define_pixels(u);3 beginchar(66,13u#,16u#,5u#);"Letter beta";4 x1=2u; x2=x3=3u;5 bot y1=-5u; y2=8u; y3=14u;6 x4=6.5u; top y4=h;7 z5=(10u,12u);8 z6=(7.5u,7.5u); z8=z6;9 z7=(4u,7.5u);10 z9=(11.5u,2u);11 z0=(5u,u);12 penpos1(2u,20);13 penpos2(.5u,0);14 penpos3(u,-45);15 penpos4(.8u,-90);16 penpos5(1.5u,-180);17 penpos6(.4u,150);18 penpos7(.4u,0);19 penpos8(.4u,210);20 penpos9(1.5u,-180);21 penpos0(.3u,20);22 pickup pencircle;23 penstroke z1e..z2e..z3e..z4e..z5e..z6e..{up}z7e..z8e..z9e..{up}z0e;24 labels(range 1 thru 9);25 endchar;26 end

Page 22: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

22

Religious Writings

Knuth is a Lutheran and has written Christian texts.

3:16 Bible Texts Illuminated, 1991 Analysis of Chapter 3, verse 16 of each book of the Bible Each verse accompanied by calligraphic artwork

Things a Computer Scientist Rarely Talks About, 2001 How does a computer scientist understand infinity? What can probability theory teach us about free will? Can mathematical notions be used to enhance one's personal

understanding of the Bible?

Page 23: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

23

Miscellaneous

Knuth is an accomplished musician. Has a pipe organ in his home on the

Stanford campus.

No longer does email. “I have been a happy man ever since January 1,

1990, when I no longer had an email address.” Also doesn’t carry a cell phone

His first computer was the IBM 650. Dedicates TAOCP volumes to that computer

Page 24: CS 185C: The History of Computing September 14 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak mak.

SJSU Dept. of Computer ScienceFall 2011: September 14

CS 185C: This History of Computing© R. Mak

24

Knuth and the IBM 650

Knuth at age 20 in 1958 at the console of the IBM 650Case Institute of Technology