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.

Slides:



Advertisements
Similar presentations
Critical Reading Strategies: Overview of Research Process
Advertisements

ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
PZ14A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ14A - Text processing Programming Language Design and.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CS 185C: The History of Computing October 17 Class Meeting Department of Computer Science San Jose State University Fall 2011 Instructor: Ron Mak
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Computers: Tools for an Information Age
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Project.
CS 330 Programming Languages 09 / 06 / 2007 Instructor: Michael Eckmann.
Debugging CSC 171 FALL 2001 LECTURE 22. Project 4 Hardcopies are outside of CSB 722 All returns outside CSB 722.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Describing Syntax and Semantics
CS 153: Concepts of Compiler Design August 25 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Chapter 12: Network Programming Desktop Publishing Translator models Latex Documentation Preparation Postscript programming language WYSIWIG Editors.
Final Exam Review Instructor : Yuan Long CSC2010 Introduction to Computer Science Apr. 23, 2013.
Welcome to the 3-day Workshop on > Presented by Saeid Abolfazli Faculty of Computer Science and IT University Malaya 23,24, and.
PROGRAMMING LANGUAGES The Study of Programming Languages.
By the end of this session you should be able to...
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Invitation to Computer Science 5th Edition
Introduction to complexity Prof. Sin-Min Lee Department of Computer Science San Jose State University.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
1 Mathematical Institute Serbian Academy of Sciences and Arts, Belgrade DEUKS Meeting Valencia, September 9-11, 2008, Valencia New PhD modules proposal.
CS 153: Concepts of Compiler Design August 24 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
1 CS 430 Database Theory Winter 2005 Lecture 1: Introduction.
Timothy Foster CSCE 221H Pioneer Computer Artist ( present)
Chapter 10: Compilers and Language Translation Invitation to Computer Science, Java Version, Third Edition.
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
1 History of compiler development 1953 IBM develops the 701 EDPM (Electronic Data Processing Machine), the first general purpose computer, built as a “defense.
Desktop Tools: Help or Harm? When you think of what your computer can do what comes to mind first? –Word processor –Browser – I think of these because,
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
CS 235: User Interface Design September 22 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
CS 153: Concepts of Compiler Design August 26 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
CS 160: Software Engineering October 22 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
CS 153: Concepts of Compiler Design September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Semantics In Text: Chapter 3.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
CS 152: Programming Language Paradigms January 27 Class Meeting Department of Computer Science San Jose State University Spring 2014 Instructor: Ron Mak.
Compiler Construction (CS-636)
Written by Dennis Shasha and Cathy Lazere Book Report by Phil Dinovo.
Technical Writing DR. Hatem Elaydi Fall 2007 Electrical & Computer Engineering Islamic University of Gaza.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Fundamentals of Programming C++ Programming Language CS 1400 Dennis A. Fairclough Version 1.1 C++ Programming Language CS 1400 Dennis A. Fairclough Version.
CS 154 Formal Languages and Computability April 5 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
LaTex -Computer scientist named Donald Knuth developed the program called Tex, in 1978.(mainly focused on formulae) -Later a mathematician and computer.
Sub-fields of computer science. Sub-fields of computer science.
Advanced Computer Systems
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
CSE3002 Team Project TOPIC TITLE
Big Ideas in Computer Science
Trees 4 The B-Tree Section 4.7
CSE4102 Team Project Prof. Steven A. Demurjian
Compiler Construction
Ada – 1983 History’s largest design effort
CMPE 152: Compiler Design August 21 Class Meeting
Introduction to CS II Data Structures
CMPE 152: Compiler Design January 24 Class Meeting
Chapter 10: Compilers and Language Translation
Mathematical Analysis of Algorithms
CSE4102/5102 Team Project TOPIC TITLE
Presentation transcript:

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

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

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)

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

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!

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

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

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

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: S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: m: S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: m: S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: m: S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: m: S: ABC ABCDAB ABCDABCDABDE W: ABCDABD i: Builds a “partial match” table as it searches for matches to decide where to begin the next match.

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.

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)

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

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.

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.

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.

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

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 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

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}

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

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

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

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?

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 . “I have been a happy man ever since January 1, 1990, when I no longer had an address.” Also doesn’t carry a cell phone  His first computer was the IBM 650. Dedicates TAOCP volumes to that computer

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