considering your comments
They need to be able to take their notebooks, make changes, do what-ifs, share them with others in an interactive way. If our students have to retype everything to make the equations live again, they just won't do it.
Matlab can be changed. If a line is edited, for example changing "x" from 5 to 10, the entire document can be rerun with the change in effect. With Mathematica, every line of math has to be retyped, whether it has been changed or not. Tedious.
it seems that you are relating to a software other than Mathematica.
I agree that if a student will have to retype everything from the beginning, it will make everything worthless, BUT
Retyping everything? Why should they?
If a line is edited then everything need to be RETYPED? again why? If you work with := (SetDelay) and not with = (set) this dependency on the new value is automatic
even if not using := for that need, modify the line, then CTRL-A (select all) and then evaluate. For students purposes (labs and assignments), the evaluation takes not more than several seconds.
In addition, the new DynamicModule allows you to save graphics and all related evaluation with the last set of values that was used prior to the save operation, and continue the exploration (eg., Manipulate) from the last point that was considered.
Our students vote by doing and choosing Mathematica. Even when there is a "studential noise" that learning Mathematica is more difficult than learning matlab, they practically use Mathematica because they choose so.
I have also given several courses to engineers from our local industry. They had several years of matlab experience and during the course they have found Mathematica appealing to their needs (several companies with different scopes)