CS115 -- 9/29/2004 (Recitation Objectives) and Computer Science and Objects and Algorithms.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
Chapter 1: An Introduction to Computer Science Invitation to Computer Science, C++ Version, Third Edition.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
CS 10051: Introduction to Computer Science What is the course about?
CSC 160 Computer Programming for Non-Majors Introduction Prof. Adam M. Wittenstein
Introduction to Programming with Java, for Beginners Welcome.
Programming Fundamentals (750113) Ch1. Problem Solving
An Introduction to Programming with C++ Fifth Edition Chapter 1 An Introduction to Programming.
Chapter 1 Program Design
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
CSCI-100 Introduction to Computing Algorithms Part I.
Long-term Evolution of AP® CS A Renee Ciezki SIGCSE 2013.
Introduction CSE 1310 – Introduction to Computers and Programming
CSC1401: Introductory Programming Steve Cooper
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
TEA Science Workshop #3 October 1, 2012 Kim Lott Utah State University.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
An Introduction to Programming with C++ Sixth Edition
Automata, Computability, and Complexity Lecture 1 Section 0.1 Wed, Aug 22, 2007.
Configuration Management (CM)
Fundamentals of Algorithms MCS - 2 Lecture # 1
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
CS212: DATA STRUCTURES Lecture 1: Introduction. What is this course is about ?  Data structures : conceptual and concrete ways to organize data for efficient.
1 CS 350 Data Structures Chaminade University of Honolulu.
Overview of this morning What … is computing? Why … is computing an important skill to learn? What … will my child be learning in computing lessons?
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Algorithms CS139 – Aug 30, Problem Solving Your roommate, who is taking CS139, is in a panic. He is worried that he might lose his financial aid.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
INTRO TO COMPUTING. Looking Inside Computer 2Computing 2 | Lecture-1 Capabilities Can Read Can Write Can Store A/L Operations Automation.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
The Beauty and Joy of Computing Lecture #6 Algorithms I UC Berkeley EECS Sr Lecturer SOE Dan Garcia.
SWE 4743 Abstraction Richard Gesick. CSE Abstraction the mechanism and practice of abstraction reduces and factors out details so that one can.
Algorithms CS280 – 10/20/05. Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
In the news: A recently security study suggests that a computer worm that ran rampant several years ago is still running on many machines, including 50%
Algorithms and Pseudocode
Unit 4: Processes, Threads & Deadlocks June 2012 Kaplan University 1.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
The Beauty and Joy of Computing Lecture #6 Algorithms I Jon Kotker UC Berkeley EECS 2010, 2013 Microsoft
Algorithms and Problem Solving
INTRODUCTION TO PROBLEM SOLVING
Topic: Introduction to Computing Science and Programming + Algorithm
Data Structures and Algorithms
Introduction to Computer Programming
Introduction CSE 1310 – Introduction to Computers and Programming
Algorithm and Ambiguity
Foundations of Computer Science
Introduction to Data Structures
An Introduction to Control Structures
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Algorithms and Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
An Introduction to Control Structures
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
Programming Fundamentals (750113) Ch1. Problem Solving
CSCI 203: Introduction to Computer Science I
Presentation transcript:

CS /29/2004 (Recitation Objectives) and Computer Science and Objects and Algorithms

Recitation Objectives ● Occasional projects to support lecture topics, such as studying Google as an introduction to talking about information and the web. ● Improve your programming skills ● Create a good web site (at least 2 linked pages) for yourself ● Learn at least some Java, some html, and some Linux ● An opportunity for you to check in with me about your grade if you wish to do so.

What is Computer Science? ● At the highest level computer science (CS) is the study of computation and information processing, both in hardware and in software. ● Computation can be defined as finding a solution to a problem from given inputs (information received) by means of an algorithm (set of instructions). ● For thousands of years, computing was done with pen and paper, or chalk and slate, or mentally, sometimes with the aid of tables.

Information Processing... ● At its most general, information processing is the changing (processing) of information in any manner that an observer can detect. Computer scientists study how information is used by or changed by computers.

More Computer Science ● In practice, computer science includes a variety of topics relating to computers. These range from the abstract analysis of algorithms, formal grammars, etc. to more concrete subjects like programming languages, software, and computer hardware. ● Computer science is very different from mathematics, programming, software engineering, and computer engineering, although these fields are often confused. ● Computer science has its roots in electrical engineering, linguistics, and mathematics.

Quotations... ● Edgar Dijkstra: “Computer science is no more about computers than astronomy is about telescopes.” ● Richard Feynman: “Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing!”

What is an Object? ● An object is a unique concrete instance of an abstract data type whose identity is separate from that of other objects, although it can communicate with them using messages.

What is an abstract data type? ● An abstract data type is a conceptual structure that includes both data and the methods to access it. ● Abstract data types are described in terms of the operations they support (their interface) instead of how they are implemented. Users are aware of the interface but not of the implementation. ● When done correctly this means that the implementation can be completely changed without needing to modify any existing code that is using the abstract data type.

Benefits of object-oriented programs... ● When structured correctly, one can build and change chunks of programs independently from each other. ● Another claim for object-oriented program is that this approach models real life problems "naturally" by a sort of simulation.

Objects... ● Object-based systems are typically built using a class-based language, where an instance is "instantiated" as an object of a particular class. Each instance is a variation on a general theme, which is defined by the parent class. For example, my personal plate could be described as an instance of a plate (where plates are a class of dishes).

Objects... ● In small groups, we will assign you a small task. ● Quickly identify the objects involved in the task. ● Pick ONE object and identify the attributes (qualities) of the object and its methods (actions it can do). ● Pick someone who will tell the class the task, the objects, and the attributes and methods of the object you chose.

What is an Algorithm? ● An algorithm is a well-defined set of instructions, finite in number, for accomplishing some task which, given a set of inputs, will result in some recognizable end-state. ● The concept of an algorithm is often illustrated by the example of a recipe, although many algorithms are much more complex; algorithms often have steps that repeat (iterate) or require decisions (such as logic or comparison) until the task is completed.

Formally... ● In formal mathematical terms, an algorithm is considered to be any sequence of operations which can be performed by a Turing-complete system.

Simply... ● Algorithms are the ideas behind the computer programs. ● The algorithm stays the same regardless of the language the program is written in and the location/size/generation/type of the computer on which it is running.

Algorithms... ● Algorithms typically have steps that repeat (iterate) or require decisions (comparison and logic) until the task is completed. ● Functions are often used to implement algorithms.

Different algorithms... ●... may complete the same task with a different set of instructions in more or less time, space, or effort than others. A cooking recipe is an example of an algorithm. Given two different recipes for making potato salad, one may have "peel the potato" before "boil the potato" while the other presents the steps in the reverse order, yet they both call for these steps to be repeated for all potatoes and end when the potato salad is ready to be eaten.

Correctness ● Correctly performing an algorithm will not solve a problem if the algorithm is flawed, or not appropriate to the problem. For example, performing the potato salad algorithm will fail if there are no potatoes present, even if all the motions of preparing the salad are performed as if the potatoes were there.

Some things... ● Computer scientists study include: – Objects, how and how to structure and use them – Algorithms, including correctness, appropriateness, space, time, and difficulty

Your assignment... ● Describe an object: – Pick a SIMPLE task (like making a cup of tea with a teabag). – Describe the task functionally (how would you explain it to a five-year-old). – Now describe it in an object-oriented way: ● Identify the list of objects involved ● For ONE of the objects list its attributes (qualities) and methods (the things it can do)