An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.

Slides:



Advertisements
Similar presentations
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Advertisements

Lecture 1: Overview of Computers & Programming
Object-Oriented Software Development CS 3331 Fall 2009.
Compiler Construction by Muhammad Bilal Zafar (AP)
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.
Introduction To System Analysis and Design
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Introduction to Computers and Programming. Some definitions Algorithm: –A procedure for solving a problem –A sequence of discrete steps that defines such.
Programming Languages Structure
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Introduction to Computers and Programming. Some definitions Algorithm: Algorithm: A procedure for solving a problem A procedure for solving a problem.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1 Introduction.
Chapter 1: Introduction To Computer | SCP1103 Programming Technique C | Jumail, FSKSM, UTM, 2005 | Last Updated: July 2005 Slide 1 Introduction To Computers.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
1 I.Introduction to Algorithm and Programming Algoritma dan Pemrograman – Teknik Informatika UK Petra 2009.
CS102 Introduction to Computer Programming
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Computer Programming-1 CSC 111 Chapter 1 : Introduction.
Powered by DeSiaMore1 Programming Concepts David T. Makota Department of Computing & Information Technology (CIT) The Institute of Finance Management Dar.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Topics Introduction Hardware and Software How Computers Store Data
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
CSC-115 Introduction to Computer Programming
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Chapter 1 The Big Picture.
Computer Science 101 Introduction to Programming.
Introduction to Programming Using C Introduction to Computer Programming.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
Introduction To System Analysis and Design
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Introduction Lecture 01.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 1- 1 October 20, October 20, 2015October 20, 2015October 20,
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
1 Programming Fundamentals How to Program in C++ How to Program in C++
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Computer and Programming. Computer Basics: Outline Hardware and Memory Programs Programming Languages and Compilers.
Introduction to Computer Programming using Fortran 77.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 1 An Introduction to Visual Basic.NET and Program Design.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Programming with Java. Chapter 1 Focuses on: –components of a computer –how those components interact –how computers store and manipulate information.
Advanced Computer Systems
Topics Introduction Hardware and Software How Computers Store Data
CSCI-235 Micro-Computer Applications
Introduction to Visual Basic 2008 Programming
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Foundations of Computer Science
Course supervisor: Lubna Siddiqui
Computer Science I CSC 135.
Computers: Hardware and Software
Topics Introduction Hardware and Software How Computers Store Data
Chapter 0 : Introduction to Object Oriented Design
Chapter 1 Introduction(1.1)
Introduction to Computer Systems
Chapter 1: Introduction to Computers and Programming
Presentation transcript:

An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton

Chapter 1 Introduction

This chapter discusses n Computing as a science. n Analysis of large software systems. n Fundamental hardware and software concepts. n Basic notions necessary to survive.

What is Computer Science? n Computer science is a science of abstraction – creating the right model for a problem and devising the appropriate mechanizable technique to solve it. –A. Aho and J. Ullman n Not the “science of computers.” n Many concepts were framed and studied before the electronic computer. n To the mathematicians and logicians of the ‘20’s and ‘30’s, a computer was a person with pencil and paper.

The Science of Computing n Automated problem solving. n Automated systems that produce solutions. n Methods to develop solution strategies for these systems. n Application areas for automatic problem solving.

Foundations of computing n Fundamental mathematical and logical structures for u Understanding computing. u Analyzing and verifying the correctness of software and hardware.

Systems definitions n computer architecture: organization and structure of hardware. n operating systems: fundamental resource management software. n distributed systems:connecting computers together in order to share resources and information (networking).

Applications n There are numerous applications of computer science. u Artificial intelligence u Data base management u Computer graphics u Etc.

Methods n Design and assessment of techniques and software tools for creating automated problem solutions. n programming language: a precise, formal notation for expressing and analyzing a natural, correct, efficient program solution.

Methods (cont.) n software engineering: the study of methods for producing and evaluating software. This is the primary topic of the course.

