Why Public Education Requires Public Software