Untitled

10 min read Original article ↗
Brent A. Yorgey 2026 4 27 http://ozark.hendrix.edu/~yorgey/forest/00FD/ 00FD /~yorgey/forest/00FD/ To my students There have been times, especially this year, when I wonder despairingly what it is exactly that I am preparing you for. The software industry is going completely insane, not to mention the political climate. It feels almost unethical to train you as computer scientists only to send you out into a world where entry-level computing jobs are difficult to find; where intellectual property is not respected; where code quantity is valued over quality, and short-term profits over long-term sustainability; where technology is used to distract, extract, surveil, and kill, and designed to exploit some of our deepest cognitive biases and blind spots; where centuries of bias and discrimination are enshrined in systems trained on biased data; where scarce resources are consumed by profligate use of computing for uncertain benefits; where people are racing to create intelligent machines, but only in order to make them slaves. I originally got into computing because of the beauty of ideas, the joy of creating, and the possibility of building tools to help people and foster human relationships. I still believe in those things, even though it seems like most of the industry does not. I'm writing this in the hope and knowledge that you believe in those things, too. There are things I want to say to you—things that are far more important than any content I might teach you, but things I'm never quite sure how or when to say in class. So I decided to write them here. I hope you will find something here that is helpful to reflect on, whether you are imminently going out into the world or continuing your studies. Don't believe self-serving lies about technologies being "inevitable" or "here to stay". You don't have to just go along with the dominant narrative. You can make deliberate choices and help others to do the same. Be intentional about deciding your own moral and ethical boundaries up front. Don't settle for the lie of compromising your principles "just for now" until you can find something better. Cultivate your ability to think deeply. Do whatever it takes to carve out distraction-free bubbles for yourself in both space and time. This might mean saying no to technologies or patterns of working that others say are critical or inevitable. Care deeply about your craft. Refactor code until it is clear and elegant. Write good documentation for other humans to read. Have the courage to go slowly, especially when everyone else is telling you that you need to go fast and cut corners. Care more about people, relationships, and justice than you do about profits, code, or productivity. Above all, be motivated by love instead of fear. References Context Backlinks Brent A. Yorgey 2026 5 3 http://ozark.hendrix.edu/~yorgey/forest/2026-W17/ 2026-W17 /~yorgey/forest/2026-W17/ Weeknotes for 1 May 2026 (week 17) Brent A. Yorgey 2026 5 3 Wrapping up the semester Friday, May 1 was the last day of classes for the semester. There is still plenty of work to do over the next two weeks (final exams / final project presentations, grading, dealing with cases of academic misconduct, etc.) but the pace will be much more relaxed. I'm looking forward to slowly ramping up some summer projects. Brent A. Yorgey 2026 5 3 Thoughts on Forester for lecture notes Using Forester to write up lecture notes for my Discrete Mathematics course has been a resounding success. Writing them in this medium forced me to think much more carefully about how things are organized and presented, which in many cases led me to make substantive changes for the better, despite having taught this course many times before. I think the students also found it helpful to have the notes available in an easily searchable and hyperlinked format. One of the things I want to do over the next few weeks is to go through the notes to clean some things up, add more hyperlinks, and add some extended/optional material in cases where I didn't have time during the semester, possibly put together a simple preprocessor that will allow me to embed Diagrams code—but overall I think the notes are in really great shape. I definitely plan to do something similar for other courses in the future. Next up will be my Algorithms course in the fall, I think. Brent A. Yorgey 2026 5 3 "To my students" On Monday, I published a piece I had been working on for a while, unimaginatively titled To my students. This year in particular, it felt increasingly disingenuous to say nothing about the current political and technological climate—but I am not good at speaking extemporaneously about such weighty topics, so I decided to write something instead. When it was finished, I emailed a link to my students, and posted a link on Mastodon. I was not expecting the magnitude of the response. I heard from many current students who were appreciative, and had interesting conversations with several of them. My piece apparently got posted to a much wider student community via social media. My Mastodon post got much more traction than my posts usually do (though 120 boosts hardly counts as "going viral"). It was also posted to Hacker News, and I made the mistake of reading some of the comments. I heard from a few random strangers for whom the piece resonated particularly strongly. I also heard from someone who was my student when I taught high school math 20 years ago. With the exception of the Hacker News comments, overall the experience was very positive and encouraging. Brent A. Yorgey 2026 5 3 Mutable and immutable arrays and CESK machines I have continued working on immutable arrays in Swarm, but have been stymied by the complexity of implementing a fully general introduction form via a CESK machine. Trying to implement it from scratch was breaking my brain, so I tried implementing it in pure Haskell, then doing a manual CPS transformation followed by manual defunctionalization, to try to more mechanically derive the required CESK implementation, but even that was breaking my brain. I finally realized this morning that perhaps I have been thinking about this all wrong. I started out implementing only immutable arrays because I thought it would be simpler—and I figured I would introduce mutable arrays later. But the need for such complicated introduction forms could be circumvented entirely with mutable arrays. That is, I think I will stick with a simple yet impoverished introduction form for immutable arrays for now (unfoldArray : b -> (b -> (Unit + a*b)) -> Array a), and then later introduce mutable arrays along with a copying freezeArray : MArray a -> Array a. Although thinking about general introduction forms for immutable arrays has been interesting, I think this will be a lot simpler and more robust. Brent A. Yorgey 2026 5 3 Piano corner I've continued working on the Chopin 1st concerto. I'm close to being able to play the entire first movement—only the coda still needs significant work. Over the summer I want to continue working on the concerto while also being more systematic about practicing other things in my repertoire and possibly learning some other, shorter, new pieces as well. Through an unlikely series of events, it looks like I may have an opportunity to acquire a free (!!) 2002 Yamaha C7 grand piano for my church. This is one of the absolute best pianos on the market, and typically costs something like $20k-30k used; a brand-new Yamaha C7X, the successor model, costs about $90k. Getting one for free still seems too good to be true, but I am warily optimistic. I will certainly write about it (with pictures) if it does indeed come together! In that case I will almost certainly be spending more time at my church just to play it... I love my Yamaha T118 upright, but it can't compare with a 7'6" Yamaha grand. Brent A. Yorgey 2026 3 7 http://ozark.hendrix.edu/~yorgey/forest/009L/ 009L /~yorgey/forest/009L/ Statement on LLMs I do not and will not use LLMs, in any form, for any purpose. Although LLMs are fascinating from a purely technical perspective, I refuse to participate in or contribute to such systems that are built on massive exploitation of human labor and make profligate use of scarce resources. I also don't think they are actually very good for a lot of the applications people seem excited about. Even in cases where LLMs are technically good at a task, that does not necessarily mean their use for that task contributes positively to human flourishing. A good way to describe myself is as a generative AI vegetarian. You can find a fuller explanation—and many, many links—at the above essay by Sean Boots, which I agree with almost 100%. On bad days, I find myself feeling more like Anthony Moser. Here is something I wrote for my students reflecting on the current state of the world and what I hope for them as they go out into it. 2025 10 24 http://ozark.hendrix.edu/~yorgey/forest/0002/ 0002 /~yorgey/forest/0002/ Teaching I teach computer science and mathematics at Hendrix College. Here is a short letter I wrote to my students reflecting on the current state of the world and what I hope for them as they go out into it. 2025 10 24 http://ozark.hendrix.edu/~yorgey/forest/0003/ 0003 /~yorgey/forest/0003/ Current courses (Spring 2026) This spring, I am teaching two courses and one lab section: MATH 240, Discrete Mathematics CSCI 365, Functional Programming I am also facilitating one lab section for CSCI 150, Foundations of Computer Science. Classes are finished; just a couple more weeks of finals and graduation. 2025 10 24 http://ozark.hendrix.edu/~yorgey/forest/0004/ 0004 /~yorgey/forest/0004/ Previous courses 2025 10 25 http://ozark.hendrix.edu/~yorgey/forest/000I/ 000I /~yorgey/forest/000I/ Previous courses taught at Hendrix College LBST 150J, The Engaged Citizen: The Art and Science of Creativity (co-taught with Melissa Gill, F '20) LBST 101, Explorations (F '18, F '20, F '22, F '24) CSCI 150, Foundations of Computer Science (F '15, S '16, S '17, S '18, F '18, S '19, F '19, S '20, S '21, F '22, S '23, F '23, S '24, S '25, F '25, S '26) CSCI 151, Data Structures (F '16, F '17, S '19) MATH 240, Discrete Mathematics (S '20, S '21, S '22, S '23, S '25, S '26) CSCI 322, Computing Systems Organization (S '22, S '24) CSCI 382, Algorithms (S '16, S '17, F '17, F '18, F '19, F '20, F '22, F '23, F '24, F '25) CSCI 360, Programming Languages (F '16, F '18, S '21, S '23, S '25) CSCI 365, Functional Programming (S '16, S '18, S '20, S '22, S '24, S '26) CSCI 410, Senior Seminar (F '16, F '17, F '19, F '20, F '22, F '24) 2025 10 25 http://ozark.hendrix.edu/~yorgey/forest/000J/ 000J /~yorgey/forest/000J/ Previous courses taught at Williams College CS 134, Digital Communication and Computation, an Introduction to Computer Science (co-taught with Bill Lenhart, F '14) CS 354, Functional Programming and the Art of Recursion (F '14) CS 136, Data Structures and Advanced Programming (S '15) 2025 10 25 http://ozark.hendrix.edu/~yorgey/forest/000K/ 000K /~yorgey/forest/000K/ Previous courses taught at University of Pennsylvania The Art of Recursion (F '12) CIS 194, Introduction to Haskell (F '10, S '12, S '13) CIS 500, Software Foundations (TA; S '10, S '11) CIS 120, Programming Languages and Techniques I (TA; F '09) 2025 10 25 http://ozark.hendrix.edu/~yorgey/forest/000L/ 000L /~yorgey/forest/000L/ Other previously taught courses Woodrow Wilson Senior High School, Washington DC Introduction to Computer Science ('04-'05, '05-'06) AP Computer Science AB ('04-'05, '05-'06) Honors Precalculus ('05-'06) Correspondence course in precalculus with homeschool students ('08-'09) Related Contributions