Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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

2 SJSU Dept. of Computer Science Fall 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

3 SJSU Dept. of Computer Science Fall 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)

4 SJSU Dept. of Computer Science Fall 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

5 SJSU Dept. of Computer Science Fall 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!

6 SJSU Dept. of Computer Science Fall 2011: September 14 CS 185C: This History of Computing © R. Mak 6 Donald Knuth  Monday, September 19 ENGR 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

7 SJSU Dept. of Computer Science Fall 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  2 nd edition 1973, 3 rd edition 1997 Volume 2: Seminumerical Algorithms, 1969  2 nd edition 1981, 3 rd edition 1997 Volume 3: Sorting and Searching, 1973  2 nd edition 1998 Volume 4A: Combinatorial Algorithms, Part 1, 2011

8 SJSU Dept. of Computer Science Fall 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

9 SJSU Dept. of Computer Science Fall 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 decide where to begin the next match.

10 SJSU Dept. of Computer Science Fall 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.

11 SJSU Dept. of Computer Science Fall 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)

12 SJSU Dept. of Computer Science Fall 2011: September 14 CS 185C: This History of Computing © R. Mak 12 MIX IDE

13 SJSU Dept. of Computer Science Fall 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.

14 SJSU Dept. of Computer Science Fall 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.

15 SJSU Dept. of Computer Science Fall 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.

16 SJSU Dept. of Computer Science Fall 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

17 SJSU Dept. of Computer Science Fall 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 of Technology 1960; Ph.D., California Institute of Technology 1963) is Professor Emeritus of The Art of Computer Programming at Stanford University, where he supervised the Ph.D. dissertations of 28~students since becoming a professor in 1968. He is the author of numerous books, including three volumes (so far) of {\sl The Art of Computer Programming}, 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 publishing throughout the world.... \nopagenumbers \bye

18 SJSU Dept. of Computer Science Fall 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}

19 SJSU Dept. of Computer Science Fall 2011: September 14 CS 185C: This History of Computing © R. Mak 19 LaTeX

20 SJSU Dept. of Computer Science Fall 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

21 SJSU Dept. of Computer Science Fall 2011: September 14 CS 185C: This History of Computing © R. Mak 21 MetaFont 1 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

22 SJSU Dept. of Computer Science Fall 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?

23 SJSU Dept. of Computer Science Fall 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

24 SJSU Dept. of Computer Science Fall 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 650 Case Institute of Technology


Download ppt "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."

Similar presentations


Ads by Google