SlideShare a Scribd company logo
1
A Balanced Introduction to
Computer Science
David Reed, Creighton University
©2005 Pearson Prentice Hall
ISBN 0-13-046709-X
Chapter 10
Computer Science as a Discipline
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
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
4
Artificial Science
the 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 studies 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
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
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
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)
many careers in computer science are related 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
8
Theory
theoretical computer scientists strive to understand the capabilities of
algorithms and computers (deeply rooted in math and formal logic)
example: the Turing machine is an abstract computational machine invented
by computer pioneer Alan Turing
 consists of: a potentially infinite tape on which characters can be written
a processing unit that can read and write on the tape, move in either
direction, and distinguish between a finite number of states
 significance of the Turing machine
 it is programmable (example below is programmed to distinguish between an
even or odd number of a's on the tape)
 provably as powerful as any modern computer, but simpler so provides a
manageable tool for studying computation
Turing used this
simpler model to
prove there are
problems that
cannot be solved by
any computer!
9
Subfields of
Computer
Science
computer science can be
divided into subfields
 each subfield takes a unique
approach to computation
 however the common themes
of computer science
(hardware, software, and
theory) influence every
subfield
10
Algorithms and Data Structures
subfield that involves developing, analyzing, and implementing algorithms for
solving problems
application: encryption
 encryption is the process of encoding a message so that it is decipherable only by
its intended recipient
 Caesar cipher: shift each letter three down in the alphabet
e.g., ET TU BRUTE  HW WX EUXWH
 Caesar cipher is an example of private-key encryption
 relies on the sender and the recipient sharing a secret key
 some modern encryption algorithms rely on private keys
 e.g., Digital Encryption Standard (DES) utilizes 56-bit keys
11
Public-Key Encryption
private-key encryption assumes that the sender and the recipient have agreed
upon some key ahead of time (which introduces other security risks)
Whitfield Diffie and Martin Hellman proposed public-key encryption
 assign each party a pair of associated keys, one is public and the other is private
 a message encoded with a public key requires the corresponding private key for
decoding, and vice versa
 almost all secure communications on the Internet use public key encryption
 allows for double encryption to also verify the identity of the sender
 you can encode messages with your own private key and the recipient’s
public key, and decode the message in reverse
12
Architecture
subfield concerned with methods of organizing hardware components into
efficient, reliable systems
application: parallel processing
 multiple processors can sometimes be utilized to share the computational load
 there are costs associated with coordinating the processors and dividing the
work, so not well suited for all tasks
 understanding when parallel processing can be used effectively is a common
task for computer architects
 e.g., high-end Web Servers utilize multiple processors
 can service multiple requests simultaneously by distributing the load among
the processors
 Deep Blue, IBM's chess playing computer,
contained 32 general purpose processors
and 512 special-purpose chess processors
 the processors worked in parallel to
evaluate chess moves (could generate
and evaluate 200 million chess moves
per second)
 in 1997, Deep Blue became the first
computer to beat a world champion in
a chess tournament
13
Operating Systems and Networks
subfield concerned with mechanisms to control the hardware and software
components of computer systems
application: operating systems mediate between hardware and software
 time-sharing - allowed for multiple users to work on the same computer
 each user is allocated a portion of the processor, and the processor rotates
among tasks so rapidly that it appears to be executing tasks simultaneously
 multitasking – a single user can run multiple programs simultaneously
 each application is allocated a portion of the memory
application: networks allow computers to communicate and share resources
 wide area network (WAN) – connects
computers over long distances (e.g., Internet)
 local area network (LAN) – connects
computers over short distances (e.g., same
room or building)
 Ethernet is a common, simple
technology for building LANs
14
Software Engineering
subfield concerned with creating effective software systems
 large projects can encompass millions of lines of code
 teams of programmers work together to make an integrated whole
 coordination and testing are key to successful projects
 software demand continues to grow, placing pressure on programmers to
produce at faster rates
 clearly, there is a limit to personal productivity
 simply adding more programmers does not solve the problem: increasing numbers
means increased complexity, and coordination becomes an even bigger challenge
 in recent years, the adoption of the object-oriented programming
methodology has made it easier to reuse code
15
Artificial Intelligence
subfield that attempts to make computers exhibit human-like characteristics
(e.g., the ability to reason and think)
 in 1950, Turing predicted intelligent computers by 2000 (still not even close)
 but, progress has been made in many A.I. realms
 robots in manufacturing
 expert systems – programs that encapsulate expert knowledge in a specific
domain (e.g., for medical diagnosis)
 neural computing – design of architectures that mimic the brain
16
The Ethics of Computing
as technology becomes more prevalent in society, computing professionals
must ensure that hardware and software are used safely, fairly, and effectively
Ad

More Related Content

Similar to Computer science introduction hardware and software.ppt (20)

Introduction to Computer Fundamentals.ppt
Introduction to Computer Fundamentals.pptIntroduction to Computer Fundamentals.ppt
Introduction to Computer Fundamentals.ppt
LakshmanaRao32
 
Chapter01ictdetailsarementionedhereforlecture
Chapter01ictdetailsarementionedhereforlectureChapter01ictdetailsarementionedhereforlecture
Chapter01ictdetailsarementionedhereforlecture
Huma Ayub
 
onur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptx
onur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptxonur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptx
onur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptx
sivasubramanianManic2
 
CLOUD COMPUTING Unit-I.pdf
CLOUD COMPUTING Unit-I.pdfCLOUD COMPUTING Unit-I.pdf
CLOUD COMPUTING Unit-I.pdf
lakshmidevi853216
 
Introduction to parallel_computing
Introduction to parallel_computingIntroduction to parallel_computing
Introduction to parallel_computing
Mehul Patel
 
Seminar
SeminarSeminar
Seminar
hpmizuki
 
UNIT-1-PARADIGMS.pptx cloud computing cc
UNIT-1-PARADIGMS.pptx cloud computing ccUNIT-1-PARADIGMS.pptx cloud computing cc
UNIT-1-PARADIGMS.pptx cloud computing cc
JahnaviNarala
 
Cibm ch03 and ch04
Cibm   ch03 and ch04Cibm   ch03 and ch04
Cibm ch03 and ch04
Shaheen Khan
 
Notes for banking railway opsc psc preparationx
Notes for  banking railway opsc psc preparationxNotes for  banking railway opsc psc preparationx
Notes for banking railway opsc psc preparationx
RAJSEKHAR PEDINA
 
Chapter01.ppt
Chapter01.pptChapter01.ppt
Chapter01.ppt
ALIZAIB KHAN
 
Itc chapter # 9
Itc   chapter # 9Itc   chapter # 9
Itc chapter # 9
National university of modern languages
 
PPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gt
PPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gtPPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gt
PPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gt
debasishkatari
 
Chapter_01.pptx
Chapter_01.pptxChapter_01.pptx
Chapter_01.pptx
aliceasiedu980
 
Is202 ch03 and ch04
Is202   ch03 and ch04Is202   ch03 and ch04
Is202 ch03 and ch04
Shaheen Khan
 
ABUBAKIR MUHAMMED.docx
ABUBAKIR MUHAMMED.docxABUBAKIR MUHAMMED.docx
ABUBAKIR MUHAMMED.docx
SOMOSCO1
 
COMPUTER.docx
COMPUTER.docxCOMPUTER.docx
COMPUTER.docx
proshot113
 
Lecture1.pptx
Lecture1.pptxLecture1.pptx
Lecture1.pptx
PriyamChowdhury10
 
Computer Networking Theory Assignment 1
Computer Networking Theory Assignment 1Computer Networking Theory Assignment 1
Computer Networking Theory Assignment 1
Hasibul Islam Nirob
 
0 introduction to computer architecture
0 introduction to computer architecture0 introduction to computer architecture
0 introduction to computer architecture
aamc1100
 
Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.
gadisaAdamu
 
Introduction to Computer Fundamentals.ppt
Introduction to Computer Fundamentals.pptIntroduction to Computer Fundamentals.ppt
Introduction to Computer Fundamentals.ppt
LakshmanaRao32
 
Chapter01ictdetailsarementionedhereforlecture
Chapter01ictdetailsarementionedhereforlectureChapter01ictdetailsarementionedhereforlecture
Chapter01ictdetailsarementionedhereforlecture
Huma Ayub
 
onur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptx
onur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptxonur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptx
onur-comparch-fall2018-lecture3a-whycomparch-afterlecture.pptx
sivasubramanianManic2
 
Introduction to parallel_computing
Introduction to parallel_computingIntroduction to parallel_computing
Introduction to parallel_computing
Mehul Patel
 
UNIT-1-PARADIGMS.pptx cloud computing cc
UNIT-1-PARADIGMS.pptx cloud computing ccUNIT-1-PARADIGMS.pptx cloud computing cc
UNIT-1-PARADIGMS.pptx cloud computing cc
JahnaviNarala
 
Cibm ch03 and ch04
Cibm   ch03 and ch04Cibm   ch03 and ch04
Cibm ch03 and ch04
Shaheen Khan
 
Notes for banking railway opsc psc preparationx
Notes for  banking railway opsc psc preparationxNotes for  banking railway opsc psc preparationx
Notes for banking railway opsc psc preparationx
RAJSEKHAR PEDINA
 
PPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gt
PPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gtPPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gt
PPT_CugyyyojiuOC21.pptxguguhhyuu9uuuu7gt
debasishkatari
 
Is202 ch03 and ch04
Is202   ch03 and ch04Is202   ch03 and ch04
Is202 ch03 and ch04
Shaheen Khan
 
ABUBAKIR MUHAMMED.docx
ABUBAKIR MUHAMMED.docxABUBAKIR MUHAMMED.docx
ABUBAKIR MUHAMMED.docx
SOMOSCO1
 
Computer Networking Theory Assignment 1
Computer Networking Theory Assignment 1Computer Networking Theory Assignment 1
Computer Networking Theory Assignment 1
Hasibul Islam Nirob
 
0 introduction to computer architecture
0 introduction to computer architecture0 introduction to computer architecture
0 introduction to computer architecture
aamc1100
 
Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.Ch1Intro.pdf Computer organization and org.
Ch1Intro.pdf Computer organization and org.
gadisaAdamu
 

Recently uploaded (20)

Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
lecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIH
lecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIHlecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIH
lecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIH
Abodahab
 
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design ThinkingDT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DhruvChotaliya2
 
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxbMain cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
SunilSingh610661
 
introduction to machine learining for beginers
introduction to machine learining for beginersintroduction to machine learining for beginers
introduction to machine learining for beginers
JoydebSheet
 
MAQUINARIA MINAS CEMA 6th Edition (1).pdf
MAQUINARIA MINAS CEMA 6th Edition (1).pdfMAQUINARIA MINAS CEMA 6th Edition (1).pdf
MAQUINARIA MINAS CEMA 6th Edition (1).pdf
ssuser562df4
 
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfRICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
MohamedAbdelkader115
 
Mathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdfMathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdf
TalhaShahid49
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
DSP and MV the Color image processing.ppt
DSP and MV the  Color image processing.pptDSP and MV the  Color image processing.ppt
DSP and MV the Color image processing.ppt
HafizAhamed8
 
Artificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptxArtificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptx
DrMarwaElsherif
 
The Gaussian Process Modeling Module in UQLab
The Gaussian Process Modeling Module in UQLabThe Gaussian Process Modeling Module in UQLab
The Gaussian Process Modeling Module in UQLab
Journal of Soft Computing in Civil Engineering
 
Introduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptxIntroduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptx
AS1920
 
Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...
Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...
Structural Response of Reinforced Self-Compacting Concrete Deep Beam Using Fi...
Journal of Soft Computing in Civil Engineering
 
AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)
Vəhid Gəruslu
 
LECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's usesLECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's uses
CLokeshBehera123
 
Compiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptxCompiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptx
RushaliDeshmukh2
 
New Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdfNew Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdf
mohamedezzat18803
 
Data Structures_Introduction to algorithms.pptx
Data Structures_Introduction to algorithms.pptxData Structures_Introduction to algorithms.pptx
Data Structures_Introduction to algorithms.pptx
RushaliDeshmukh2
 
15th International Conference on Computer Science, Engineering and Applicatio...
15th International Conference on Computer Science, Engineering and Applicatio...15th International Conference on Computer Science, Engineering and Applicatio...
15th International Conference on Computer Science, Engineering and Applicatio...
IJCSES Journal
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
lecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIH
lecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIHlecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIH
lecture5.pptxJHKGJFHDGTFGYIUOIUIPIOIPUOHIYGUYFGIH
Abodahab
 
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design ThinkingDT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DhruvChotaliya2
 
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxbMain cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
SunilSingh610661
 
introduction to machine learining for beginers
introduction to machine learining for beginersintroduction to machine learining for beginers
introduction to machine learining for beginers
JoydebSheet
 
MAQUINARIA MINAS CEMA 6th Edition (1).pdf
MAQUINARIA MINAS CEMA 6th Edition (1).pdfMAQUINARIA MINAS CEMA 6th Edition (1).pdf
MAQUINARIA MINAS CEMA 6th Edition (1).pdf
ssuser562df4
 
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfRICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
MohamedAbdelkader115
 
Mathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdfMathematical foundation machine learning.pdf
Mathematical foundation machine learning.pdf
TalhaShahid49
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
DSP and MV the Color image processing.ppt
DSP and MV the  Color image processing.pptDSP and MV the  Color image processing.ppt
DSP and MV the Color image processing.ppt
HafizAhamed8
 
Artificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptxArtificial Intelligence introduction.pptx
Artificial Intelligence introduction.pptx
DrMarwaElsherif
 
Introduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptxIntroduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptx
AS1920
 
AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)
Vəhid Gəruslu
 
LECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's usesLECTURE-16 EARTHEN DAM - II.pptx it's uses
LECTURE-16 EARTHEN DAM - II.pptx it's uses
CLokeshBehera123
 
Compiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptxCompiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptx
RushaliDeshmukh2
 
New Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdfNew Microsoft PowerPoint Presentation.pdf
New Microsoft PowerPoint Presentation.pdf
mohamedezzat18803
 
Data Structures_Introduction to algorithms.pptx
Data Structures_Introduction to algorithms.pptxData Structures_Introduction to algorithms.pptx
Data Structures_Introduction to algorithms.pptx
RushaliDeshmukh2
 
15th International Conference on Computer Science, Engineering and Applicatio...
15th International Conference on Computer Science, Engineering and Applicatio...15th International Conference on Computer Science, Engineering and Applicatio...
15th International Conference on Computer Science, Engineering and Applicatio...
IJCSES Journal
 
