In Sussman's book 'Software Design For Flexibility' he uses Match? in the pattern matching chapter to run on graphs. I think OCW archived his MIT course for the book too
Yeah, guile has a library that looks close to what I want. The worry is that railway programming is an entire shift in error handling. Since it's not the standard that I've seen in the Lisp/Scheme world, I'd be forcing a paradigm that no one wants.
They're going to have change everything so use of an AI assistant doesn't matter because once they graduate they're just going to continue using it anyway.
If it's a math for finance course then some kind of model building for the midterm and being marked on the quality of the model or something. If AI becomes so good that it always chooses the best fitting model and requires no numerical optimization then they will have to change the courses to be more like UChicago where it's primarily undergrad directed research but AI assisted.
The challenge I think is that students then struggle because they used AI throughout the semester and didn't actually learn. The proper response would be to be strict and fail students that don't perform to a satisfactory level, but this messes with the funding incentives.
You can only lead a horse to water, you can't make it drink. Maybe a student's sincerity should play a larger role in the admission process, maybe with a sharp expense curve such that students judged to be more sincere have to pay less tuition. It is an inherently subjective evaluation though.
Edit: I completely misread your comment. Asking students to build a model is not a finance class anymore.
It's a welfare economics theory course that requires many frameworks with measures where you are maximizing some graphical representation. It also requires assumptions to work and can be visualized in a model where you can see what happens when one of the assumptions doesn't hold.
For example the old and new Berkeley model to study rent control effect on market prices
Usually it's paired with an Apache license to prevent patent lawsuits but the problem was that anyone could make a proprietary fork and then actively steal your labor. For example Apple yoinking the BSD packet filter and wrapping their own proprietary license around enhancements.
With LLMs can we even legally license software because some projects like OpenBSD claim there is no international law yet for code not written by humans.
The origins of mandatory education was Athens citizens being bamboozled by rhetoric all detailed here in this lecture https://youtu.be/H0z9sJyTv2w
Neitzsche had an interesting set of lectures he gave about the future of schools if you can get through the annoying style of a fictitious argument between philosopher and student. https://www.gutenberg.org/files/28146/28146-h/28146-h.htm
Another skill is conceptual design or figuring out how the user interface should work using a design method to identify logical problems because we will all still have to use software. This book and the tutorials are quite good at explaining why some software succeeds and others fail
https://essenceofsoftware.com/tutorials/
Accurate cost models for running code are still going to be needed because all the architecture is going to change. Many schools teach algorithm engineering like MIT but the best examples I've found is this course https://15799.courses.cs.cmu.edu/spring2025/schedule.html
You now can design an interface to a system that someone like a paying client will enjoy using, design the hidden 'back end' of the system to be correct using formal methods, then derive an accurate cost model to see how it will run on whatever hardware we are using 5 years from now.
If I were going into school today I would take robotics as that's the next big field and will have research grants and money coming in. It will require the same skills of formal methods for 'cyber-physical safety' and new cost models.
AI can't yet come up with any new ideas to make the inductive leap to solve a math problem. New ideas are what get the accolades and using an old idea just means the original author missed something. We are still at the author missed something stage that AI is doing today.
It can definitely be a good research assistant though
I had assumed that the recent OpenAI solution to an Erdos problem represented original mathematical thought.
I went looking for more details, and found this Scientific American article which provided some nuance I had previously missed, namely that the mathematicians involved don't think genAI created any really new mathematics - just applied what existed in an intelligent, elegant way:
All well and good, but we should also admit that under this criterion 95% of published math papers don't contain new ideas but are just filling in stuff that previous authors missed.
There's a livestream every Tues about house/landscape remodeling I've followed for years to fix my own property https://m.youtube.com/@PerfectGuyLife/streams and they talk about how any good contractor will never run out of work because it's all based on trust and local networking. Eventually these guys go into lumber yard sales because they've built up a huge network of trust that every other builder knows them and lumber sales commissions are enormous. Most yards are all locally owned family businesses too no faceless national corps.
There's a well run diner here beside the courts and because they have booths which are a little more private than tables it's always full of lawyers with clients or architects with builders that need space to lay out plans. It's always some professionals utilizing the whole table. Many armed sheriffs too so there is always security. It's run like a Michelin star restaurant the second you are out of water someone is there to refill. You will never come in and not be acknowledged immediately no matter how busy inside the staff have magical training to be able to multitask. There is tight windows for court staff they have to return on time and can't be waiting around trying to pay a bill with no staff in sight.
Beside it is a row of various hyper trendy restaurants that I never see similar patrons inside because they have terrible service and seating. The worst of them requires you to stand in a huge line and prepay then they bring the food out to you. This means watching idiot after idiot fumbling around with their phone or taking forever to find their card to pay while you stand in this line and burn up your lunch time. The clientele here is much different it's mostly tourists so is dead in the off season as no locals go.
I'm always interested in seeing how service industry runs things and it's usually just doing the basics better than everyone else that makes all the difference
This is how you get to 10x with a LLM in my limited agentic experience for doing all the scratchwork of architecting a program before you generate it:
The user facing part of your program can be planned out using conceptual design https://essenceofsoftware.com/tutorials/ the author of that book teaches it in MITs old software studio course https://61040-fa25.github.io/schedule the point is to plan out modularity and the prof does enjoy using overly complex language to describe this method but once you read through the slides and tutorials you will understand why he describes it that way because he's trying to differentiate between features and concepts. For example HN has an upvoting concept who's purpose is to establish rank then a seperate concept karma which allows you to downvote but placing both functions inside the upvoting concept breaks modularity and conceptual design makes this obvious once you practice with it. Once everything is planned out this way then generating code is trivial again in my limited experience as I'm no expert on agentic coding but I've had success doing this.
All the code the user won't see can be modeled using one of the 'lightweight' formal methods out there like forge or alloy https://forge-fm.github.io/book/2026/ where a complex protocol you write or entire system can be tested first to find illicit states. Imagine you are designing some company app where there needs to be multiple logins of different security abilities this is how you would model your security plan first and make sure a combination of states doesn't produce an unexpected breach or that you missed a state. A custom network protocol that does kernel bypass is another example. The rules of a game you build is another you don't want the system to reach a state like winner unless they actually won. I now use Forge to plan css too because I don't want to show broken css states since I have limited design experience.
Now generate the whole system as modules and never look at the code. The same property tests I used for the Forge model I make into an Oracle and then blast the agent code with random inputs.
I built several gigantic prototypes this way mostly of papers I read in database designs and screwing around with graphical interfaces for them.