problem solving methodology

Engineering Problem Solving Methodology

  • Follow a set of steps to simplify and solve engineering problems, specifically for software solutions.

  • Different methodologies may apply to non-software engineering problems.

Software Tools

  • Common programming languages/tools:

    • MATLAB (primary focus in this course)

    • C++

    • Python

    • LabVIEW

Documentation in Assessment Tasks

  • Evidence of applying the problem-solving methodology must be shown in reports for practicals and assessment tasks.

  • Two main phases in the problem-solving methodology:

    • Design Phase (blue sections):

      • State the problem clearly.

      • Specify inputs and outputs of the program.

      • Design and test the algorithm before coding in MATLAB.

    • Implementation and Testing Phase (orange sections):

      • Code in MATLAB, run the program, and ensure outputs match expectations.

Design Phase Details

  • Problem Statement:

    • Write clear and simplified specifications from complex instructions.

    • Retain necessary details while removing excess information.

    • Encourage asking questions for clarification.

  • Specifying Inputs:

    • Identify what information must be processed within the program (user inputs, files).

    • Document how inputs will be obtained and their types (numeric, text, etc.).

  • Specifying Outputs:

    • Determine what should be output from the program and how (text, graphs).

    • Describe the format and presentation of outputs.

  • Algorithm Design:

    • Can use methods such as:

      • Flowcharts (recommended)

      • Pseudocode

    • Ensure clarity, neatness, and professional presentation in documentation.

    • Familiarize yourself with tools like Draw.io or Microsoft Visio for flowchart creation.

Testing Phase Details

  • Implement the algorithm in MATLAB after verifying design.

  • Run the program and check outputs against expected results.

    • Conduct sanity checks on outputs to verify accuracy.

  • Iterate testing: refine code, locate bugs, and re-run as necessary.

  • Perform validation for various input types, including erroneous inputs.

  • Document the process of testing your solutions and results in reports.

Conclusion

  • Follow structured problem-solving steps: state problem, specify inputs/outputs, design/verify algorithms, implement and test.

  • Additional resources will be provided for flowcharting and testing in forthcoming videos.

  • Encourage questions throughout the learning process.