What do Computer Scientists and Engineers do?

Download What do Computer Scientists and Engineers do?

Post on 31-Dec-2015




0 download


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


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

  • Computer ScienceThe 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 thinkComputer Science is about ComputationComputer Science provides a framework of dealing precisely with how toComputer Scientist discover algorithmsComputer Science is not ProgrammingWe use programming languages to convey steps for solving a problem to a computerCrux of a Computer Scientists work is time spent in discovering these steps or algorithms

  • AlgorithmsAn algorithm procedure or formula for solving a problemExample: Adding two positive integers a and bIf b = 0, return aIncrement a by 1Decrement b by 1Go to Step 1http://en.wikipedia.org/wiki/Algorithm

  • Software EngineeringSoftware engineering is concerned with the conception, development and verification of a software system Identifying, Defining, Realizing, Verifying the required characteristics of softwareSome 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 ProcessRequirement AnalysisEliciting, Analyzing and Recording of requirements through interviews, focus groups, prototyping, Business intelligence needs to be capturedSometimes also involves Business Process Re-engineeringResults in Software Requirements Specification (SRS) documentSpecificationPrecisely describing the software to be writtenSoftware ArchitectureAn abstract representation of the system in terms of modulesImplementationReducing a design to codeTestingAlso referred to as Quality Assurance (QA)Often conducted by a separate teamBlack box and White Box MethodologiesDocumentation often overlooked, but extremely importantSoftware Training and SupportMaintenanceVery important component. About 2/3rd of all software engineering work is maintenance

  • Databases and Information SystemsDatabase: Collection of records stored in a computer in a systematic wayCollection of records, each record having several fieldsDatabase can be queried to extract relevant dataRelational Model:Represents all information in terms of multiple tables that are related to each otherDatabase Management System (DBMS), often simply called database, is the software that provides management of dataA Database Transaction: a unit of interaction with DBMSMay involve several queriesE.g. a debit/credit transaction on an ATMSimultaneous transactions can run into concurrency problems and need to be managed properlyInformation Systems may have one or more databases at their coreEnterprise 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)Key Areas for the next 10 years: Network Management Cyber Security Electronic Commerce Internet technologies Mobile Applications[http://www.bls.gov/oco/ocos258.htm#outlook]

    Job DescriptionExpected Growth through 2014Computer and Information Systems ManagersFaster than averageComputer Programmers (2 year degrees)More slowly than averageComputer Software EngineersAs fast as AverageComputer Support SpecialistsFaster than AverageSystem AdministratorsMuch faster than averageComputer Systems AnalystsMuch faster than averageComputer Scientists and Database AdministratorsMuch faster than average

    StatementProjected Increasemuch faster than average > 27%Faster than average18 26 %As fast as average9 17 %More slowly than average0 8 %DeclineDecrease by any amount

  • Jobs in Computer ScienceComputer and Information Systems Managersplan, coordinate, and direct research and facilitate the computer-related activities of firmsThey direct the work of systems analysts, computer programmers, support specialists, and other computer-related workers Chief Technology Officers, MIS directors, Project Managers, LAN/WAN managersNeed strong communication and management skills


  • Jobs in Computer ScienceComputer ProgrammersPeople who actually write and maintain the codeThey code according to specifications prepared by software engineers and system analystsSoftware Engineersanalyze users needs and design, construct, test, and maintain computer applications software or systems Computer Applications Software EngineersComputer Systems Software EngineersComputer Systems AnalystsAnalyze the needs of an organization with regards to software, and prepare software requirement specifications (SRS)Plan and develop new computer systems

  • Jobs in Computer ScienceComputer Support Specialists and System AdministratorsProvide technical support to keep an organizations computer systems runningComputer Scientists:Theoreticians, inventors, researchersDatabase AdministratorsWork with DBMS to determine ways to organize and store data Network AdministratorsDesign and maintain networks, deal with security issues and constant threats from hackers

  • Computer EngineeringA discipline that combines both electrical engineering and computer scienceThey 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 electronicsComputer Programming + HardwareA lot of programming that a computer engineer may do may be in low-level languages like assemblyComputer Engineers design computer hardware, and systemsAreas 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 controlsInterfacing: Communication boundary between computer and other devicesExamples: DSP (sound), genome sequencing (chemistry), Industrial Process Control, Motorway example, CNC Machining, VLSI design, FPGA systems, robotics

  • An embedded Systemhttp://en.wikipedia.org/wiki/Image:ADSL_modem_router_internals_labeled.jpg

  • Referenceshttp://en.wikipedia.org/wiki/Algorithm http://en.wikipedia.org/wiki/Software_development_processhttp://en.wikipedia.org/wiki/Software_requirements_analysis