Shriram Krishnamurthi 🟀 πŸ΄β€β˜ οΈ πŸ‘¨πŸ½β€πŸ« πŸš΄β€β™‚οΈ 🏏 Profile picture
🦣: @shriramk@mastodon.social β€’β€’β€’ @BrownCSDept / @BrownUniversity || @BootstrapWorld || @PyretLang || @racketlang || compsci || education || cycling || cricket
Jan 1 β€’ 14 tweets β€’ 3 min read
0/12 Here's a thread with links to reviews of the dozen most interesting books I read this past year: ↡ 1/12 Post-war Germany:
Nov 21, 2022 β€’ 10 tweets β€’ 3 min read
1/ "What programming language should I teach?" is the least productive question to ask in computing. There's a good reason: it's the wrong question to ask. The reason language wars feel pointless is that they're a symptom of this problem. Here's why: ↡ 2/ Curricula are never designed in isolation. All curricula, for anything, have to consider at least two things. First: goals. These include learning objectives, but often go farther (like "students must eventually get jobs"). ↡
Nov 20, 2022 β€’ 11 tweets β€’ 3 min read
1/ Many will tell you why Python is great for teaching coding, so I'll tell you ways it's not.

State is a bad default. It should be legal but safe & rare. The arc of programming is long and bends towards immutability. Its early use creates messes (eg, "a variable is a box".) ↡ 2/ Rich and robust programming requires a strong understanding of data models and invariants. Python is weak at expressing either of those. You don't notice it until you miss it. ↡
Jul 22, 2022 β€’ 33 tweets β€’ 9 min read
1/ CW: Holocaust. Since most of you will never visit Erfurt, a short thread on how engineering prowess devoid of humanity can lead to the most evil kinds of technological progress. A warning for all techies. I'll start in the next tweet for those for whom this is too much. ↡ 2/ If you've visited concentration camps crematoria, you may have seen a brand name proudly advertised. It stands out: it's close to the ONLY brand you really see. The biggest crematorium supplier: Topf & SΓΆhne, Erfurt. I first saw it in Buchenwald ~25y ago. Always wondered. ↡ "Topf & SΓΆhne, Erfurt" logo from Buchenwald
Jun 15, 2022 β€’ 18 tweets β€’ 5 min read
1/ Since reproducibility in PL seems to be hot topic today, here's some (personal) historical perspective. I'm writing this mainly for the benefit of, say, junior grad students, who may not be aware of some of this and may benefit from the background. ↡ 2/ Anecdotally (someone here will jump in and provide better evidence), there have long been issues with performance numbers in PL. I learned in grad schools compilers courses that: ↡
May 8, 2022 β€’ 17 tweets β€’ 4 min read
1/ This was a fun question with lots of interesting answers, though in the end Ian was pretty disappointed by the replies. But I thought it would be interesting to relate the history of how to language levels of @racketlang came to be. ↡ 2/ It started with a pretty user-centric method, which was observing what students were doing. A LOT. We didn't set up cams, didn't log keys (this was 1995). We (Matthew, Robby, I) were all TAs, and even when not, spent a lot of time walking around in labs.
May 6, 2022 β€’ 4 tweets β€’ 2 min read
Hey, @wcrichton is defending! Will:
Jan 30, 2022 β€’ 6 tweets β€’ 2 min read
1/ ICYMI: yesteday's (women's) Ashes #cricket was some of the best cricket in a while. Don't see scores or highlights, just watch England 2nd innings (after Australia declared setting them 257 in 47o: highest women's chase had been 193). No spoilers! But 3 salient things: ↡ 2/ First, by leaving them essentially an ODI inning, it showed clearly how an ODI has its own pacing and rhythm different from that of tests or T20s. There's *space and time* for things to evolve in a way they don't in T20.
Jan 23, 2022 β€’ 30 tweets β€’ 7 min read
1/ Several people have asked me to summarize my exploration of the low-code/no-code space. Here's what I learned. Note that this is VERY temporal: what's true today may not be in one month (especially with so much VC money sloshing about). Also, not tagging any companies. 🧡 2/ The principal dimensions of the space that I can discern are:

- new databases/tables
- data analytics, including visualization
- CRUD
- one-offs

I'll discuss these not in this order, but focus on CRUD, which to me is the most personally intriguing of the lot.
Jan 3, 2022 β€’ 19 tweets β€’ 5 min read
1/n Over the months we've gotten several questions about how our new book, DCIC [dcic-world.org], relates to HtDP (How to Design Programs). They are deeply similar, but even from 30K feet there are some salient differences. A thread on how they compare. 🧡 2/n At a high level they are very similar. Both are built around the centrality of data structure. Both want to provide methods for designing programs. Both start with functional programming but transition to (and take very seriously) state/imperative. ↡
Dec 6, 2021 β€’ 13 tweets β€’ 3 min read
A short thread about my "other 90%" rule, frustration with courses, and a nice thing that happened.

