Like you mentioned before it truly is a no-brainer between UVA and USC.
As a UVA graduate, I am biased AND with UVA’s new data science building going up, I tend to believe that the rigor of the academic programming will be consistent with the rest of UVA’s academic programming in other disciplines.
Cost is always a factor and that remains a personal decision for the family.
Geographically, there’s the distance component (which can be a “pro” and/or “con” depending on the perspective).
Ultimately, it’s a tough decision and when it all boils down, UVA is my pick with USC a very, very, VERY close second. Both are winners, IMO.
USC - look up the major map for computer science. There is not a lot of flexibility and with the prerequisites and capstone requirement (not the scholar program) early graduation will be difficult. Their retention rate in engineering is very poor. I suspect part of this is kids that go below a 3.0 GPA and lose their in-state tuition benefit. They transfer out. Also look up their project to tear down Russell House in 2025. This will be impactful. It houses dining, restaurants, bookstore, movie theater, student services and many meeting rooms. It is projected to reopen in 2028 at the earliest.
UVA - the class sizes in computer science are huge, even in the later years. Google Lou’s List for examples. The retention, graduation rate and salaries out of UVA are strong. They have a BS program in the engineering school and a BA in Arts and Sciences. There is a significant cost supplement in the engineering school. Most of the classes are identical. These options give the students some flexibility.
NC State - General engineering first year and then apply to the major, like VT. Didn’t apply to these schools due to that process.