Introduction to Computers, Problem Solving, and Programming - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

Introduction to Computers, Problem Solving, and Programming

Description:

Introduction to Computers, Problem Solving, and Programming Chapter 1 1.1 Overview of Computers Computer - A device for counting or computing Dr. John Atanasoff ... – PowerPoint PPT presentation

Number of Views:886
Avg rating:3.0/5.0
Slides: 46
Provided by: facstaff9
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Computers, Problem Solving, and Programming


1
Introduction to Computers, Problem Solving, and
Programming
  • Chapter 1

2
1.1 Overview of Computers
  • Computer - A device for counting or computing
  • Dr. John Atanasoff - 1st computer.
  • ENIAC 1946 at U of Penn
  • Dr. John Von Neumann - Princeton
  • Stored program concept
  • Memory rather than wires and switches.
  • Computing History

3
Overview of Computers
  • Von Neumann architecture basis for today's
    computers
  • VLSI Technology made computers affordable, small
    and available to the public
  • How programming has changed over time

4
1.2 Computer Hardware
  • Every computer is organized roughly into six
    parts
  • CPU - central processing unit
  • Where decisions are made, computations are
    performed, and input/output requests are
    delegated
  • Main Memory
  • Stores information being processed by the CPU
  • Secondary Memory
  • Stores data and programs

5
Computer Hardware
  • Input devices
  • Allows people to supply information to computers
  • Output devices
  • Allows people to receive information from
    computers
  • Network connection
  • Modems / Ethernet interface

6
Computer Components
7
Main Memory
  • Address
  • Contents

-27.2
0
  • 354

1
  • .005

75.62
1024
8
Main Memory
  • Stores
  • programs
  • data
  • results
  • Types
  • RAM
  • ROM

9
Secondary Memory Storage
  • Semi permanent data-storage capability
  • Tape or Disk
  • Hard disk
  • CD ROM
  • Secondary memory has much more storage capacity

10
CPU
  • Brains of the computer
  • Arithmetic calculations are performed using the
    Arithmetic/Logical Unit or ALU
  • Control unit decodes and executes instructions
  • Arithmetic operations are performed using binary
    number system

11
CPU
  • Fundamental building block is a switch
  • Switches are made from ultrasmall transistors
  • Examples
  • The Pentium processor contains about three
    million transistors
  • The Pentium Pro has about 5.5 million
    transistors

12
Input / Output Devices
  • Accessories that allow computer to perform
    specific tasks
  • Receiving information for processing
  • Return the results of processing
  • Store information
  • Common input and output devices
  • Printer Joystick CD-ROM
  • Keyboard Monitor

13
Computer Networks
  • LAN - Local area network
  • Organizational
  • WAN - Wide area network
  • Internet

14
World Wide Web
  • Introduced 1989
  • Developed by CERN
  • European Laboratory for Particle Physics
  • Web browser
  • GUI
  • Netscape
  • IE

15
1.3 Computer Software
  • Application software
  • Programs designed to perform specific tasks that
    are transparent to the user
  • System software
  • Programs that support the execution and
    development of other programs
  • Two major types
  • Operating systems
  • Translation systems

16
Application Software
  • Application software is the software that has
    made using computers indispensable and popular
  • Common application software
  • Word processors
  • Desktop publishing programs
  • Spreadsheets
  • Presentation managers
  • Drawing programs

17
Operating System
  • Controls and manages the computing resources
  • Important services that an operating system
    provides
  • File system
  • Commands that allow for manipulation of the file
    system
  • Ability to perform input and output on a variety
    of devices
  • Management of the running systems
  • Examples
  • MSDOS , Windows , Unix

18
Programming Languages
  • Machine Language
  • Native tongue of the computer
  • Binary 0s and 1s that specify what to do
  • 0010 0000 0000 0100
  • 1000 0000 0000 0101
  • 0011 0000 0000 0110
  • High - Level Languages
  • Resemble human language (C, C, Pascal)
  • cost price tax

19
Programming Languages
  • Language Standard
  • Syntax (grammatical form) (rules)
  • Portable
  • programs used without modification
  • Source Program
  • Object Program
  • Executable Program

20
Object Oriented Programming
  • OOP derived from C
  • Bjarne Stroustrup
  • Popular because of reuse
  • Classes
  • Objects
  • Organized in a Hierarchy
  • Super Classes
  • Sub Classes

21
OO Programming and Structured Programming
  • Object-oriented design and programming supports
    good software engineering
  • Object-oriented design promotes thinking about
    software in a way that models the real world

22
OO Programming and Structured Programming
  • Algorithms are the basis for the procedural
    sections (Structured Programs)
  • Highly structured
  • Top-down design
  • Step-wise refinement

23
Object Oriented Design
  • Abstraction
  • Extract the relevant properties of an object
    while ignoring inessential details
  • Encapsulation
  • Breaking down an object into parts, hiding and
    protecting its essential information, and
    supplying an interface to modify the information
    in a controlled and useful manner

