1 / 14

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

Download Presentation

What do Computer Scientists and Engineers do?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. An algorithm procedure or formula for solving a problem Example: Adding two positive integers a and b If b = 0, return a Increment a by 1 Decrement b by 1 Go to Step 1 Algorithms http://en.wikipedia.org/wiki/Algorithm

  4. 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

  5. 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

  6. 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

  7. US Department of Labor, Bureau of Labor Statistics: Job Outlook for Next 10 Years (2004-2014) [http://www.bls.gov/oco/ocos258.htm#outlook] Key Areas for the next 10 years: • Network Management • Cyber Security • Electronic Commerce • Internet technologies • Mobile Applications

  8. 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

  9. 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

  10. 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

  11. 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 low-level 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

  12. An embedded System http://en.wikipedia.org/wiki/Image:ADSL_modem_router_internals_labeled.jpg

  13. References • http://en.wikipedia.org/wiki/Algorithm • http://en.wikipedia.org/wiki/Software_development_process • http://en.wikipedia.org/wiki/Software_requirements_analysis

More Related