What is a Software System? n Sometimes called a program or application. n A temporary solution to a changing problem. n 2 major attributes inherent in Software Systems: u dynamics u complexity

Dealing with complexity: Composition n composite structure: a software system composed of manageable pieces. n The smaller the component, the easier it is to build and understand. n The more parts, the more possible interactions there are between parts and the more complex the resulting structure.

Dealing with complexity: Composition (cont.) n Balance between simplicity and interaction minimization. n Example: An audio system is easy to manage because each component has a carefully specified function and the components are easily integrated i.e. The speakers are easily connected to the amplifier.

Counterexample n The function of a “Rube Goldberg” device is not obvious, modification is almost unthinkable, the parts lack an intrinsic relationship to the problem the device solves, and the complexity is high.

n Dealing with system components and their interactions without worrying about specific details. n Not “vague” or “imprecise.” n Limitation of view to a few properties. n Elimination of the irrelevant and amplification of the essential. n Capturing commonality between different things. Dealing with complexity: Abstraction

Two aspects of a system: n data: the information the program deals with. n functionality: what the program does with the data.

Systems:Data n data descriptions: the type of data to be stored; fixed for a program. n data values: actual values stored for each descriptor. Variable each time the program is run. n Example: Descriptor: Name Value:John

Systems: Functionality n computation: Performance of some sequence of goal-directed actions with a set of data values. n processor: Whatever performs the actions. n algorithm: A set of instructions describing a pattern of behavior guaranteed to achieve some goal.

Components of a computation

Object-oriented systems n Composite, modular constructions, built using abstraction, consisting of components, and organized around the data. n model: an abstraction of a real-world problem that can be represented and manipulated with a computing system. n software system: a collection of abstractions that work together to solve problems.

Object-oriented systems (cont.) n These abstractions are called objects. n Each object has its own properties and functionality. n Reusable components are the key to the efficient production of reliable systems.

Computer system n Input/Output:communication with the outside world. n processor: performs computation using the instruction set. n memory: stores the data and algorithms the system is using, i.e. RAM. n file system: stores data and algorithms not currently being used. i.e. disks. n network: several connected computers and other devices.

Simple model of a computer system

Memory n Data encoding schemes: letters, digits, punctuation marks, etc. often are encoded as 8-bit sequences.  “ A ” might be represented as n Memory is divided into fixed size locations, each with a unique address. u Data and instructions are accessed using their addresses and by knowing their sizes.

Successive snapshots of a machine

Software tools n operating system: fundamental hardware-resource management software. n programming language: the formal expression of data descriptions and algorithms. n text editor: the means provided for us to write and edit programs.

Software tools (cont.) n compiler: a program that translates programs written in a specific programming language into a a more machine-like language. n interpreter: software that reads and executes a machine-independent intermediate language (called “byte- code” in the case of Java).

Operating system n MS-DOS, Windows NT, Solaris, etc. n Performs functions such as verifying user names and passwords, deciding where in memory a program will be loaded, loading programs from disk, etc.

Programming languages n Java, C++, Pascal, etc. n syntax: the set of grammatical and punctuation rules for the language. n semantics: the set of rules that specify the meaning of syntactically legal constructs. n Each legal construct has exactly one meaning.

Errors in the programming process n error: a mistake made in the design, programming, or use of a system. n failure: inability of the system to perform its intended function. n Errors cause failures.

Errors in the programming process (cont.) n Computer systems fail because of u conceptual errors u data errors u hardware failures u software errors n Conceptual errors: misunderstanding of the system.

Errors in the programming process (cont.) n data errors: incorrect data. n software errors: u Syntactic errors: writing something that the programming language doesn’t understand. They are found during compilation. u Logical errors: syntactically correct but not programmed logically (“wok your dog”)

We’ve covered n Large systems are complex and change over time. n To address this, we build systems that are modular, with composite construction, and make extensive use of abstraction. n We also covered, a conceptual model of the supporting hardware system; n And a basic understanding of the purpose of fundamental software such as operating systems, compilers, and interpreters.

Glossary

Glossary (cont.)