Download presentation
Presentation is loading. Please wait.
Published byGarey Wiggins Modified over 9 years ago
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.