What do Computer Scientists and Engineers do?

14
What do Computer What do Computer Scientists and Scientists and Engineers do? Engineers do? CS101 Regular Lecture, CS101 Regular Lecture, Week 10 Week 10

description

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 - PowerPoint PPT Presentation

Transcript of What do Computer Scientists and Engineers do?

What do Computer What do Computer Scientists and Engineers Scientists and Engineers

do?do?

CS101 Regular Lecture, Week CS101 Regular Lecture, Week 1010

Computer ScienceComputer Science

The significance of Computer Science has little to The significance of Computer Science has little to do with Computers!do with Computers!– Computer revolution is a revolution in the way we think, and in Computer revolution is a revolution in the way we think, and in

the way we express what we thinkthe way we express what we think

Computer Science is about “Computation”Computer Science is about “Computation”– Computer Science provides a framework of dealing precisely Computer Science provides a framework of dealing precisely

with “how to”with “how to”– Computer Scientist discover ‘algorithms’Computer Scientist discover ‘algorithms’

Computer Science is not ‘Programming’Computer Science is not ‘Programming’– We use programming languages to convey steps for solving a We use programming languages to convey steps for solving a

problem to a computerproblem to a computer– Crux of a Computer Scientist’s work is time spent in Crux of a Computer Scientist’s work is time spent in

discovering these steps or discovering these steps or algorithmsalgorithms

AlgorithmsAlgorithms

An algorithm procedure An algorithm procedure or formula for solving a or formula for solving a problemproblem

Example: Adding two Example: Adding two positive integers positive integers aa and and bb1.1. If If b b = 0, return = 0, return aa

2.2. Increment Increment aa by 1 by 1

3.3. Decrement Decrement bb by 1 by 1

4.4. Go to Step 1Go to Step 1 http://en.wikipedia.org/wiki/Algorithm

Software EngineeringSoftware Engineering Software engineering is concerned with Software engineering is concerned with

the conception, development and the conception, development and verification of a software system verification of a software system

Identifying, Defining, Realizing, Identifying, Defining, Realizing, VerifyingVerifying the required characteristics of the required characteristics of softwaresoftware

Some important software characteristics:Some important software characteristics:– functionality, reliability, maintainability, functionality, reliability, maintainability,

availability, testability, ease-of-use, portability availability, testability, ease-of-use, portability Important part of the work of a software Important part of the work of a software

engineer is preparing design and technical engineer is preparing design and technical specificationsspecifications

Software Development Software Development ProcessProcess Requirement AnalysisRequirement Analysis

– Eliciting, Analyzing and Recording of requirements through interviews, Eliciting, Analyzing and Recording of requirements through interviews, focus groups, prototyping, focus groups, prototyping,

– Business intelligence needs to be capturedBusiness intelligence needs to be captured– Sometimes also involves Business Process Re-engineeringSometimes also involves Business Process Re-engineering– Results in Software Requirements Specification (SRS) documentResults in Software Requirements Specification (SRS) document

SpecificationSpecification– Precisely describing the software to be writtenPrecisely describing the software to be written

Software ArchitectureSoftware Architecture– An abstract representation of the system in terms of modulesAn abstract representation of the system in terms of modules

ImplementationImplementation– Reducing a design to codeReducing a design to code

TestingTesting– Also referred to as Quality Assurance (QA)Also referred to as Quality Assurance (QA)– Often conducted by a separate teamOften conducted by a separate team– Black box and White Box MethodologiesBlack box and White Box Methodologies

Documentation Documentation – often overlooked, but extremely importantoften overlooked, but extremely important

Software Training and SupportSoftware Training and Support MaintenanceMaintenance

– Very important component. About 2/3Very important component. About 2/3rdrd of all software engineering of all software engineering work is maintenancework is maintenance

Databases and Information Databases and Information SystemsSystems

Database: Collection of records stored in a computer in a Database: Collection of records stored in a computer in a systematic waysystematic way– Collection of records, each record having several fieldsCollection of records, each record having several fields– Database can be Database can be queriedqueried to extract relevant data to extract relevant data

Relational Model:Relational Model:– Represents all information in terms of multiple tables that are Represents all information in terms of multiple tables that are

related to each otherrelated to each other Database Management System (DBMS), often simply called Database Management System (DBMS), often simply called

‘database’, is the software that provides management of ‘database’, is the software that provides management of datadata

A Database Transaction: A Database Transaction: – a unit of interaction with DBMSa unit of interaction with DBMS– May involve several queriesMay involve several queries– E.g. a debit/credit transaction on an ATME.g. a debit/credit transaction on an ATM– Simultaneous transactions can run into concurrency problems Simultaneous transactions can run into concurrency problems

and need to be managed properlyand need to be managed properly Information Systems may have one or more databases at Information Systems may have one or more databases at

their coretheir core– Enterprise Resource Planning (ERP) systems integrate data and Enterprise Resource Planning (ERP) systems integrate data and

processes of an organization into a single systemprocesses of an organization into a single system

US Department of Labor, Bureau of Labor Statistics: US Department of Labor, Bureau of Labor Statistics: Job Outlook for Next 10 Years (2004-2014)Job Outlook for Next 10 Years (2004-2014)

Job DescriptionJob Description Expected Growth Expected Growth through 2014through 2014

Computer and Computer and Information Systems Information Systems ManagersManagers

Faster than averageFaster than average