Ad

Computer science introduction hardware and software.ppt

  • 1. 1 A Balanced Introduction to Computer Science David Reed, Creighton University ©2005 Pearson Prentice Hall ISBN 0-13-046709-X Chapter 10 Computer Science as a Discipline
  • 2. 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
  • 3. 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
  • 4. 4 Artificial Science the 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 studies 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
  • 5. 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
  • 6. 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
  • 7. 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) many careers in computer science are related 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
  • 8. 8 Theory theoretical computer scientists strive to understand the capabilities of algorithms and computers (deeply rooted in math and formal logic) example: the Turing machine is an abstract computational machine invented by computer pioneer Alan Turing  consists of: a potentially infinite tape on which characters can be written a processing unit that can read and write on the tape, move in either direction, and distinguish between a finite number of states  significance of the Turing machine  it is programmable (example below is programmed to distinguish between an even or odd number of a's on the tape)  provably as powerful as any modern computer, but simpler so provides a manageable tool for studying computation Turing used this simpler model to prove there are problems that cannot be solved by any computer!
  • 9. 9 Subfields of Computer Science computer science can be divided into subfields  each subfield takes a unique approach to computation  however the common themes of computer science (hardware, software, and theory) influence every subfield
  • 10. 10 Algorithms and Data Structures subfield that involves developing, analyzing, and implementing algorithms for solving problems application: encryption  encryption is the process of encoding a message so that it is decipherable only by its intended recipient  Caesar cipher: shift each letter three down in the alphabet e.g., ET TU BRUTE  HW WX EUXWH  Caesar cipher is an example of private-key encryption  relies on the sender and the recipient sharing a secret key  some modern encryption algorithms rely on private keys  e.g., Digital Encryption Standard (DES) utilizes 56-bit keys
  • 11. 11 Public-Key Encryption private-key encryption assumes that the sender and the recipient have agreed upon some key ahead of time (which introduces other security risks) Whitfield Diffie and Martin Hellman proposed public-key encryption  assign each party a pair of associated keys, one is public and the other is private  a message encoded with a public key requires the corresponding private key for decoding, and vice versa  almost all secure communications on the Internet use public key encryption  allows for double encryption to also verify the identity of the sender  you can encode messages with your own private key and the recipient’s public key, and decode the message in reverse
  • 12. 12 Architecture subfield concerned with methods of organizing hardware components into efficient, reliable systems application: parallel processing  multiple processors can sometimes be utilized to share the computational load  there are costs associated with coordinating the processors and dividing the work, so not well suited for all tasks  understanding when parallel processing can be used effectively is a common task for computer architects  e.g., high-end Web Servers utilize multiple processors  can service multiple requests simultaneously by distributing the load among the processors  Deep Blue, IBM's chess playing computer, contained 32 general purpose processors and 512 special-purpose chess processors  the processors worked in parallel to evaluate chess moves (could generate and evaluate 200 million chess moves per second)  in 1997, Deep Blue became the first computer to beat a world champion in a chess tournament
  • 13. 13 Operating Systems and Networks subfield concerned with mechanisms to control the hardware and software components of computer systems application: operating systems mediate between hardware and software  time-sharing - allowed for multiple users to work on the same computer  each user is allocated a portion of the processor, and the processor rotates among tasks so rapidly that it appears to be executing tasks simultaneously  multitasking – a single user can run multiple programs simultaneously  each application is allocated a portion of the memory application: networks allow computers to communicate and share resources  wide area network (WAN) – connects computers over long distances (e.g., Internet)  local area network (LAN) – connects computers over short distances (e.g., same room or building)  Ethernet is a common, simple technology for building LANs
  • 14. 14 Software Engineering subfield concerned with creating effective software systems  large projects can encompass millions of lines of code  teams of programmers work together to make an integrated whole  coordination and testing are key to successful projects  software demand continues to grow, placing pressure on programmers to produce at faster rates  clearly, there is a limit to personal productivity  simply adding more programmers does not solve the problem: increasing numbers means increased complexity, and coordination becomes an even bigger challenge  in recent years, the adoption of the object-oriented programming methodology has made it easier to reuse code
  • 15. 15 Artificial Intelligence subfield that attempts to make computers exhibit human-like characteristics (e.g., the ability to reason and think)  in 1950, Turing predicted intelligent computers by 2000 (still not even close)  but, progress has been made in many A.I. realms  robots in manufacturing  expert systems – programs that encapsulate expert knowledge in a specific domain (e.g., for medical diagnosis)  neural computing – design of architectures that mimic the brain
  • 16. 16 The Ethics of Computing as technology becomes more prevalent in society, computing professionals must ensure that hardware and software are used safely, fairly, and effectively