4 ms·
Sadly, you are right. SICP has vanished from most introductory courses. CTM a fantastic sequel, more oriented towards formal semantics, has never really made it
by nextos 7y ago
Sadly, you are right. SICP has vanished from most introductory courses. CTM a fantastic sequel, more oriented towards formal semantics, has never really made it into mainstream.
A central topic in CS studies should be formal system semantics. These days, students only get some computability and complexity notions. Usually embedded in an algorithms course. At that's it.
Which is sad. You can get a lot of insights into CS, and Software Engineering as true engineering, by going through some basic semantics notions. Take a theorem prover, and teach students how to model different computation systems and verify some properties on them.
If time allows, expand into more efficient but less general approaches like abstract interpretation, static analysis, model checking and type/effect systems.
You don't need a ton of background. Some beautiful texts cover these with just FOPL [1,2].
[1] http://www.concrete-semantics.org/ http://www.concrete-semantics.org/
[2] http://adam.chlipala.net/frap/ http://adam.chlipala.net/frap/
- jhanschoo 7y ago> CTM Unfortunately, the accompanying Mozart 2.x interpreter/programming environment doesn't yet support some important features of the Oz language, and the old 1.4.x implementation is so outdated the easiest platform to install it for is... Windows. The macOS version seems oblivious to the relatively recent tightening of app permissions, and Linux is something I have yet to figure out.
- nextos 7y agoYes, this sucks. I have an old Ubuntu VM for running Mozart 1.4.