What do Computer Scientists and Engineers do?

Download Report

Transcript What do Computer Scientists and Engineers do?

What do Computer
Scientists and Engineers
do?
CS101 Regular Lecture, Week 10
Computer Science

The significance of Computer Science has little to do
with Computers!
– Computer revolution is a revolution in the way we think, and in the way
we express what we think

Computer Science is about “Computation”
– Computer Science provides a framework of dealing precisely with “how
to”
– Computer Scientist discover ‘algorithms’

Computer Science is not ‘Programming’
– We use programming languages to convey steps for solving a problem
to a computer
– Crux of a Computer Scientist’s work is time spent in discovering these
steps or algorithms
Algorithms
An algorithm procedure or
formula for solving a
problem
 Example: Adding two
positive integers a and b

1.
2.
3.
4.
If b = 0, return a
Increment a by 1
Decrement b by 1
Go to Step 1
http://en.wikipedia.org/wiki/Algorithm
Software Engineering
Software engineering is concerned with the
conception, development and verification of a
software system
 Identifying, Defining, Realizing, Verifying
the required characteristics of software
 Some important software characteristics:

– functionality, reliability, maintainability, availability,
testability, ease-of-use, portability

Important part of the work of a software
engineer is preparing design and technical
specifications
Software Development Process

Requirement Analysis
– Eliciting, Analyzing and Recording of requirements through interviews, focus
groups, prototyping,
– Business intelligence needs to be captured
– Sometimes also involves Business Process Re-engineering
– Results in Software Requirements Specification (SRS) document

Specification
– Precisely describing the software to be written

Software Architecture
– An abstract representation of the system in terms of modules

Implementation
– Reducing a design to code

Testing
– Also referred to as Quality Assurance (QA)
– Often conducted by a separate team
– Black box and White Box Methodologies

Documentation
– often overlooked, but extremely important


Software Training and Support
Maintenance
– Very important component. About 2/3rd of all software engineering work is
maintenance
Databases and Information
Systems

Database: Collection of records stored in a computer in a systematic
way
– Collection of records, each record having several fields
– Database can be queried to extract relevant data

Relational Model:
– Represents all information in terms of multiple tables that are related to
each other


Database Management System (DBMS), often simply called
‘database’, is the software that provides management of data
A Database Transaction:
–
–
–
–

a unit of interaction with DBMS
May involve several queries
E.g. a debit/credit transaction on an ATM
Simultaneous transactions can run into concurrency problems and need
to be managed properly
Information Systems may have one or more databases at their core
– Enterprise Resource Planning (ERP) systems integrate data and
processes of an organization into a single system
US Department of Labor, Bureau of Labor Statistics:
Job Outlook for Next 10 Years (2004-2014)
[http://www.bls.gov/oco/ocos258.htm#outlook]
Job Description
Expected Growth
through 2014
Computer and
Information Systems
Managers
Faster than average
Computer Programmers
(2 year degrees)
More slowly than average
Computer Software
Engineers
As fast as Average
Computer Support
Specialists
Faster than Average
System Administrators
Much faster than average
Computer Systems
Analysts
Much faster than average
Computer Scientists and
Database Administrators
Much faster than average
Key Areas for the next
10 years:
 Network Management
 Cyber Security
 Electronic Commerce
 Internet technologies
 Mobile Applications
Statement
Projected
Increase
much faster than
average
> 27%
Faster than average
18 – 26 %
As fast as average
9 – 17 %
More slowly than
average
0–8%
Decline
Decrease by any
amount
Jobs in Computer Science

Computer and Information Systems Managers
– plan, coordinate, and direct research and facilitate the
computer-related activities of firms
– They direct the work of systems analysts, computer
programmers, support specialists, and other
computer-related workers
– Chief Technology Officers, MIS directors, Project
Managers, LAN/WAN managers
– Need strong communication and management skills
http://www.bls.gov/oco/ocos258.htm
Jobs in Computer Science

Computer Programmers
– People who actually write and maintain the code
– They code according to specifications prepared by software
engineers and system analysts

Software Engineers
– analyze users’ needs and design, construct, test, and maintain
computer applications software or systems
– Computer Applications Software Engineers
– Computer Systems Software Engineers

Computer Systems Analysts
– Analyze the needs of an organization with regards to software,
and prepare software requirement specifications (SRS)
– Plan and develop new computer systems
Jobs in Computer Science

Computer Support Specialists and System
Administrators
– Provide technical support to keep an organizations
computer systems running

Computer Scientists:
– Theoreticians, inventors, researchers

Database Administrators
– Work with DBMS to determine ways to organize and
store data

Network Administrators
– Design and maintain networks, deal with security
issues and constant threats from hackers
Computer Engineering


A discipline that combines both electrical engineering and computer
science
They may be considered as electrical engineers with more training
in computer hardware and software, but lesser training in some
areas of EE, like device physics, or power electronics
– Computer Programming + Hardware
– A lot of programming that a computer engineer may do may be in lowlevel languages like assembly


Computer Engineers design computer hardware, and systems
Areas of work: Microprocessor design, Embedded systems,
interfacing etc.
– Embedded Systems: a special purpose system in which the computer is
completely encapsulated in the device it controls
– Interfacing: Communication boundary between computer and other
devices

Examples: DSP (sound), genome sequencing (chemistry), Industrial
Process Control, Motorway example, CNC Machining, VLSI design,
FPGA systems, robotics
An embedded System
http://en.wikipedia.org/wiki/Image:ADSL_modem_router_internals_labeled.jpg
References
http://en.wikipedia.org/wiki/Algorithm
 http://en.wikipedia.org/wiki/Software_dev
elopment_process
 http://en.wikipedia.org/wiki/Software_req
uirements_analysis