My "other 90%" rule is that ugrad courses should be designed for the 90% of students who are NOT like us: not crazy about our subject, bound to grad school, etc. 1/n What can THEY take away from our subject? What can they learn that might most impact them? The impact can and maybe should be both intellectual (expand their mind) and practical (give them new skills). I've always tried to apply this to my PL course. 2/n
Dec 5, 2021 β€’ 14 tweets β€’ 3 min read
After numerous years of paid subscription, I finally cancelled @duolingo. I was plateauing on it, and found the coverage of languages uneven. I had avoided the gamification for a long time until my kid got me to compete with her. And that was great…until something happened: 1/n My kid got to Champion, which means you top the leaderboard on the highest tier (Diamond League). That's cool! She kept urging me to do it. And no matter how hard I tried, I simply Could. Not. Come. Close. 2/n
Nov 22, 2021 β€’ 4 tweets β€’ 2 min read
Language-embedded programming with tables is ubiquitous, but not at all as well supported by types as it should be. We have created a design/expression benchmark to spur better science on tabular types. There are 6 parts; 2 should esp. stand out: ↡ 🧡
blog.brownplt.org/2021/11/21/b2t… 1. Def of table.
2. Examples of tables.
3. API of table ops.
4. Example programs.

5. ERRONEOUS programs. Type research should || error research. Let's surface errors as a 1st class entity.

6. Datasheets, to improve commensurability.

All is explained in the blog & paper. ↡
Nov 20, 2021 β€’ 7 tweets β€’ 4 min read
This is an interesting thread by Jon. Having been (sort of) on both sides of this, I have some thoughts. Jon is super right that making changes to teaching languages is really problematic. Books get printed, materials consolidate, updating is not easy. ↡ I've extensively supported both secondary school and university educators. It's tricky at all levels. You're a prof, you have your lecture, it's all set to go, the evening before class you re-run the code to make sure it's all good, and … the language has changed on you. WTF. ↡
Oct 22, 2021 β€’ 6 tweets β€’ 3 min read
Since there are several ugrads and young grad students following here, let me answer the question: what comes next? We identified a problem; what can we do about it? ↡ One answer is to do what Slim suggests here. It's a GOOD answer. And it probably should be done in addition to everything else. But another is to step back and a question from first principles: ↡
Oct 22, 2021 β€’ 13 tweets β€’ 4 min read
I hope @gmarceau and @KathiFisler don't find out that I actually named the paper after a very silly British sitcom from the 80s. I expect several Indians will recognize it; but will anyone British? But there's a really important story on research methods behind the paper: 🧡 Award citation for "Mind Your Language" paper from This work followed-up on our earlier paper, "Measuring the Effectiveness of Error Messages Designed for Novice Programmers". We had done a bunch of work analyzing edits and classifying error output. Seemed like a pretty done deal. But: ↡
Aug 21, 2021 β€’ 10 tweets β€’ 4 min read
It is with immense pleasure that @KathiFisler, Ben Lerner, @joepolitz, and I announce the first version of our new book, DCIC: a Data-Centric Introduction to Computing. This brief thread explains the book a little. 1/10
dcic-world.org DCIC splash screen image. The book is driven by three core VALUES: software is written to be read, not only run; programmers are responsible for meeting goals; and programs must be amenable to prediction. That is, it's not just a run-of-the-mill programming text. 2/10
May 16, 2021 β€’ 7 tweets β€’ 2 min read
Since so many people seem worried about side-effects from the COVID shots, a bit about my personal experience. Got the two Moderna shots 4 weeks apart. Here's what I experienced: ↡ Shot 1: sore arm, like a flu shot. 5:30 on a Wed. Spent Thu waiting for the fever/fatigue to hit. By 3pm realized I'd squandered the day doing not much of anything, played hooky and read books. No fatigue at all. ↡
May 15, 2021 β€’ 7 tweets β€’ 4 min read
@georgemporter @trello We've tried it to run Bootstrap. For many years it went well. But lately it has not been working so well for us. A bit more on this below. For my personal todo it was really bad because I didn't get email updates (maybe it does that now?). ↡ @georgemporter @trello We use it for our household shopping lists, and it's fantastic for that. Works on all devices, cards are nice and lightweight, etc. But back to managing a group. ↡
May 12, 2021 β€’ 16 tweets β€’ 4 min read
Shout out to @femaregion1, @RIHEALTH, and others for an amazing experience with COVID vaccination in Providence today, a great illustration that public health is as much a social science as about medicine and biology. A short thread explaining why: ↡ I was accompanying a person who is very, VERY scared of needles. They wanted to get vaccinated, but were also really afraid of doing it. We went to The Dunc [@DunkinDonutsCtr]. Very smooth, quick, efficient. We get to the point where we get assigned a vaccination booth. ↡
Apr 26, 2021 β€’ 33 tweets β€’ 7 min read
Here's a productivity technique I've been using for a month and has worked really well. It reduces distraction, focuses effort, and sets targets. It assumes most of your tasks accumulate as emails. I'll explain it in a short thread. ↡ Some of my inbox entries are big tasks that require a lot of thinking: e.g., correspondence with research colleagues on experiments, results, and papers. They take time and require me to engage deeply. Often interleave email, calls, and shared docs. ↡