Download presentation
Presentation is loading. Please wait.
Published byAlexander Lesley Richardson Modified over 9 years ago
1
1 CS145 Lecture 24 What’s next?
2
2 What questions does Computer Science study? Where is programming and Computer Science headed? –With special emphasis on software
3
3 What questions do we study Basic Questions Programming Languages System Software Network Software Middleware Information Systems Scientific Computing Embedded and Real-Time Systems Graphics Artificial Intelligence Software Engineering
4
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.