+ All Categories
Home > Documents > Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Date post: 18-Jan-2016
Category:
Upload: garey-wiggins
View: 222 times
Download: 1 times
Share this document with a friend
29
Computer Science, Algorithms, Abstractions, & Information CSC 2001
Transcript
Page 1: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Computer Science, Algorithms, Abstractions,

& Information

Computer Science, Algorithms, Abstractions,

& Information

CSC 2001CSC 2001

Page 2: Computer Science, Algorithms, Abstractions, & Information CSC 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?

Page 3: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Science?Science?

What do you think of when you hear the word “science”?

What do you think of when you hear the word “science”?

Page 4: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Science of computing?Science of computing?

Page 5: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 6: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Alternatives?Alternatives?

Alternatives to “science”?Alternatives to “science”?

Page 7: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

Possible alternatives…Possible alternatives…

EngineeringArt

EngineeringArt

Page 8: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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!!

Page 9: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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!

Page 10: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 11: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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?

Page 12: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 13: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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)

Page 14: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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.

More on this later.

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.

More on this later.

Page 15: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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.

Page 16: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 17: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 18: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 19: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 20: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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.

Page 21: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 22: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 23: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 24: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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.

Page 25: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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.

Page 26: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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)?

Page 27: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 28: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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

Page 29: Computer Science, Algorithms, Abstractions, & Information CSC 2001.

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])


Recommended