CS.313 ?????????????????????????? - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

CS.313 ??????????????????????????

Description:

... causes & effect Programming Principles Programming Languages Program ... paradigm Practice make ... Programming Languages ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 42
Provided by: staffCsP
Category:

less

Transcript and Presenter's Notes

Title: CS.313 ??????????????????????????


1
????????????????????????????????????????????
  • ?.????? ???????
  • CS.313 ??????????????????????????

2
Outline
  • Problem Solving
  • Definition
  • Problem
  • Problem Solving
  • Strategies
  • Techniques
  • Tools
  • Approach
  • Programming Principle
  • Programming Language
  • Programming Design
  • Programming Paradigms

3
Problem Solving Definition
  • Problem
  • .................................................
    ..................................................
    .............................
  • .................................................
    ..................................................
    .............................
  • .................................................
    ..................................................
    .............................
  • Problem Solving
  • The process of transforming the description of a
    problem into the solution of that problem by
    using own knowledge of the problem domain and be
    relying on the ability to select and use
    appropriate problem solving strategies,
    techniques and tools

4
Problem Domain
  • sciences mathematics , statistics , chemistry ,
    physics, biology
  • business inventory , accounting
  • education registration , evaluation
  • banking ATM , loaning , report
  • others restaurant , transportation , hotel ,
    department store

5
Problem Solving Strategies
(Algorithm Design Techniques)
  • Divide and Conquer
  • Dynamic Programming
  • Greedy Algorithms
  • etc.

6
Problem Solving Techniques
  • Top-down Stepwise Refinement
  • Structured Programming
  • Modular Design
  • Bottom-up Approach
  • Recursion

7
Problem Solving Tools
  • Pseudo Code
  • Flowchart
  • Programming Languages
  • Editor
  • Debugger

8
Problem Solving Approach
  • Software Development Method or Software Life
    Cycle
  • Use computers in problem solving consists of 6
    steps
  • Requirement Specification
  • Analysis
  • Design
  • Implementation
  • Testing And Verification
  • Documentation

9
Software Life Cycle
  • Requirement Specification
  • what the problem is
  • what is needed to solve
  • what the solution should provide
  • any constraints and special conditions to
    concern
  • depend on familiarity with the problem domain

10
Software Life Cycle
  • Analysis
  • Input
  • Output
  • Constraints/Conditions
  • Formulas

11
Software Life Cycle
  1. Design
  • 3.1 Algorithm design
  • definition
  • requirement
  • strategy
  • techniques
  • 3.2 Data design
  • Input/Output
  • Process
  • Types
  • Representation
  • Structure
  • manipulation

12
Software Life Cycle
  • 3.1 Algorithm design
  • Algorithm Definition
  • Algorithm a method of solution described as a
    sequence of steps to be performed in a specific
    logical order.

13
Software Life Cycle
  • 3.1 Algorithm design
  • Satisfied Requirements
  • Unambiguousness
  • Generality
  • Correctness
  • Finiteness

14
Software Life Cycle
  • 3.1 Algorithm design
  • Representation Strategy
  • Pseudocoding
  • Flowcharting
  • HIPO Chart

15
Software Life Cycle
  • 3.1 Algorithm design
  • Techniques
  • Greedy Method
  • Divide and Conquer
  • Dynamic Programming
  • Backtracking Algorithms
  • etc.

16
Software Life Cycle
  • 3.2 Data design
  • Input/Output
  • Process
  • Types constant/variables ,global/local
  • Representation number , text , etc.
  • Structure array, file , queue , tree , etc.
  • Manipulation operators , functions

..................................................
..................................................
..................................................
..........
..................................................
..................................................
............................................
..................................................
..................................................
..................................................
...................
..................................................
..................................................
.................................................
17
Software Life Cycle
  • Implementation or Coding
  • Programming Languages
  • writability
  • readability
  • modifiability
  • reusability

18
Software Life Cycle
  • Implementation or Coding
  • Important as designing skill
  • programming is the art of designing efficient
    algorithms to meet requirements
  • Programming errors
  • Debugging techniques
  • Strategies for defensive
  • Programming

19
Software Life Cycle
  • Implementation or Coding
  • Programming Errors
  • design errors
  • syntax/compilation errors
  • linker errors
  • run-time errors
  • warning diagnostic message

