| Author: | Michael Tobis |
|---|
If you had a willing but unimaginative servant who could do a million things per second, how would you go about instructing them regarding their duties?
What else might it be about?
If a very smart person from the distant past (say, Thomas Jefferson or Benjamin Franklin) were magically granted a day to visit us in 2006, and asked you "what is a computer?", how would you answer?
This course has a broad set of goals:
These multiple goals require some compromises.
We also have very little time!
I'm Michael Tobis.
I will cheerfully answer to "Michael".
You can, if you prefer, call me "Professor Tobis" or "Dr. Tobis".
I will not answer to "Mike", or "Mr. Tobis"; I do not recognize those as names for me
I am not sure I will have office hours regularly; but I am willing to meet at times mutually agreed.
You can IM me at AIM:peskytoaster
You can call me at 773 272 6827
There are essentially three components to the course:
I would prefer to weave them, but we have little time
Part history course, part science course
Readings in the required text and from available web sources
Half the grade
Weekly quizzes weeks 3,4,5 = 20 points
Final exam week 6 = 20 points
Written Assignments = 20 points
Because we only have 10 lectures and an exam, there is no time to waste
The procedural knowledge must start immediately: by the end of today you will know how to write a computer program
We will have substantial lab time every session
We will pair up weekly. Labs are done in pairs. Homeworks are done alone.
Labs = 25 points
Homeworks due Wednesdays weeks 2,3,4,5 = 35 points
Points are not given freely; you must work for them. However, there are a lot (120) of them! I convert to course letter grades with the following minimum requirements:
Typical uses of the astrolabe include finding the time during the day or night, finding the time of a celestial event such as sunrise or sunset and as a handy reference of celestial positions. Astrolabes were also one of the basic astronomy education tools in the late Middle Ages. Old instruments were also used for astrological purposes. The typical astrolabe was not a navigational instrument although an instrument called the mariner's astrolabe was widely used. The mariner's astrolabe is simply a ring marked in degrees for measuring celestial altitudes. ( http://www.astrolabes.org )
Ancient device, still in use in some places (this one is contemporary Russian)
(What is the plural of abacus?)
Lets say that you want to add number 20 and number 81.
To dial 20, you just have to put your finger into the space between the spokes next to digit 2 and before digit 3 of the second wheel, and rotate the wheel until your finger strikes against the fixed stop on the bottom of the wheel. This rotation transmits the value of two into the second window from the right. So now the machines is displaying number 000020.
( http://www.computermuseum.li/Testpage/Pascaline-Calculator-1642.htm )
To dial 81, put your finger into the space between the spokes next to digit 8 and before digit 9 of the second wheel and rotate it. After the second drum will reach number 9 the gears inside Pascaline will carry to the next drum one unit and the third drum of the machine will rotate by one tenth. So after the end of the dialing of number 8 (the first digit of the second number to be added) the machine is displaying number 100. Now put your finger into the space between the spokes next to digit 1 and before the digit 2 of the first wheel and rotate it the same way you did before. Now the machine is displaying number 000101 which is the final result of the addition you wanted to make. ( http://www.macs.hw.ac.uk/~greg/calculators/pascal/About_Pascaline.htm )
(note we will return to this device: it actually had an important non-obvious influence on modern computers)
Prior to the industrial revolution, we had devices that could do elaborate calculations
At first, they were very specific in purpose, but eventually the idea of the mechanical calculator emerged
However, there was no concept of the "program"; this emerged from an unexpected and very different source
A commercial, not an intellectual source for the crucial idea of storing an instruction for a machine.
Note the repetitive nature of the task
(also note the "circles" that we perceive that aren't really there!)
Weaving patterns stored on punched cards
Computer scientists find it momentous not because of its relatively minor impact on the textile industry
The real breakthrough is the stored instruction.
The first physical emobodiment of encoded information for the use of the machine.
Charles Babbage, a successful inventor
Numerical tables were calculated by humans called 'computers'.
Babbage saw the high error rate of the people computing the tables
Babbage wanted to calculate the tables mechanically, removing all human error. He began in 1822 with what he called the difference engine, made to compute values of polynomial functions.
The first difference engine needed around 25,000 parts of a combined weight of fifteen tons standing eight feet high. Although he received much funding for the project, he did not complete it.
Babbage started designing a different, more complex machine called the Analytical Engine, which could be programmed using punch cards, an idea unheard of in his time.
Several features subsequently used in modern computers, including sequential control, branching, and looping
Ada Lovelace, (Augusta Ada King, Countess of Lovelace (December 10, 1815 - November 27, 1852) )
Ada was the only legitimate child of the poet Lord Byron and his wife, Annabella Milbanke.
She was an impressive mathematician and one of the few who understood Babbage's vision,
Created a program for the Analytical Engine.
Had the Analytical Engine ever actually been built, her program would have been able to calculate a numerical sequence known as the Bernoulli numbers.
Based on this work, Ada is now credited as being the first computer programmer and, in 1979, a contemporary programming language was named Ada in her honour.
While the programmable computer did not emerge for a long time, American engineer Herman Hollerith developed a substantial business in punch card punching, sorting and tabulating machines, based on his patents, which were used in the US census quite early.
His company, the Tabulating Machine Company, became International Business Machines (IBM), still the largest corporation in computing.
However, true computing as Babbage envisioned it did not become practical for a century.
We will have to lay the groundwork for the ideas in order to understand it better.
(close your eyes if you have a snake phobia)
Note: the language was not named after the snake, but after the comedy troupe, Monty Python.
Idle is an interactive development environment (IDE)
Eric Idle is also one of the members of the Monty Python comedy troupe
beginner resources:
http://wiki.python.org/moin/BeginnersGuide
idle resources:
http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html
pick a number from 1 to 10 and ask for that big of a "kite"
>>> kite(4) here is a picture of a 4 panel kite: * *** ***** ******* ***** *** * | * *** ***** *** * | * *** * | * >>>
.
getting started
http://cs.luc.edu/~anh/150/labs/lab1.html
for Wednesday, Chapter 8 in Reed
for next Wednesday, chapters 12, 16 (we will work through this material next time)
this material will be covered on the first quiz
you will be expected to understand base 8 and base 2 (binary) and ASCII