510 likes | 701 Views
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
E N D
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 low-level 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. Research Issues • Informing behaviors at different levels of newly learned information. • Learning quickly from a small number of training examples. School of Computer Science
Pipeline Monitoring: Multi-hop Sensor Wireless Network Professor Sridhar Radhakrishnan Solution Multi-hop wireless sensor network with appropriate sensor fusion technologies. Problem: Develop continuous real-time monitoring of pipelines to determine leak and other structural damages. 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. • Research Issues • Communication in the presence of unreliable sensors • Power aware strategies • Optimal sensor configuration and data fusion School of Computer Science
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. • Inexpensive: 1017 DNA sequence for $30. • Research issues: • Reliability. School of Computer Science
Mobile Ad Hoc Database Systems [Funded by NSF] Professor Le Gruenwald Solution A Real Time Energy-Efficient Database System for Mobile Ad-Hoc Networks using single/multi hop communication. Problem: To provide a real-time information management system in a mobile environment where there are no fixed infrastructures. 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. • Research Issues • Transaction Management • Data Caching and Data Replication • Concurrency Control Protocol • Commit Protocol • Recovery Subsystem • Energy and Timing Constraints Handling School of Computer Science
TraSH: Seamless Handover in Data and Space Networks Mohammed Atiquzzaman/University of Oklahoma Problem • 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. Secondary SCTP Primary SCTP Seamless Handover Subnet 1 Subnet 2 Internet Procedure Objective • Simulation and Linux-based experimental testbed is being used to test the performance of TraSH. • Performance of TraSH will be compared with that of Mobile IP for achieving seamless handover. • Develop Transport layer Seamless Handover (TraSH) for next generation data and space networks based on multihoming. • Solve the problem of packet loss, latency during handovers, security and deployment issues.
Real Software Engineering Professor Rex Page Solution Apply mechanized logic, using products like ACL2, Coq, and HOL, in practical, software design and development projects. Problem: Apply principles of science and mathematics (especially logic) in the design and construction of software. 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. • Research Issues • Applying mechanized logic in small projects • Scaling mechanized logic to larger projects • Measuring effectiveness of mechanized-logic approaches to software engineering School of Computer Science
Project: Abstraction and Structure for Software Engineers Professor Deborah A. Trytten 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. 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. • 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 School of Computer Science
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/tenure- track 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: • Innovation in education • Expanding traditional research role of faculty • Attracting excellent students • 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
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 • 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
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 Prerequisite Structure for required CS Courses
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 Big-12 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!