Published on January 11, 2008
Slide1: 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 Slide2: Outline Computing Before Time: Pre-1980’s Computing in the Future: CS Research at OU Overview of the School of Computer Science Slide3: 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  IEEE Computer Society Web Site on the “History of Computing,” http://www.computer.org/history/  E. C. Hall, Journey to the Moon: History of the Apollo Guidance Computer, AIAA, Reston VA, 1996. Slide4: 1622: The slide rule (originally circular) based on Napier's logarithms Computing Before Time: Pre-1980’s Slide5: 1642: Blaise Pascal created an adding machine with automatic carries from one position to the next Computing Before Time: Pre-1980’s Slide6: 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 Slide7: Babbage’s Difference Engine (1822) Computing Before Time: Pre-1980’s Slide8: 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 Slide9: 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 Slide10: 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 Slide11: 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 Slide12: The first computer bug (Hopper glued it into her logbook). Computing Before Time: Pre-1980’s Slide13: 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 Slide14: 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 Slide15: Photo shows Eckert on left and Goldstine on right, holding an arithmetic unit from the ENIAC. Computing Before Time: Pre-1980’s Slide16: Photo of the ENIAC. Computing Before Time: Pre-1980’s Slide17: 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 Slide18: 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 Slide19: 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 Slide20: Functional characteristics of the Apollo Computer Computing Before Time: Pre-1980’s Slide21: Early bench implementations of the Apollo Computer Computing Before Time: Pre-1980’s Slide22: 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 Slide23: The “DSKY” of the Apollo computer (DSKY = Display and Keyboard) Computing Before Time: Pre-1980’s Slide24: Command module with DSKY circled. Computing Before Time: Pre-1980’s Slide25: 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 Slide26: 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 Slide27: 1976: Steve Jobs and Steve Wozniak produced the Apple II that was assembled and complete with its own keyboard and monitor. Computing Before Time: Pre-1980’s Slide28: Outline Computing Before Time: Pre-1980’s Computing in the Future: CS Research at OU Overview of the School of Computer Science Slide29: 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 Slide30: 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 Slide31: 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. 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. Solution Multi-hop wireless sensor network with appropriate sensor fusion technologies. Research Issues Communication in the presence of unreliable sensors Power aware strategies Optimal sensor configuration and data fusion School of Computer Science Slide33: Research on molecular/DNA computing Professor Qi Cheng 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 Why do we study molecular/DNA computers? We are hungry for computing power in processors and information density in memory chips. Slide34: 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. 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. Solution A Real Time Energy-Efficient Database System for Mobile Ad-Hoc Networks using single/multi hop communication. 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: TraSH: Seamless Handover in Data and Space Networks 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. Mohammed Atiquzzaman/University of Oklahoma Problem Procedure 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 Primary SCTP Secondary SCTP Subnet 1 Subnet 2 Internet Objective Slide36: Real Software Engineering Professor Rex Page 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. Solution Apply mechanized logic, using products like ACL2, Coq, and HOL, in practical, software design and development projects. 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 Slide37: 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. 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 School of Computer Science Slide38: Outline Computing Before Time: Pre-1980’s Computing in the Future: CS Research at OU Overview of the School of Computer Science Slide39: 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 Slide40: 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 Overview of the School of Computer Science Slide41: 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 Slide42: 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) Slide43: 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 Slide44: 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 Slide45: 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 Slide46: CS at OU - Undergraduate Program Prerequisite Structure for required CS Courses Slide47: 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 Slide48: 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 Slide49: 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 Slide50: 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! Slide51: CS Students DO Graduate! Questions?