Michigan is indeed very good for computer science. However, with your being out of state with a very small budget it is likely to be unaffordable.
The University of Wisconsin is also excellent for computer science. It is very much at the same level as Michigan. I thought that they had a tuition sharing program of some sort with Minnesota and if this is true then it might be more likely to be affordable. I have (many years ago) worked with students and faculty at Wisconsin on a software project and they were excellent.
For software engineering, the University of Minnesota, your in-state public university, is also good. There are lots of jobs in CS and after your first two years on the job no one will care where you went to university. If nothing else comes through as affordable, UMN is a great option. Of course having this as a safety justifies the thought that you are putting in to choose good reach schools – when you have a solid safety “in the bank” it is a great starting place when looking for universities to apply to.