1Define the problem and identify the constraints
2Initialize a 2D table to store the maximum values
3Fill the table using a bottom-up dynamic programming approach
4Choose the items to include based on the table
5Compute the maximum value that can be put in the knapsack