Computer Computer Programmers (2 year Programmers (2 year degrees)degrees)

More slowly than More slowly than averageaverage

Computer Software Computer Software EngineersEngineers

As fast as AverageAs fast as Average

Computer Support Computer Support SpecialistsSpecialists

Faster than AverageFaster than Average

System AdministratorsSystem Administrators Much faster than Much faster than averageaverage

Computer Systems Computer Systems AnalystsAnalysts

Much faster than Much faster than averageaverage

Computer Scientists Computer Scientists and Database and Database AdministratorsAdministrators

Much faster than Much faster than averageaverage

Key Areas for the Key Areas for the next 10 years:next 10 years:

Network Network ManagementManagement Cyber SecurityCyber Security Electronic Electronic CommerceCommerce Internet Internet technologiestechnologies Mobile ApplicationsMobile Applications

StatementStatement Projected Projected IncreaseIncrease

much faster than much faster than average average

> 27%> 27%

Faster than Faster than averageaverage

18 – 26 %18 – 26 %

As fast as As fast as averageaverage

9 – 17 %9 – 17 %

More slowly than More slowly than averageaverage

0 – 8 %0 – 8 %

DeclineDecline Decrease by any Decrease by any amountamount

[http://www.bls.gov/oco/ocos258.htm#outlook]

Jobs in Computer ScienceJobs in Computer Science

Computer and Information Systems Computer and Information Systems ManagersManagers– plan, coordinate, and direct research and plan, coordinate, and direct research and

facilitate the computer-related activities of firmsfacilitate the computer-related activities of firms– They direct the work of systems analysts, They direct the work of systems analysts,

computer programmers, support specialists, computer programmers, support specialists, and other computer-related workers and other computer-related workers

– Chief Technology Officers, MIS directors, Project Chief Technology Officers, MIS directors, Project Managers, LAN/WAN managersManagers, LAN/WAN managers

– Need strong communication and management Need strong communication and management skillsskills

http://www.bls.gov/oco/ocos258.htm

Jobs in Computer ScienceJobs in Computer Science Computer ProgrammersComputer Programmers

– People who actually write and maintain the codePeople who actually write and maintain the code– They code according to specifications prepared by They code according to specifications prepared by

software engineers and system analystssoftware engineers and system analysts Software EngineersSoftware Engineers

– analyze users’ needs and design, construct, test, and analyze users’ needs and design, construct, test, and maintain computer applications software or systems maintain computer applications software or systems

– Computer Applications Software EngineersComputer Applications Software Engineers– Computer Systems Software EngineersComputer Systems Software Engineers

Computer Systems AnalystsComputer Systems Analysts– Analyze the needs of an organization with regards to Analyze the needs of an organization with regards to

software, and prepare software requirement specifications software, and prepare software requirement specifications (SRS)(SRS)

– Plan and develop new computer systemsPlan and develop new computer systems

Jobs in Computer ScienceJobs in Computer Science Computer Support Specialists and System Computer Support Specialists and System

AdministratorsAdministrators– Provide technical support to keep an Provide technical support to keep an

organizations computer systems runningorganizations computer systems running Computer Scientists:Computer Scientists:

– Theoreticians, inventors, researchersTheoreticians, inventors, researchers Database AdministratorsDatabase Administrators

– Work with DBMS to determine ways to organize Work with DBMS to determine ways to organize and store data and store data

Network AdministratorsNetwork Administrators– Design and maintain networks, deal with Design and maintain networks, deal with

security issues and constant threats from security issues and constant threats from hackershackers

Computer EngineeringComputer Engineering A discipline that combines both electrical engineering and A discipline that combines both electrical engineering and

computer sciencecomputer science They may be considered as electrical engineers with more They may be considered as electrical engineers with more

training in computer hardware and software, but lesser training in computer hardware and software, but lesser training in some areas of EE, like device physics, or power training in some areas of EE, like device physics, or power electronicselectronics– Computer Programming + HardwareComputer Programming + Hardware– A lot of programming that a computer engineer may do may A lot of programming that a computer engineer may do may

be in low-level languages like assemblybe in low-level languages like assembly Computer Engineers design computer hardware, and Computer Engineers design computer hardware, and

systemssystems Areas of work: Microprocessor design, Embedded systems, Areas of work: Microprocessor design, Embedded systems,

interfacing etc.interfacing etc.– Embedded Systems: a special purpose system in which the Embedded Systems: a special purpose system in which the

computer is completely encapsulated in the device it controlscomputer is completely encapsulated in the device it controls– Interfacing: Communication boundary between computer and Interfacing: Communication boundary between computer and

other devicesother devices Examples: DSP (sound), genome sequencing (chemistry), Examples: DSP (sound), genome sequencing (chemistry),

Industrial Process Control, Motorway example, CNC Industrial Process Control, Motorway example, CNC Machining, VLSI design, FPGA systems, roboticsMachining, VLSI design, FPGA systems, robotics

An embedded SystemAn embedded System

http://en.wikipedia.org/wiki/Image:ADSL_modem_router_internals_labeled.jpg

ReferencesReferences

http://en.wikipedia.org/wiki/Algorithm http://en.wikipedia.org/wiki/Algorithm http://en.wikipedia.org/wiki/http://en.wikipedia.org/wiki/

Software_development_processSoftware_development_process http://en.wikipedia.org/wiki/Software_http://en.wikipedia.org/wiki/Software_

requirements_analysisrequirements_analysis