20
Software Life Cycle
  • Implementation or Coding
  • Debugging techniques
  • The ability to debug programs is another
    problem-solving skill that is as important as the
    ability to design programs
  • Debugging is the process of finding and
    correcting errors in computer programs

21
Software Life Cycle
  • Implementation or Coding
  • Debugging techniques
  • design errors
  • quite difficult to debug , no error message ,
    incorrect output sometimes
  • incorrect formula , wrong program logic ,
    inappropriate data type
  • careful review in analysis and design , use
    variety of testing data

22
Software Life Cycle
  • Implementation or Coding
  • Debugging techniques
  • syntax/compilation errors
  • Detect by compilers
  • Something missing / undeclared var.
  • Easy , just correct error sources
  • warning diagnostic message
  • Strange but can still proceed
  • Unreferenced var.
  • Get rid of causes or ignore

23
Software Life Cycle
  • Implementation or Coding
  • Debugging techniques
  • linker errors
  • Some errors prevent the linker to create the
    executable module
  • Function prototypes do not match their
    definitions
  • solution correct prototypes

24
Software Life Cycle
  • Implementation or Coding
  • Debugging techniques
  • run-time/execution errors
  • while executing , difficult to debug, abnormal
    termination
  • divide by zero , type mismatch ,index is out of
    range, domain error
  • trace/step watch some variables value , error
    handling

25
Software Life Cycle
  • Implementation or Coding
  • Strategies for defensive
  • correction errors debug
  • defence to prevent abnormal termination
    /errors
  • preparing to manage errors
  • if (a lt o)
  • using exception handler

26
Software Life Cycle
  • Testing And Verification
  • program verification
  • the process of ensuring that a program meets
    user requirements
  • one of the techniques that can be used for
    program verification is program testing

27
Software Life Cycle
  • Testing And Verification
  • program testing
  • the process of executing a program to demonstrate
    its correctness
  • testing methods
  • test data
  • testing modules driver , stub
  • top-down testing
  • bottom-up testing
  • blackbox .vs. whitebox

28
Software Life Cycle Example
  • Requirement Specification
  • ??????????????????????????????? 2 ?????? (x1 ,y1
    ) ??? (x2 ,y2 )
  • ???????

29
Software Life Cycle Example
  • Analysis
  • Input integer x1 , y1 , x2 ??? y2
  • Output float positive value
  • Formulas

30
Software Life Cycle Example
  • Algorithm Design
  • Pseudocode
  • Read x1 , y1 , x2 , y2
  • dist sqrt((x1 - x2)2 (y1 - y2)2)
  • Write dist
  • end

31
Software Life Cycle Example
  • Implementation or Coding
  • include ltstdio.hgt
  • include ltmath.hgt
  • void main()
  • int x1, x2, y1, y2
  • float dist
  • scanf(d d d d, x1, y1, x2, y2)
  • dist sqrt((x2-x1)(x2-x1)(y2-y1)(y2-y1))
  • printf(distance f\n,dist)

32
Software Life Cycle Example
  • Testing And Verification
  • verifying compile and debug
  • data test 3 0 0 4
  • output 5.0

33
Software Life Cycle
  • Documentation
  • System documentation
  • Program documentation
  • User documentation

34
Software Life Cycle
  • Documentation
  • System documentation
  • Context Diagram
  • Dataflow Diagram
  • Database Design E-R diagram , Relational
    model , Data dictionary
  • System modules/flowchart

35
Software Life Cycle
  • Documentation
  • Program documentation
  • Flowchart / Pseudocode
  • Program Listing
  • Sufficient in-program comment , indentation

36
Software Life Cycle
  • Documentation
  • User documentation
  • Interfaces
  • Input Examples
  • Output Examples
  • Error messages causes effect

37
Programming Principles
  • Programming Languages
  • Program Design
  • Programming Paradigms

38
Programming Languages
  • Why programming languages ?
  • to enable the user to enlist the help of a
    computer in solving problems in the domain of
    interest
  • to enable the user to bridge the gap between
    problem and machine domain

39
Program Design
  • modular design
  • top-down approach
  • bottom-up approach
  • stepwise refinement
  • structured programming
  • etc.

40
Programming paradigms
  • imperative paradigm
  • functional paradigm
  • logic paradigm
  • object-oriented paradigm

41
  • Practice make perfect
Write a Comment
User Comments (0)
About PowerShow.com