Middle class income, but high expenses.

Good luck to the OP. But many students who are not directly admitted – even the strongest of high school students – find that they are not able to declare cs. I know many exceedingly talented and hardworking former vals, etc, who are now majoring in something else at UW, because they were not directly admitted and their petition to declare cs later was denied despite having a fairly high GPA. As @itsv correctly mentions, a VERY high GPA is needed to declare cs if you are not a direct admit.

It can be very hard even for the best of students.