Note from the editor: On May 11, 2024, an indexing error was found on page 104. This has since been corrected as of June 11, 2024. For more information, please see footnote 3 of page 104. We present a new mathematical model for tiling finite subsets of $\mathbb{Z}^2$ using an arbitrary, but finite, collection of polyominoes. Unlike previous approaches that employ backtracking and other refinements of `brute-force' techniques, our method is based on a systematic algebraic approach, leading in most cases to an underdetermined system of linear equations to solve. The resulting linear system is a binary linear programming problem, which can be solved via direct solution techniques, or using well-known optimization routines. We illustrate our model with some numerical examples computed in MATLAB. Users can download, edit, and run the codes from https://doi.org/10.5281/zenodo.5975482. For larger problems we solve the resulting binary linear programming problem with an optimization package such as CPLEX, GUROBI, or SCIP, before plotting solutions in MATLAB.