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