24
Object Oriented Design
  • Modularity
  • Dividing an object into smaller pieces or modules
    such that the object is easier to understand and
    manipulate
  • Hierarchy
  • Ranking or ordering of objects based on some
    relationship between them

25
Abstraction
  • Process of extracting only the relevant
    properties of an object
  • Extracted properties define a view of the object

26
Abstraction
  • Car dealer views a car from selling features
    standpoint
  • Price, warranty, color, etc.
  • Mechanic views a car from systems maintenance
    standpoint
  • Oil, oil filter, spark plugs, etc.

27
Encapsulation
  • Breaking down an object into parts, hiding and
    protecting its essential information, and
    supplying an interface to modify the information
    in a controlled and useful manner
  • By hiding the information its representation and
    content can be changed without affecting other
    parts of the system

28
Encapsulation
  • Example - car radio
  • Controlled by switches and knobs
  • The details of how it works is hidden

29
Modularity
  • Dividing an object so that the object holds
    useful information and it is easier to understand
  • Most complex systems are modular
  • Cooling System
  • Ignition System
  • Fuel System

30
Modularity
  • Example - Automobile can be decomposed into
    subsystems
  • Cooling system
  • Radiator
  • Thermostat
  • Water pump
  • Ignition system
  • Battery
  • Starter
  • Spark plugs

31
Hierarchy
  • Ranking or ordering of objects based on some
    relationship between them
  • Hierarchies facilitate understanding complex
    organizations and systems
  • Example - a company hierarchy helps employees
    understand the structure of their company and
    their positions

32
OO Classes
  • Later we will use data abstractions
  • C language
  • Will apply OO techniques
  • Structured Programming
  • Object Oriented Programming
  • Model our own objects or abstractions

33
1.4 Processing a High-Level Language Program
  • Set of programs used to develop software
  • A key component of a is a translator
  • Types of translators
  • Compiler
  • Linker
  • Examples
  • g, Borland C , Microsoft Visual C

34
Processing a Program
  • Editor used to enter the program
  • Source program (file.cpp)
  • UNIX vi text editor
  • Compiler translates the source program
  • Displays syntax errors (not descriptive)
  • Linker/Loader to combine object file with other
    object files
  • Executable program

35
Processing a Program
  • Major activities
  • Editing
  • Compiling
  • Linking with pre-compiled files
  • Object files
  • Library modules
  • Loading and executing
  • Viewing the behavior of the program

36
Process Cycle
37
1.5 Software Development Method
  • Problem Analysis - (Correct Problem)
  • Identify data objects
  • Goal to model properties
  • Determine Input / Output data
  • Constraints on the problem
  • Design
  • Decompose into smaller problems
  • Top-down design (divide and conquer)
  • Develop Algorithm (Desk check)

38
Software Development Method
  • Implementation
  • Writing the algorithm
  • Testing
  • Verify the program meets requirements
  • System and Unit test
  • Documentation
  • Key part in the development process

39
Software Development Method
  • Software engineering
  • Area of computer science concerned with building
    large software systems
  • Challenge
  • Tremendous advances in hardware have not been
    accompanied by comparable advances in software

40
Software Engineering Goals
  • Reliability
  • An unreliable life-critical system can be fatal
  • Understandability
  • Future development becomes very difficult if
    software is hard to understand
  • Cost Effectiveness
  • Cost to develop and maintain should not exceed
    profit

41
Software Engineering Goals
  • Adaptability
  • System that is adaptive is easier to alter and
    expand
  • Reusability
  • Improves reliability and maintainability, and
    reduces development costs

42
1.6 Applying the Software Development Method
  • Case Study Converting Miles to Kilometers
  • Problem  Your summer surveying job requires you
    to study some maps that give distances in
    kilometers and some that use miles. You and your
    coworkers prefer to deal in metric measurements.
    Write a program that performs the necessary
    conversion.

43
Applying the Software Development Method
  • Analysis  The first step in solving this problem
    is to determine what you are asked to do. You
    must convert from one system of measurement to
    another, but are you supposed to convert from
    kilometers to miles, or vice versa? The problem
    states that you prefer to deal in metric
    measurements, so you must convert distance
    measurements in miles to kilometers.

44
Applying the Software Development Method
  • Design  The next step is to formulate the
    algorithm that solves the problem. Begin by
    listing the three major steps, or sub problems,
    of the algorithm.
  • Implementation  To implement the solution, you
    must write the algorithm as a C program.
  • Testing  How do you know the sample run is
    correct?

45
1.7 Professional Ethics for Computer Programmers
  • Privacy and Misuse of Data
  • Computer Hacking
  • Plagiarism and Software Piracy
  • Misuse of a Computer Resource
Write a Comment
User Comments (0)
About PowerShow.com