Download What comes next? - WWU Computer Science Faculty Web Pages

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Green Dam Youth Escort wikipedia , lookup

Transcript
CS145 Lecture 24
What’s next?
1
What’s next?
 What
questions does Computer
Science study?
 Where is programming and
Computer Science headed?
– With special emphasis on software
2
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

3
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.
4
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, …
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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 …
13
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
14
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
15
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
16
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?
17