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.