Computing Before Time: Pre-1980's - Computer Science

advertisement
Overview of Computer Science
John K. Antonio, Director
School of Computer Science
College of Engineering
University of Oklahoma
Norman, Oklahoma
November 2004
www.cs.ou.edu
Outline
• Computing Before Time: Pre-1980’s
• Computing in the Future: CS Research at OU
• Overview of the School of Computer Science
Computing Before Time: Pre-1980’s
This historical perspective starts in the year
1622 and goes through to the year 1976
References for this Section
• [1] IEEE Computer Society Web Site on the “History of
Computing,” http://www.computer.org/history/
• [2] E. C. Hall, Journey to the Moon: History of the Apollo
Guidance Computer, AIAA, Reston VA, 1996.
Computing Before Time: Pre-1980’s
1622: The slide rule (originally circular) based on Napier's
logarithms
Computing Before Time: Pre-1980’s
1642:
Blaise Pascal created an adding machine with
automatic carries from one position to the next
Computing Before Time: Pre-1980’s
1673:
Using a stepped cylindrical gear, Gottfried Leibniz built a
calculator capable of multiplication in which a number was
repeatedly and automatically added into an accumulator.
1822:
Charles Babbage recognized that mathematical, celestial, and
navigation tables were full of errors; leading to the loss of ships.
He suggests that it should be possible to compute the table
entries using a steam engine.
He begins to design the Difference Engine for the purposes of
computing the entries in navigation and other tables.
Computing Before Time: Pre-1980’s
Babbage’s Difference Engine (1822)
Computing Before Time: Pre-1980’s
1833 - 1847:
Charles Babbage designed the Analytical Engine that
had the basic components of a modern computer
He completed 21 drawings for its construction, but did
not complete the manufacture himself.
From these plans, a working version of the machine
was constructed in 1991 using only 1800’s technology.
Computing Before Time: Pre-1980’s
1854:
George Boole describes his system for symbolic and logical
reasoning that becomes later the basis for computer design
1890:
Herman Hollerith won the competition for the delivery of data
processing equipment to assist in the processing of the data
from the 1890 US Census.
1914:
Calculating-Tabulating-Recording (C-T-R) company
founded by Hollerith and others.
1924:
C-T-R renamed IBM.
1937:
Alan Turing developed the idea of a “Universal Machine”
capable of executing any describable algorithm, and forming the
basis for the concept of “computability.”
Turing’s ideas differed from those of others who were solving
arithmetic problems by introducing the concept of “symbol
processing.”
Computing Before Time: Pre-1980’s
1930’s: Aikens conceives the Harvard Mark I, also known as the
IBM Automatic Sequence Control Calculator (ASCC).
An automatic, general purpose, electromechanical
calculator.
The ASCC was not a stored program machine but instead
was driven by a paper tape containing the instructions.
Computing Before Time: Pre-1980’s
1944:
Grace Murray Hopper went to work for Aiken at Harvard
and became a programmer (then called “coders”) on
the Mark I.
When the machine stops (frequently) Hopper tells
Aiken that they are “debugging” the computer.
The first computer bug (found in hardware!) was beaten to
death in the jaws of a relay, literally.
Computing Before Time: Pre-1980’s
The first computer bug (Hopper glued it into her logbook).
Computing Before Time: Pre-1980’s
As a pioneer Computer Programmer and co-inventor of COBOL, Rear
Admiral Grace Murray Hopper was known as the Grand Lady of
Software, Amazing Grace, and Grandma COBOL.
Computing Before Time: Pre-1980’s
1943:
A major need for supporting the war effort was to decrypt
the intercepted messages of the German forces.
A team, including Alan Turing, built a series of machines
culminating in 1943 with Colossus.
1943:
Work on ENIAC was started in 1943 under the guidance of
John Brainerd, Dean of the Moore School of Electrical
Engineering at the University of Pennsylvania.
1943-1956: By 1956, the ENIAC had grown to 17,000 vacuum tubes,
weighed 60,000 pounds (about 20 Buicks), required 16,000
cubic feet (about 25’ x 25’ x 25’) of space, and consumed
174 KW of electrical power (about 3,000 reading lamps).
Computing Before Time: Pre-1980’s
Photo shows Eckert on left and Goldstine on right, holding an
arithmetic unit from the ENIAC.
Computing Before Time: Pre-1980’s
Photo of the ENIAC.
Computing Before Time: Pre-1980’s
1947:
William Shockley, John Bardeen, and Walter Brattain
invent the “transfer resistance” device, later to be known as
the transistor that will revolutionize the computer and give it
the reliability that could not achieved with vacuum tubes.
Computing Before Time: Pre-1980’s
1954-1957: John Backus proposed the development of a
programming language that would allow user to express
their problems in commonly understood mathematical
formulae -- later to be named FORTRAN.
Computing Before Time: Pre-1980’s
1956:
Bell Labs unveils the transistor.
1958:
Jack Kilby of Texas Instruments, Inventor of the Integrated
Circuit. Awarded the 2000 Nobel Prize in Physics!
1961:
President Kennedy announces a national goal to land a man
on the moon and return him safely to earth; to be accomplished
before the end of the decade.
1969:
Apollo 11 completes mission of manned lunar landing and
return.
Without the creation of the sophisticated high-technology
guidance computer, the Apollo 11 mission would not have been
possible.
Computing Before Time: Pre-1980’s
Functional characteristics of the Apollo Computer
Computing Before Time: Pre-1980’s
Early bench implementations of the Apollo Computer
Computing Before Time: Pre-1980’s
The integrated circuit made it possible to reduce the size
of the Apollo guidance and control computer to enable it
to fit!
Computing Before Time: Pre-1980’s
The “DSKY” of the Apollo computer
(DSKY = Display and Keyboard)
Computing Before Time: Pre-1980’s
Command module with DSKY circled.
Computing Before Time: Pre-1980’s
1969:
Work on ARPAnet begins.
Bell Telephone Laboratories withdrew from Project MAC (Multics).
Ritchie and Thompson began work on their own operating
system, that instead of being targeted to multiple users, would
concentrate on the single user and thus in a play on the name
Multics, it was named UNIX.
1973:
Don Knuth delivers three volumes that turn out to be the “bibles” of
software development.
Contained many of the basic algorithms of the field that became known
as “data structures” and many of the techniques of programming that
would become the basis of “software engineering.”
Computing Before Time: Pre-1980’s
1975:
Edward Roberts, William Yates, and Jim Bybee develop the MITS Altair
8800. The price was $375, contained 256 bytes of memory (not
256k),but had no keyboard, no display, and no auxiliary storage device.
Later, Bill Gates and Paul Allen wrote their first product for the Altair -a BASIC compiler (named after a planet on a Star Trek episode).
Computing Before Time: Pre-1980’s
1976:
Steve Jobs and Steve Wozniak produced the Apple II that was
assembled and complete with its own keyboard and monitor.
Outline
• Computing Before Time: Pre-1980’s
• Computing in the Future: CS Research at OU
• Overview of the School of Computer Science
Wearable Computing
Professor Andrew H. Fagg
• Anytime, anywhere computing and
communication
• Digital assistants for the automated
retrieval and management of
information
• Multimodal interfaces: dynamically
deciding how to communicate with the
user through the display or through
speech
• Interaction with robots and sensor
networks
Research Issues
• Sensor processing and fusion for the
extraction of user context
• Machine learning approaches for tuning
the computer’s interaction with the user
• Distributed agent architectures
• User interface design
School of Computer Science
Adaptation and Learning at All Levels in Intelligent Robots
Professor Dean F. Hougen
Problem: How can teams of robots learn to
improve their behavior at all levels, from lowlevel sensing and acting to high-level team
collaborations?
Importance: Robots can move beyond
factories to more workplaces and homes if
they can learn as they work.
Current Solution: Hard-coded behaviors for
most or all parts of robot behavior.
Weaknesses: Hand-coding is expensive and
resulting behaviors are inefficient .
Solution: Emerging machine-learning
methods, such as memetic learning, combined
with hybrid control.
School of Computer Science
Research Issues
• Informing behaviors at different levels of
newly learned information.
• Learning quickly from a small number of
training examples.
Pipeline Monitoring: Multi-hop Sensor Wireless Network
Professor Sridhar Radhakrishnan
Problem: Develop continuous real-time
monitoring of pipelines to determine leak and
other structural damages.
Solution
Multi-hop wireless sensor network with
appropriate sensor fusion technologies.
Importance: Failure of gas pipelines will result
in both human, property, and environmental
damage.
Current Solution: Low flying aircraft, visual
inspection, and use of pigs for internal
monitoring.
Weaknesses: Expensive, non-continuous
monitoring, fail-first, fix-later solutions.
School of Computer Science
Research Issues
• Communication in the presence of unreliable
sensors
• Power aware strategies
• Optimal sensor configuration and data fusion
Research on molecular/DNA computing
Professor Qi Cheng
Why do we study
molecular/DNA computers?
We are hungry for computing
power in processors and
information density
in memory chips.
Advantages of using molecular/DNA computers
 High information density: One gram of dry DNA can
