1 / 17

What's Next in Computer Science? Questions, Trends, and Predictions

Explore the fundamental questions studied in Computer Science, including programming languages, system software, network software, information systems, and more. Discover where the field is headed with advancements in hardware, software engineering, artificial intelligence, and business applications. Gain insights into the future of computer technology and find out how we can improve software development processes.

hamrick
Download Presentation

What's Next in Computer Science? Questions, Trends, and Predictions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS145 Lecture 24 What’s next?

  2. What’s next? • What questions does Computer Science study? • Where is programming and Computer Science headed? • With special emphasis on software

  3. Basic Questions Programming Languages System Software Network Software Middleware Information Systems Scientific Computing Embedded and Real-Time Systems Graphics Artificial Intelligence Software Engineering What questions do we study

  4. Basic Questions • Data structures for storing and representing different kinds of data • Some kinds of structures • Maps (map one type of object to another) • Trees, Graphs • Sets • Analysis of Algorithms • Time and space efficiency of algorithms and data structures • Computer Architectures • How to make computers work better with various kinds of software • Better = Faster, Cheaper, Less Power Consumption, etc.

  5. Programming Languages • Imperative Languages • Ada, C, C++, Java, C#, … • Scripting Languages • Perl, Python, Ruby, JavaScript, … • OO Languages • C++, Java, C#, Python, … • LISP, Scheme • Functional • Haskell, CAML, …

  6. System Software • System Software: Software that supports other kinds of software • As opposed to application software: Software that faces the user • Some kinds of system software: • Operating systems • Including File Systems • Compilers and Virtual Machines for Programming Languages • Database Management Systems

  7. Network Software • Supports communication between systems and applications • Definition and Implementation of communication protocols • Interesting protocols • TCP/IP • HTTP (as opposed to HTML) • FTP • SSL

  8. Middleware • Software that sits between systems and applications • Typically systems (i.e. support) type software with more of an application focus • Some examples • Software for integrating different applications • Model Driven Architecture • Build your integration software by drawing the right kinds of diagrams

  9. Information Systems • Usually systems that support the operation of a business • More generally: Systems that store and manipulate business kinds of information • Some interesting areas: • Data Base (the organization of data, not the underlying software) • Business applications • ERP, CRS, … • Business rules • Just describe the rules and the necessary software is automatically generated

  10. Scientific Computing • Large numeric computations for science and engineering applications • Issues • Efficient algorithms for large computations • Efficient coordination of large computing resources • Some examples • Predict the weather or climate • Wind tunnel • Simulate nuclear weapons • Protein folding • Driver for much of the work on Clustered Systems

  11. Embedded and Real-Time Systems • Control operation of machines, equipment, etc. • Some issues • Operating systems supporting real-time (deadline) processing • Examples • Fly an airplane • Drive a car • Run a factory • Record a television program • Run the graphics card in your computer

  12. Graphics • Generate realistic graphics (pictures, video) from digital descriptions • Issues • Understanding how light interacts with physical objects • Efficient algorithms • Examples • Shrek, Gollum, Polar Express • Cleaning up old movies

  13. Artificial Intelligence • Software and systems that behaves as if they were intelligent • This is a large area with many sub areas: • Rule based systems • Neural Network • Natural language processing • Evolutionary algorithms • Machine Learning • Robotics • Game playing • Proving Software Correct • And more …

  14. Software Engineering • How to we go about building software? • Areas of interest • Requirements, Requirements Management • Architecture and Design • Testing • Software Methodology and Process • Diagramming Software (e.g. UML) • Managing Building Software • Costing and Scheduling of Software Development

  15. Where are Computers headed? • How good is your crystal ball? • Near-term growth in hardware capability is predictable • Right now no “killer aps” on the horizon

  16. Where are Computers headed?(My predictions) • Hardware • More parallelism in hardware (Multi-core systems) • Address heat/power consumption limits • Programming languages and systems • Try to make software developers more efficient • Have the software work harder to make developers job easier • Artificial Intelligence • More “intelligent” systems • Example of current work: Spam filters • Near-term focus: Robotics

  17. My predictions (continued) • Business applications • Standard “easily tailorable” applications • All areas • Make better use of increasing processing power and storage capacity • Software Engineering • “Software is always late and over budget” • Can we fix this?

More Related