Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Computer Science, Algorithms, Abstractions, & Information CSC 2001."— Presentation transcript:

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

2 Two introductory components  Origin of computing machines  History of hardware  Done  What is computer science?  Origin of computing machines  History of hardware  Done  What is computer science?

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

4 Science of computing?

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

6 Alternatives?  Alternatives to “science”?

7 Possible alternatives…  Engineering  Art  Engineering  Art

8 Engineering of computing?  There is a “science” of engineering  But you might think of it as an application of science  Software engineering  Cover later in class!!  There is a “science” of engineering  But you might think of it as an application of science  Software engineering  Cover later in class!!

9 Art of computing?  Art?  … of computing?  more than just Pixar, ILM, and Weta!  Art?  … of computing?  more than just Pixar, ILM, and Weta!

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

11 Fundamental concepts  Three things I want to introduce today…  Algorithms  Abstractions  Information 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…  Algorithms  Abstractions  Information representation and manipulation  For each, answer two questions…  What is it?  Why do we care?  How does it relate to computer science?

12 What is an algorithm?  a set of steps for accomplishing a task  recipe  directions  plan  examples from book  magic trick  Euclidean algorithm for finding the greatest common divisor of two positive numbers  a set of steps for accomplishing a task  recipe  directions  plan  examples from book  magic trick  Euclidean algorithm for finding the greatest common divisor of two positive numbers

13 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 accomplished  record keeping  a plan to enable achievement of the task - a computer program  a database program  There 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 accomplished  record keeping  a plan to enable achievement of the task - a computer program  a database program  There can be different solutions (MS Access, MySQL, Oracle)

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

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

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

17 What is an abstraction?  ignoring some details to make something complex easier to think about  examples  trees  chairs  people  ignoring some details to make something complex easier to think about  examples  trees  chairs  people

18 Abstraction in computer science  Managing complexity by thinking about things at differing levels of details  Could be leaving out details  Could be breaking down into smaller components  Not unique to computer science, but certainly important to computer science  Managing complexity by thinking about things at differing levels of details  Could be leaving out details  Could be breaking down into smaller components  Not unique to computer science, but certainly important to computer science

19 Why do we care?  There are at least two reasons.  Complexity and human limitations  The need to generalize  There are at least two reasons.  Complexity and human limitations  The need to generalize

20 Complexity and human limitations  Miller’s law  We 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 law  We can only keep 7 (+ or - 2) things in mind at one time.  This is problematic because complex tasks and solutions usually exceed this limit.

21 Complex tasks  Interesting problems tend to be complex.  This often makes them hard to understand.  Solution…  ignoring some details to focus on others  viewing details in “levels” or “layers”  Example  straightening my office  Interesting problems tend to be complex.  This often makes them hard to understand.  Solution…  ignoring some details to focus on others  viewing details in “levels” or “layers”  Example  straightening my office

22 Complex 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 others  viewing details in “levels” or “layers”  Example  driving 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 others  viewing details in “levels” or “layers”  Example  driving from my house in Cookeville to a friend’s house in Nashville

23 The need to generalize  We would prefer not to be overly specific in either the task or solution.  Chair example  would 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 example  would 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

24 The need to generalize  Same is often true in computer science  don’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 science  don’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.

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

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

27 Why do we care?  Information science  Computers “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 science  Computers “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

28 More details…  We cover all these topics in more detail during the semester. For example…  We start getting into the details of information representation next  Chapter 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 next  Chapter 5 focuses on algorithms

29 Assignment 1  Describe a common algorithm that you perform.  Use the format from figures 0.1 and 0.2 in the book  Email to me (mjkosa@tntech.edu)  Describe a common algorithm that you perform.  Use the format from figures 0.1 and 0.2 in the book  Email to me (mjkosa@tntech.edu)


Download ppt "Computer Science, Algorithms, Abstractions, & Information CSC 2001."

Similar presentations


Ads by Google