hold as much information as approximately one trillion
CDs.
 Massive parallelism: DNA replication can easily reach
the rate equivalent to 1000Gbits/sec.
17
 Inexpensive: 10 DNA sequence for $30.
School of Computer Science
Research issues:
Reliability.
Mobile Ad Hoc Database Systems [Funded by NSF]
Professor Le Gruenwald
Problem: To provide a real-time information
management system in a mobile environment
where there are no fixed infrastructures.
Solution
A Real Time Energy-Efficient Database
System for Mobile Ad-Hoc Networks using
single/multi hop communication.
Importance: To be used in time-critical mobile
applications in Battlefield and Disaster
recovery situations like fire fighting, earth
quake rescue operations.
Current Solution: Communication through
walkie-talkies.
Weaknesses: Cannot store and retrieve
information conveniently, is a hassle in hostile
situations, is not secure, does not take energy
and timing constraints into consideration.
School of Computer Science
Research Issues
• Transaction Management
• Data Caching and Data Replication
• Concurrency Control Protocol
• Commit Protocol
• Recovery Subsystem
• Energy and Timing Constraints Handling
TraSH: Seamless Handover in Data and Space
Networks
Problem
Mohammed Atiquzzaman/University of Oklahoma
• Mobile IP can be used for handover in data
and space networks.
• Mobile IP results in packet losses and high
latency during handovers. Other problems
include: inefficient routing, interaction with
security solutions, and deployment issues.
Seamless Handover
Subnet 1
Subnet 2
Internet
Objective
Procedure
• Develop Transport layer Seamless Handover
(TraSH) for next generation data and space
networks based on multihoming.
• Simulation and Linux-based experimental
testbed is being used to test the performance
of TraSH.
• Solve the problem of packet loss, latency
during handovers, security and deployment
issues.
• Performance of TraSH will be compared with
that of Mobile IP for achieving seamless
handover.
Real Software Engineering
Professor Rex Page
Problem: Apply principles of science and
mathematics (especially logic) in the design
and construction of software.
Solution
Apply mechanized logic, using products like
ACL2, Coq, and HOL, in practical, software
design and development projects.
Importance: “Software engineering” has,
here-to-for, had little to do with engineering,
according to the dictionary definition of the
term. As a result, software products are
usually delivered way late, if at all, and in bad
repair. Real engineering may improve this
state of affairs.
Current Solution: Hack ‘til it seems to work
(or you’re too brain-fried to care, or your boss
tells you to stop).
Weaknesses: Expensive software projects,
scheduling nightmares, and bad software.
School of Computer Science
Research Issues
• Applying mechanized logic in small projects
• Scaling mechanized logic to larger projects
• Measuring effectiveness of mechanizedlogic approaches to software engineering
Project: Abstraction and Structure for Software Engineers
Professor Deborah A. Trytten
Problem: Integrating proper software
engineering practices into lower division
computer science textbooks.
Importance: Many CS students will go on to
practice software engineering professionally.
We need to build these skills in our students
as early and as often as possible.
Current Solution: Students learn some
software engineering practices in lower
division courses that are improved in the
senior capstone course.
Weaknesses: Students spend years
developing bad software engineering habits
that have to be changed in the capstone
sequence, or on the job.
School of Computer Science
Solution
I am writing a textbook for McGraw-Hill that
will make it possible for students with as
little as one semester of programming
experience to use light weight software
engineering processes that are designed to
model processes used industrially.
Research Issues
• Selection of relevant software processes
• Selection of relevant software tools,
particularly those that are legally available
free of charge to students
• Development of unique case studies to
demonstrate the processes
• Development of case studies that are
socially relevant
• Placement of material relative to other
common computer science classes, such as
data structures
Outline
• Computing Before Time: Pre-1980’s
• Computing in the Future: CS Research at OU
• Overview of the School of Computer Science
• Overview of the School of Computer Science
Brief History
1972:
CS began under direct Provost supervision
1976:
CS combined with EE to create
School of EE&CS
1991:
Task force recommends forming separate
School of CS
1992:
School of CS formed with eight faculty
2004:
School of CS has fifteen tenured/tenuretrack faculty
• Overview of the School of Computer Science
Strategic Planning
•
All CoE schools devise strategic plans in support
of a common vision:
To produce graduates sought first …
•
Strategic plan involves four basic strategies:
1. Innovation in education
2. Expanding traditional research role of faculty
3. Attracting excellent students
4. Emphasis on Interdisciplinary Research
CS at OU - Undergraduate Program
CS-administered degrees and programs:
•
•
•
BS in CS
Minor in CS
Accelerated BS/MS dual-degree programs
CS-supported degrees and programs
•
•
•
Computer Engineering
IE degree with IT option
Math degree with CS option
CS at OU - Undergraduate Program
BS in CS
• Accredited by CSAB in 1997
• Reaccredited by ABET in 2004
• Only accredited CS program from public institution
in Oklahoma
• Curriculum newly revised
• Enrollment management policy enforced in 1999 to
limit rapidly growing enrollment (2.8 GPA required
to take upper division courses)
CS at OU - Undergraduate Program
Required Math and Science Courses for BS in CS
• Math 1823 Calculus I
• Math 2423 Calculus II
• Math 2433 Calculus III
• Math 2443 Calculus IV
• Math 3113 Differential Equations
• Math 3333 Linear Algebra
• *Math 4753 Applied Statistics (or IE 3293)
• *Math 4073 Numerical Analysis (or AME 3723)
• Chem 1315 General Chemistry I
• Phys 2514 General Physics
• Chem 1415 General Chemistry II or Phys 2424 General Physics
* By taking Math versions of Applied Statistics and Numerical Analysis,
CS students earn a minor in Mathematics
CS at OU - Undergraduate Program
Required CS Courses for BS in CS
• CS 1323 Intro. to Computer Programming
• CS 1813 Discrete Mathematics
• CS 2334 Programming Structures and Abstractions
• CS 2413 Data Structures
• CS 2613 Computer Organization
• CS 3053 Graphical User Interfaces
• CS 3113 Introduction to Operating Systems
• CS 3823 Theory of Computation
• CS 4263 Software Engineering I
• CS 4273 Software Engineering II
• CS 4313 Programming Languages
• CS 4413 Algorithm Analysis
Highlighted are typical courses used to satisfy the requirements for BS in
CpE, BS in IE (IT Option), BS in Math (Comp. Opt.), and Minor in CS
CS at OU - Undergraduate Program
Elective CS Courses for BS in CS
(Must take at least three from the following list)
• C S 4013 Artificial Intelligence
• C S 4023 Introduction to Intelligent Robotics
• C S 4053 Computer Graphics
• C S 4113 Operating Systems Theory
• C S 4133 Data Networks
• C S 4323 Compiler Construction
• C S 4433 Computation Methods in Discrete Optimization
• C S 4513 Database Management
• C S 4613 Computer Architecture
• C S 4743 Scientific Computing I
• C S 4973 Cyber Forensics
CS at OU - Undergraduate Program
Math 1523
Prerequisite Structure
for required CS Courses
CS 1323
Math 1823
CS 2334
CS 1813
ECE 2213
CS 2413
CS 4413
CS 3053 CS 3823
CS 4433 CS 4013
Math 2433
CS 3113
CS 4613
CS 4513 CS 4323 CS 4313 CS 4023 CS 4263
CS 4133
Math 3333 ENGR 3723*
CS 4053
*
+
CS 2613
CS 4743
Math 4073 may be used in place of ENGR 3723
Math 4753 or Math 4743 may be used in place of ENGR 3293
CS 4273
Key
Required CS
Elective CS
Outside Prerequisites
+
ENGR 3293
CS 4113
CS at OU - Undergraduate Program
CS Students
•
•
•
•
•
Student enrollment in the BS program grew from about
250 in 1995 up to 350 in 2001.
Now stabilized at ~ 300.
Number of women in program:18.6% (13 year average)
12% national scholars; 23% in honors program; 24%
have ACT score of 30 or greater
ACM programming team competition
• Top two regional teams (of 70) go to World Finals
• OU often makes World Finals (e.g., we did 2000)
Graduates are sought after by top national and regional
companies
CS at OU - Research
Research Areas:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Bioinformatics
Computer Architecture
Cryptography
Database Systems
DNA Computing
Education
Embedded Computing
High Performance Computing
Human Computer Interface
Intelligent Systems and Robotics
Networking and Telecommunications
Scientific Computing
Software Engineering
Security and Computer Forensics
Theory
CS at OU - Faculty
Teaching Mission
•
•
•
•
Currently 15 tenure-track or tenured faculty
Employ two part-time instructors
Employ about fifteen TAs (plus about 30 RAs)
Strong commitment to teaching – numerous awards
Scholarly and Creative Activity:
•
•
•
About 4 scholarly publications annually per faculty
member
Externally funded research expenditures increased by
600% in five years (from $120K to over $1M)
Two IEEE Fellows, one ACM Fellow, one GLC Professor,
one Hitachi Chair, one Presidential Prof
CS at OU - Summary
•
•
•
•
•
•
Excellent undergraduate and graduate
students/programs
Have an excellent record of scholarship and
professional service
A number of senior-level faculty have excellent national
visibility
Strongest program in the state; well-respected by Big12 peers
Able to recruit top junior faculty from top institutions
Computer Science at OU has all the ingredients to
continue to rise to a level of national prominence
Join the Excitement!
CS Students DO Graduate!
Questions?
Download