(hint: In the United States, the governments spends more per household than the median income of households)
Statistically this statement is meaningless in the context of the point you are trying to make. Go look up the difference between mean and median. Then go learn about income inequality.
Students are the ones who are to gain from IT in the class room, not professors. Easily accessible and detailed syllabus online? Professor already has it memorized. Easy access to slides and notes from classes? Doesn't help the professor. Online study material? Again, does nothing for the professor. Online submission of coursework? Professor might actually take longer to grade it or even have to print it out to hardcopy, or else learn to use a software solution to mark the paper. Professors aren't motivated to use it because it means changing their existing process and they see no direct benefit to themselves.
I do not support the notion that physical medium for an intellectual property is valid as a resellable product. It worked when it was difficult to produce such mediums, but such challenges have all but disappeared. I refuse to buy a piece of IP as a physical medium, have it treated like a license to use, and then be forced to rebuy if it is damaged.
Take Redbox for example. It is insane that we have vending machines selling pieces of plastic and aluminium that we are valuing so much that people are stealing them. Imagine if you had to retake your driving test if your license was lost or destroyed or reapply for citizenship if you lost your green card. I will not be shafted by the use of a physical medium as a license agreement.
Congrats you're an edge case! Most people recognize that your code should be written to meet the requirements of the system and yeah, if you're writing code that needs to loop over a million tuples of structured data then writing logic from scratch to deal with the error handling cleanly and efficiently is a good idea. If the error is with complex data such as "the file uploaded was not a recognized image format" then you're not really going to find a much less expensive way, both in developer time and computational time than catching the exception from the method that was used to parse the file expected to be an image. While people like you working in such problem domains are greatly appreciated, yours is not the only space.
This. It's not difficult to write good defensive programs that check for nulls before performing operations and can fairly consistently never raise an exception. However, most programs need to handle inputs from other applications that the program cannot guarantee are valid, a lot of complex inputs cannot be verified by simply null checks. Additionally any developer who writes code that touches the internet(i.e. most of us) have to cope with unreliable services, deployment engineers, or worse the lack thereof setting up applications with incorrect configurations, bad inputs and network failures.
What a try catch block should really be used for, is a conscious decision point to identify where a valid program might meet an error conditions and deal with the implications of that error. Maybe the error is not finding crucial initialization parameters and all you can do is log an error, set a pretty error message for the user and kill the program. Maybe you can flush the current parameters and try again with some defaults. Maybe you can still run but with impaired functionality. Maybe you are a secondary function and it's ok if you fail but you need to let the user know.
The author's arguments boil down to "try catch blocks make my code look ugly." There is no valid solution to error handling that doesn't involve developers proactively identifying and addressing unreliable operations. Any valid solution that isn't current exception handling is going to look a lot like it because error handling is not some boilerplate task that you can wave a magic wand at and make disappear.
In any formula, constants (especially those obtained from handbooks) are to be treated as variables.