Date post: | 18-Jan-2016 |
Category: |
Documents |
Upload: | garey-wiggins |
View: | 222 times |
Download: | 1 times |
Computer Science, Algorithms, Abstractions,
& Information
Computer Science, Algorithms, Abstractions,
& Information
CSC 2001CSC 2001
Two introductory components
Two introductory components
Origin of computing machinesHistory of hardware
Done
What is computer science?
Origin of computing machinesHistory of hardware
Done
What is computer science?
Science?Science?
What do you think of when you hear the word “science”?
What do you think of when you hear the word “science”?
Science of computing?Science of computing?
Science of computingScience of computing
Science“The observation, identification, description,
experimental investigation, and theoretical explanation of phenomena.”… of computing
“Methodological activity, discipline, or study”… of computing
“Knowledge, especially that gained through experience”… of computing
Science“The observation, identification, description,
experimental investigation, and theoretical explanation of phenomena.”… of computing
“Methodological activity, discipline, or study”… of computing
“Knowledge, especially that gained through experience”… of computing
Alternatives?Alternatives?
Alternatives to “science”?Alternatives to “science”?
Possible alternatives…Possible alternatives…
EngineeringArt
EngineeringArt
Engineering of computing?Engineering of computing?
There is a “science” of engineeringBut you might think of it as an
application of scienceSoftware engineering
Cover later in class!!
There is a “science” of engineeringBut you might think of it as an
application of scienceSoftware engineering
Cover later in class!!
Art of computing?Art of computing?
Art?
… of computing?more than just Pixar, ILM, and Weta!
Art?
… of computing?more than just Pixar, ILM, and Weta!
Back to the science of computing…
Back to the science of computing…
“… the discipline that seeks to build a scientific foundation for such topics as computer design, computer programming, information processing, algorithmic solutions of problems, and the algorithmic process itself.”
“… the discipline that seeks to build a scientific foundation for such topics as computer design, computer programming, information processing, algorithmic solutions of problems, and the algorithmic process itself.”
Fundamental conceptsFundamental concepts
Three things I want to introduce today…AlgorithmsAbstractionsInformation representation and
manipulation
For each, answer two questions…What is it?Why do we care?
How does it relate to computer science?
Three things I want to introduce today…AlgorithmsAbstractionsInformation representation and
manipulation
For each, answer two questions…What is it?Why do we care?
How does it relate to computer science?
What is an algorithm?What is an algorithm?
a set of steps for accomplishing a taskrecipedirectionsplan
examples from bookmagic trickEuclidean algorithm for finding the greatest
common divisor of two positive numbers
a set of steps for accomplishing a taskrecipedirectionsplan
examples from bookmagic trickEuclidean algorithm for finding the greatest
common divisor of two positive numbers
Why do we care?Why do we care?
Computers need to be told what to do (i.e., must be given an algorithm).
This means…there is a goal - a task to be
accomplishedrecord keeping
a plan to enable achievement of the task - a computer programa database programThere can be different solutions (MS Access,
MySQL, Oracle)
Computers need to be told what to do (i.e., must be given an algorithm).
This means…there is a goal - a task to be
accomplishedrecord keeping
a plan to enable achievement of the task - a computer programa database programThere can be different solutions (MS Access,
MySQL, Oracle)
More about algorithms…More about algorithms…
Usually we think about algorithms on a smaller scale.That is, a large task is usually viewed
as a collection of smaller tasks. Each of which has a solution algorithm.
Usually we think about algorithms on a smaller scale.That is, a large task is usually viewed
as a collection of smaller tasks. Each of which has a solution algorithm.
What’s important now?What’s important now?
Know what an algorithm is.Notice that we use and develop
informal algorithms all the time.With computers, we have to be
more formal about them than with people.
Know what an algorithm is.Notice that we use and develop
informal algorithms all the time.With computers, we have to be
more formal about them than with people.
What is an abstraction?What is an abstraction?
“The process of leaving out of consideration one or more properties of a complex object so as to attend to others; analysis. Thus, when the mind considers the form of a tree by itself, or the color of the leaves as separate from their size or figure, the act is called abstraction.”
“The process of leaving out of consideration one or more properties of a complex object so as to attend to others; analysis. Thus, when the mind considers the form of a tree by itself, or the color of the leaves as separate from their size or figure, the act is called abstraction.”
What is an abstraction?What is an abstraction?
ignoring some details to make something complex easier to think about
examplestreeschairspeople
ignoring some details to make something complex easier to think about
examplestreeschairspeople
Abstraction in computer science
Abstraction in computer science
Managing complexity by thinking about things at differing levels of detailsCould be leaving out detailsCould be breaking down into smaller
componentsNot unique to computer science, but
certainly important to computer science
Managing complexity by thinking about things at differing levels of detailsCould be leaving out detailsCould be breaking down into smaller
componentsNot unique to computer science, but
certainly important to computer science
Why do we care?Why do we care?
There are at least two reasons.Complexity and human limitationsThe need to generalize
There are at least two reasons.Complexity and human limitationsThe need to generalize
Complexity and human limitations
Complexity and human limitations
Miller’s lawWe can only keep 7 (+ or - 2) things
in mind at one time.This is problematic because complex
tasks and solutions usually exceed this limit.
Miller’s lawWe can only keep 7 (+ or - 2) things
in mind at one time.This is problematic because complex
tasks and solutions usually exceed this limit.
Complex tasksComplex tasks
Interesting problems tend to be complex.
This often makes them hard to understand.
Solution…ignoring some details to focus on othersviewing details in “levels” or “layers”
Examplestraightening my office
Interesting problems tend to be complex.
This often makes them hard to understand.
Solution…ignoring some details to focus on othersviewing details in “levels” or “layers”
Examplestraightening my office
Complex solutionsComplex solutions
The solutions to complex problems tend to be complex.
This often makes them hard to design and implement.
Solution…ignoring some details to focus on othersviewing details in “levels” or “layers”
Exampledriving from my house in Cookeville to a
friend’s house in Nashville
The solutions to complex problems tend to be complex.
This often makes them hard to design and implement.
Solution…ignoring some details to focus on othersviewing details in “levels” or “layers”
Exampledriving from my house in Cookeville to a
friend’s house in Nashville
The need to generalizeThe need to generalize
We would prefer not to be overly specific in either the task or solution.
Chair examplewould like to be able to recognize
something as a chair even if we haven’t seen that specific type before
would like to be able to know how to sit in a chair even if we haven’t sat in that particular chair before
We would prefer not to be overly specific in either the task or solution.
Chair examplewould like to be able to recognize
something as a chair even if we haven’t seen that specific type before
would like to be able to know how to sit in a chair even if we haven’t sat in that particular chair before
The need to generalizeThe need to generalize
Same is often true in computer sciencedon’t want to have to write a different
database program for every different kind of record that exists
often need to generalize task and solution
As with most rules, there are exceptions, but we won’t worry about that now.
Same is often true in computer sciencedon’t want to have to write a different
database program for every different kind of record that exists
often need to generalize task and solution
As with most rules, there are exceptions, but we won’t worry about that now.
What is important now?What is important now?
Abstraction allows us to view a complex system (task or solution) at different levels of detail. Thereby, enabling us to more easily understand it.
Abstraction allows us to view a complex system (task or solution) at different levels of detail. Thereby, enabling us to more easily understand it.
What is information representation and
manipulation?
What is information representation and
manipulation?What is information?How do we represent information
(outside of a computer)?How do we manipulate information
(besides with a computer)?
What is information?How do we represent information
(outside of a computer)?How do we manipulate information
(besides with a computer)?
Why do we care?Why do we care?
Information scienceComputers “think” differently than we do.We must translate information into a
“language” that computers can understand.simple example: representing integers
We must also have a means of transforming that information.simple example: multiplying integers
Information scienceComputers “think” differently than we do.We must translate information into a
“language” that computers can understand.simple example: representing integers
We must also have a means of transforming that information.simple example: multiplying integers
More details…More details…
We cover all these topics in more detail during the semester. For example…We start getting into the details of
information representation nextChapter 5 focuses on algorithms
We cover all these topics in more detail during the semester. For example…We start getting into the details of
information representation nextChapter 5 focuses on algorithms
Assignment 1Assignment 1
Describe a common algorithm that you perform.Use the format from figures 0.1 and
0.2 in the book Email to me ([email protected])
Describe a common algorithm that you perform.Use the format from figures 0.1 and
0.2 in the book Email to me ([email protected])