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

Slides:



Advertisements
Similar presentations
Science as a Process Chapter 1 Section 2.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
“The study of algorithms is the cornerstone of computer science.” Algorithms Winter 2012.
Using the Crosscutting Concepts As conceptual tools when meeting an unfamiliar problem or phenomenon.
Thinking ‘Behind’ the Steps Engaging Students in Thinking ‘Behind’ the Steps.
An Introduction to Programming and Object Oriented Design using Java 2 nd Edition. May 2004 Jaime Niño Frederick Hosch Chapter 0 : Introduction to Object.
Reflection (Winograd) A workshop initiated the book. –more workshops ongoing A list of questions:
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Areas of Concentration:  Biology  Physical Science (Physics & Chemistry)  Mathematics  Technology  Earth & Space Science.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
1 Lecture-I CSIT-120 Spring 2001 Introducing the Course Syllabus Introduction to Computers Introduction to Computer Science Information, Algorithms and.
CS 10051: Introduction to Computer Science What is the course about?
1 CS150 Introduction to Computer Science 1 Professor: Chadd Williams
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 1: Overview and Welcome Dr. Martin Dickey University of Washington.
Chapter 1 Program Design
Introduction to Software Engineering CS-300 Fall 2005 Supreeth Venkataraman.
Science Inquiry Minds-on Hands-on.
Semantic Web Technologies Lecture # 2 Faculty of Computer Science, IBA.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
PROGRAMMING LANGUAGES The Study of Programming Languages.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
CSC2012 Database Technology & CSC2513 Database Systems.
Algorithms Describing what you know. Contents What are they and were do we find them? Why show the algorithm? What formalisms are used for presenting.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Introduction Welcome to COSC 135 – Introduction to Computer Science Dr. Donald Simon.
Texas A&M University Page 1 9/16/ :22:47 PM Wei Zhao Texas A&M University Is Computer Stuff Science, Engineering, or Something else?
Knowledge representation
WXGE 6103 Digital Image Processing Semester 2, Session 2013/2014.
The student will demonstrate an understanding of how scientific inquiry and technological design, including mathematical analysis, can be used appropriately.
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
The Scientific Method: A Way to Solve a Problem
1 Science as a Process Chapter 1 Section 2. 2 Objectives  Explain how science is different from other forms of human endeavor.  Identify the steps that.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
Science and Psychology Psych 231: Research Methods in Psychology.
ADS511 RESEARCH METHODOLOGY AND DATA ANALYSYS
Chapter 0 Introduction © 2007 Pearson Addison-Wesley. All rights reserved.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Section 2 Scientific Methods Chapter 1 Bellringer Complete these two tasks: 1. Describe an advertisement that cites research results. 2. Answer this question:
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
OOP (Object Oriented Programming) Lecture 1. Why a new paradigm is needed? Complexity Five attributes of complex systems –Frequently, complexity takes.
Mixed Bag True or False Brainstorming Definitions 1 Definitions
Major Science Project Process A blueprint for experiment success.
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
Copyright © by Holt, Rinehart and Winston. All rights reserved. Resources Chapter menu Section 2 Scientific Methods Chapter 1 Bellringer Complete these.
CS 1110/1111 The Case for Computer Science CS 1110/1111 – Introduction to Programming.
College of Computer Science, SCU Computer English Lecture 1 Computer Science Yang Ning 1/46.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
Chapter 1 What is Biology? 1.1 Science and the Natural World.
Chapter 0 Introduction. © 2005 Pearson Addison-Wesley. All rights reserved 0-2 Chapter 0: Introduction 0.1 The Role of Algorithms 0.2 The Origins of Computing.
ISE Key Concepts Terminology –systems engineering: an interdisciplinary approach and means to enable the realization of successful systems. It.
CHAPTER 1 HUMAN INQUIRY AND SCIENCE. Chapter Outline  Looking for Reality  The Foundation of Social Science  Some Dialectics of Social Research  Quick.
IMS 4212: Course Introduction 1 Dr. Lawrence West, Management Dept., University of Central Florida ISM 4212 Dr. Larry West
AP CSP: Creating Functions & Top-Down Design
Algorithms and Problem Solving
Object-Oriented Software Engineering Using UML, Patterns, and Java,
CS 21a: Intro to Computing I
Course Overview - Database Systems
Chapter 0 Introduction © 2007 Pearson Addison-Wesley.
Chapter 0 : Introduction to Object Oriented Design
Algorithms and Problem Solving
A Very Brief Introduction to Relational Databases
Computational Thinking
Presentation transcript:

Computer Science, Algorithms, Abstractions, & Information CSC 2001

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?

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

Science of computing?

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

Alternatives?  Alternatives to “science”?

Possible alternatives…  Engineering  Art  Engineering  Art

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

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…  “… 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 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?

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

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)

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.

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?  “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?  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

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

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

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.

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

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

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

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.

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.

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

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

Assignment 1  Describe a common algorithm that you perform.  Use the format from figures 0.1 and 0.2 in the book  to me  Describe a common algorithm that you perform.  Use the format from figures 0.1 and 0.2 in the book  to me