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. ↵
In @racketlang, of course, we have #lang, a general, universal mechanism that can be used for versioning and soooo much more. Curiously, it seems to be used for soooo much more but NOT for versioning. Maybe it's too powerful. Some of it is also cultural. ↵
In @PyretLang we've long thought about what a #lang-like thing would be in our world. We aren't ready for (nor think we need) full #lang. The #lang-inspired Grace dialects have been a promising approach (@jameskjx). In general, there are two kinds of issues. ↵
One is you want to configure libraries (i.e., the default namespace). The other is you want to configure the language itself (e.g., remove :=). The latter is especially hard around parsing, documentation, etc. But we now have a solution for the former. ↵
When you fire up the Pyret IDE now, you see "use context essentials 2021". It's grey and not editable. This configures your namespace. You can change your context from the menu. (Thanks @asolove.) Legacy code is essentials2020. ↵ use context essentials2021Choose Context
Someday, the context may provide the ability to configure the language constructs too; we're not ruling that out (and indeed want it eventually). But for now, there's a nice, clean, stable way for educators to not suffer night-before-lecture panic. All ed languages need it.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with ShriramKrishnamurthi

ShriramKrishnamurthi Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ShriramKMurthi

22 Nov
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. ↵
Props to new grad student Kuang-Chen Lu. Special credit to post-doc Ben Greenman, who resisted the urge to build Yet Another Tabular Type System and instead focus on improving the state of science. (Ben's on the market if any R1 is hiring!) ↵
Read 4 tweets
22 Oct
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: ↵
Why do we have this vocabulary at all? It's the bridge from the code to error to the code. It's a LEVEL OF INDIRECTION. And if the indirection doesn't work, communication breaks down: like an NFT whose server has gone down (-:. What can we do instead? ↵
Read 6 tweets
22 Oct
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: ↵
We also did a handful of talkaloud studies to see how students really handled errors. Most of it was predictable. But one student said they were confused because they didn't know the WORDS in the error. The words?!? (Native English speaker, too.) ↵
Read 13 tweets
21 Aug
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
Curricularly, there are three big ideas. The first is an innovation: data-centricity. @KathiFisler and I wrote about this in CACM last year, calling it a challenge and opportunity for computing education. Here, we're executing on that.
cs.brown.edu/~sk/Publicatio…
3/10
Read 10 tweets
16 May
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. ↵
Shot 2: also Wed 5:30pm. Much sorer arm for ~36 hours. Otherwise fine Wed. Wasn't going to get fooled again. Worked normally Thu AM, went for a bike ride. Thought I'd take it easy; 5 mins in had forgotten and was riding normally. ↵
Read 7 tweets
15 May
@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. ↵
@georgemporter @trello One of the virtues was how cards would disappear instantly on everyone's screens when one person archived them. Bootstrap is very distributed, so on a call (pre Zoom) it was vital for everyone to have a shared view, and Trello syncing provided that. ↵
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Thank you for your support!

Follow Us on Twitter!

:(