lecture on computer science as a discipline. 2 computer “science” some people argue that...

19
Lecture on Computer Science as a Discipline

Upload: david-holt

Post on 31-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Lecture on Computer

Science as a Discipline

Page 2: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

2

Computer “Science” some people argue that computer science is not

a science in the same sense that biology and chemistry are the interdisciplinary nature of computer science has

made it hard to classify computer science is the study of computation

(more than just machinery) it involves all aspects of problem solving, including

the design and analysis of algorithms the formalization of algorithms as programs the development of computational devices for

executing programs the theoretical study of the power and limitations of

computing

whether this constitutes a "science" is a matter of interpretation certainly, computer science represents a rigorous

approach to understanding complex phenomena and problem solving

Page 3: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

3

Scientific Method the process developed by the scientific community for

examining observations and events is known as the scientific method

many activities carried out by computer scientists follow the scientific method e.g., designing and implementing a large database system

requires hypothesizing about its behavior under various conditioning, experimenting to test those hypotheses, analyzing the results, and possibly redesigning

e.g., debugging a complex program requires forming hypotheses about where an error might be occurring, experimenting to test those hypotheses, analyzing the results, and fixing the bugs

Page 4: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

4

Artificial Sciencethe distinction between computer science and natural sciences like

biology, chemistry, and physics is the type of systems being studied

natural sciences study naturally occurring phenomena and attempt to extract underlying laws of nature

computer science study human-made constructs: programs, computers, and computational modes

Herbert Simon coined the phrase "artificial science" to distinguish computer science from the natural sciences

in Europe, computer science is commonly called "Informatics" emphasizes the role of information processing as opposed to

machinery

the term "Algorithmics" has also been proposed emphasizes the role of algorithms and problem solving

other related fields study computation from different perspectives computer engineering focuses on the design and construction

of computers information systems management focuses on business

applications

Page 5: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

5

Computer Science Themes

since computation encompasses many different types of activities, computer science research is often difficult to classify

three recurring themes define the discipline

Page 6: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

6

Hardware hardware refers to the physical components of a computer

and its supporting devices

most modern computers implement the von Neumann architecture CPU + memory + input/output devices

ongoing research seeks to improve hardware design and organization circuit designers create smaller, faster, more energy-

efficient chips microchip manufacturers seek to miniaturize and

streamline production systems architects research methods to increase

throughput (the amount of work done in a given time period)

e.g., parallel processing – splitting the computation across multiple CPUs

e.g., networking – connecting computers to share information and work

Page 7: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

7

Software software refers to the programs that execute on computers 3 basic software categories

1. systems software: programs that directly control the execution of hardware components (e.g., operating systems)

2. development software: programs that are used as tools in the development of other programs (e.g. Microsoft.NET, Java SDK)

3. applications software: all other programs, which perform a wide variety of tasks (e.g., web browsers, word processors, games)

4. related many careers in computer science are to the design,

development, testing, and maintenance of software language designers develop and extend programming

languages for easier and more efficient solutions programmers design and code algorithms for execution on a

computer systems analysts analyze program designs and manage

development

Page 8: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

8

Subfields of CS

Page 9: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Introduction To Software Engineering

Chapter #6 of book

Page 10: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

What is Software Engineering?

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software

Is it related to Engineering?

Suppose you have a large complex device and you are asked to design it and supervise its construction.

Page 11: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

What is SE?

How can you estimate the cost in time, money and other resources required to complete the project

How can you divide the project into manageable pieces?

How can you ensure that the project pieces produced are compatible?

How can you measure progress?

Page 12: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Difference b/w Engineering and

Software Engineering Systems in normal engineering can

be constructed using off-shelf components e.g. car designer would not design radio, door locks etc however in software engineering we can reuse a component only if we redesign it

Traditional engineering deals with development of products that are acceptable as long as they perform their task however in SE a software either performs correctly or incorrectly with no tolerance level.

Page 13: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Difference(cont)

There is no measure/quality metrics to determine properties of a software as there exists Mean Time To Failure incase of device wear and tear however software do not wear out so how to measure their efficiency.

Research in SE is currently progressing in tow levels: Practitioners and Theoreticians

Professional Organizations: ACM, IEEE, etc.

Page 14: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Software Development Life Cycle

Page 15: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Traditional Development Phases

Page 16: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

7-16

Analysis Stage

Requirements Application oriented

Specifications Technically oriented

Software requirements document

Page 17: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

7-17

Design Stage

Analysis concentrates on what the proposed system should do, design concentrates on how the system will accomplish this goal.

Methodologies and tools

Human interface (psychology and ergonomics)

Page 18: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

7-18

Implementation Stage

Create system from design Write programs Create data files Develop databases

Role of “software analyst” versus “programmer”

Page 19: Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology

Testing Stage

Validation testing Confirm that system meets

specifications

Defect testing Find bugs