Man, what a great choice to have. What I would do and what my advice are, are two different things. My advice would depend on how meaningful $300K is to you. Does paying for that alter life in any significant way? Ie, much delayed retirement, stress/uncertainty/etc? If so, take the full ride… USC has a very good engineering program, and there are a lot of motivated students there, so there should be great networking opportunities.
If $300k just means maybe taking less nice vacations for a few years, or delaying a fancy car purchase, I’d seriously consider MIT or Stanford, depending on fit. Both can be special places if the student really matches up in terms of fit.
For me, $300K would delay retirement some and probably add stress to my life… I’d take the full ride and give my kid the $150K that I was planning on spending on his education as a gift instead.