College of Computer Sciences and Engineering Computer Science & Engineering:

advertisement
College of Computer Sciences
and Engineering
Computer Science & Engineering:
Scope and areas of specialization
College of Computer Sciences and Engineering
Objective
In view of the Computer Science & Engineering area as it
stands world wide and as it is in KFUPM, our objective today
is to explore the following:
1. Current areas (professions) of high demand.
2. Emerging areas (professions) of potential future demand
or challenges.
3. Declining areas of interest (market perspective)
4. How to adjust the current programs (degrees) in content
and/or in structure to meet future needs and challenges?
Outline
1.
2.
3.
4.
5.
Broad Definition of Computer Science & Engineering
Areas of specialization
Relation to other fields
Computer science education
Branches of Computer Science
 Software Engineering
 Computer Engineering
 Informatics
 Computer security
 Computer networking
6.
CCSE structure and programs
7.
Points for Discussion
3
Broad Definition of Computer Science
(Wikipedia)
• Computer science (or computing science) is the study of the
theoretical foundations of information and computation, and of
practical techniques for their implementation and application in
computer systems.
• The fundamental question underlying computer science is, "What
can be (efficiently) automated?
• As a discipline, computer science spans a range of topics from
theoretical studies of algorithms and the limits of computation to the
practical issues of implementing computing systems in hardware
and software.
4
• The Computer Sciences Accreditation Board (CSAB) identifies
four crucial areas to the discipline of computer science:
–
–
–
–
•
theory of computation,
algorithms and data structures,
programming methodology and languages, and
computer elements and architecture.
In addition to these four areas, CSAB also identifies the following fields as being
important areas of computer science
–
–
–
–
–
–
–
–
–
–
software engineering
artificial intelligence
computer networking and communication
database systems
parallel computation
distributed computation
computer-human interaction
computer graphics
operating systems
numerical and symbolic computation.
CSAB is made up of representatives of the Association for Computing Machinery (ACM), the Institute of Electrical and Electronics Engineers Computer Society, and the
Association for Information Systems)
5
•
Theory of computation
–
–
•
Algorithms and data structures
–
–
–
•
Compilers
Programming languages
Computer elements and architecture
–
–
–
•
Analysis of algorithms
Algorithms
Data structures
Programming methodology and languages
–
–
•
Computability theory: what can be computed?
Computational complexity theory : what amount of resources are required to perform those
computations?
Digital logic
Microarchitecture
Multiprocessing
Numerical and symbolic computation
–
–
–
–
–
–
–
Bioinformatics
Cognitive Science
Computational chemistry
Computational neuroscience
Computational physics
Numerical algorithms
Symbolic mathematics
6
Theoretical computer science
• The broader field of theoretical computer science encompasses both
the classical theory of computation and a wide range of other topics
that focus on the more abstract, logical, and mathematical aspects
of computing. Work in this field is often distinguished by its
emphasis on mathematical technique and rigor.
• The field of theoretical computer science is interpreted
broadly so as to include:
– algorithms, data structures, computational complexity theory,
distributed computation, parallel computation, VLSI, machine
learning, computational biology, computational geometry,
information theory, cryptography, quantum computation,
computational number theory and algebra, program semantics
and verification, automata theory, and the study of randomness.
7
Applied Computer Science
• The following disciplines are often studied from a more theoretical,
computer science viewpoint, as well as from a more practical,
engineering perspective.
–
–
–
–
–
–
–
–
–
–
Operating systems
Computer networks
Computer graphics
Computer vision
Databases
Computer security
Artificial intelligence
Robotics
Human-computer interaction
Ubiquitous computing
8
Relationship with other fields
• Despite its name, a significant amount of computer science does not
involve the study of computers themselves. Because of this, several
alternative names have been proposed. Certain departments of
major universities prefer the term computing science, to emphasize
precisely that difference.
• Also, in the early days of computing, a number of terms for the
practitioners of the field of computing were suggested such as
computics has also been suggested and Informatik.
• The design and deployment of computers and computer systems is
generally considered the province of disciplines other than computer
science. For example, the study of computer hardware is usually
considered part of computer engineering, while the study of
commercial computer systems and their deployment is often called
information technology or information systems.
9
Computer Science Education
• Some universities teach computer science as a theoretical study of
computation and algorithmic reasoning. These programs often
feature the theory of computation, analysis of algorithms, formal
methods, concurrency theory, databases, computer graphics and
systems analysis, among others.
• Other colleges and universities, as well as secondary schools and
vocational programs that teach computer science, emphasize the
practice of advanced programming rather than the theory of
algorithms and computation in their computer science curricula.
Such curricula tend to focus on those skills that are important to
workers entering the software industry.
• The practical aspects of computer programming are often referred to
as software engineering. However, there is a lot of disagreement
over the meaning of the term, and whether or not it is the same thing
as programming.
10
Software Engineering
•
Software engineering is the application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software, and the study of these approaches; that is, the application of
engineering to software.
•
The term software engineering first appeared in the 1968 and has continued
as a profession and field of study dedicated to creating software that is of
higher quality, more affordable, maintainable, and quicker to build.
•
Software development is a term sometimes preferred by practitioners in the
industry who view software engineering as too heavy-handed and
constrictive to the malleable process of creating software.
•
Yet, in spite of its youth as a profession, the field's future looks bright as
Money Magazine and Salary.com rated software engineering as the best job
in America in 2006.
11
Computer Science vs. Software Engineering
The relationship between computer science and software
engineering is a subject of dispute.
• One view: the principal focus of computer science is
studying the properties of computation in general, while
the principal focus of software engineering is the design
of specific computations to achieve practical goals,
making the two separate but complementary disciplines.
• The academic, political, and funding aspects of computer
science tend to depend on whether a department formed
with a mathematical emphasis or with an engineering
emphasis.
12
Computer engineering
•
Computer Engineering is a discipline that combines both elements,
Electrical Engineering and Computer Science.
•
Computer engineers usually have training in electrical engineering, software
design and hardware-software integration instead of only software
engineering or electrical engineering.
•
Computer engineers are involved in many aspects of computing, from the
design of individual microprocessors, personal computers, and
supercomputers, to circuit design. This field of engineering not only focuses
on how computer systems themselves work, but also how they integrate
into the larger picture.
•
Usual tasks involving computer engineers include writing software and
firmware for embedded microcontrollers, designing VLSI chips, designing
analog sensors, designing mixed signal circuit boards, and designing
operating systems. Computer engineers are also suited for robotics
research, which relies heavily on using digital systems to control and
monitor electrical systems like motors, communications, and sensors.
13
Computer engineering as an academic discipline
• The first accredited computer engineering degree program in the
United States was established at Case Western Reserve University
in 1971; as of October 2004 there were 170 ABET-accredited
computer engineering programs in the US.
• Due to increasing job requirements for engineers, who can design
and manage all forms of computer systems used in industry, some
tertiary institutions around the world offer a bachelor's degree
generally called computer engineering.
• Both computer engineering and electronic engineering programs
include analog and digital circuit design in their curricula. As with
most engineering disciplines, having a sound knowledge of
mathematics and sciences is necessary for computer engineers.
14
•
The joint IEEE/ACM Curriculum Guidelines for Undergraduate Degree Programs in
Computer Engineering defines the core knowledge areas of computer engineering
as:
– Algorithms
– Computer architecture and organization
– Computer systems engineering
– Circuits and signals
– Database systems
– Digital logic
– Digital signal processing
– Electronics
– Embedded systems
– Human-computer interaction
– Interactive Systems Engineering
– Operating systems
– Programming fundamentals
– Social and Professional issues
– Software engineering
– VLSI design and fabrication
15
Informatics
•
Informatics is the science of information, the practice of information processing, and
the engineering of information systems.
•
Informatics studies the structure, algorithms, behavior, and interactions of natural and
artificial systems that store, process, access and communicate information. It also
include the study of the social impact of information technologies.
•
It develops its own conceptual and theoretical foundations and utilizes foundations
developed in other fields.
•
In some situations, information science and informatics are used interchangeably.
However, some consider information science to be a sub area of the more general
field of informatics.
•
Used as a compound, in conjunction with the name of a discipline, as in medical
informatics, bioinformatics, etc., it denotes the specialization of informatics to the
management and processing of data, information and knowledge in the named
discipline, and the incorporation of informatic concepts and theories to enrich the
other discipline; it has a similar relationship to library science.
16
Computer networking
• Computer networking is the engineering discipline
concerned with communication between computer
systems or devices.
• Computer networking is sometimes considered a subdiscipline of telecommunications, computer science,
information technology and/or computer engineering.
Computer networks rely heavily upon the theoretical and
practical application of these scientific and engineering
disciplines.
• A computer network is any set of computers or devices
connected to each other with the ability to exchange
data.
17
Computer security
• Computer security is a branch of technology known as
information security as applied to computers.
• Computer security
– Secure operating systems
– Security architecture
– Security by design (This led to further work on computer security
that prefigured modern security engineering).
– Secure coding
18
College of Computer Sciences and Engineering
Structure
College of Computer Sciences and Engineering
Systems Engineering
BS in
Automation
& Control
BS in Industrial &
Systems
Engineering
Information and
Computer Science
Computer Engineering
BS in
Computer
Engineering
MS in
Computer
Engineering
BS in Software
Engineering
MS in
Computer
Networks
BS in
Computer
Science
MS in Information
and Computer
Science
PhD in Computer
Science and
Engineering
19
Points for Discussion
Current status
How does the local market relate to these
areas? What is the need in terms of areas
and sub-areas? What are the challenges
we are facing?
20
Points for Discussion
Future Trends
How about the future? Is the current needs
are likely to change? What are the future
challenges?
21
Points for Discussion
Plans and Actions
What should we do to match future needs?
Do we need to add/eliminate programs?
22
Download