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
When I talk about this to colleagues, they always trot out a "but who will think of the children" argument for not wanting to do the same: they're thinking of the student exactly like themselves. I get the feeling. I just think we should resist it. 3/n
My view is that that student will thrive in almost any course. Sure, they could have had their development bumped along a bit more. But if they're going to grad school anyway, there's plenty of time. I'm more worried about the "collateral damage". 4/n
This has led to my long, gradual, frustrating PL course evolution from an arch Dan Friedman disciple into something…else. I'm still trying to figure it out. And the more I've studied CS ed, etc., the more frustrated I've grown. 5/n
The running joke in my students' office is every Oct I walk in and say "this course is crap, I really can't stand it, we need to do something about it". They took me seriously for some time, then started to laugh after 2-3 years and now they all do. The struggle is real. 6/n
The mid-2010s where when my frustration was really growing. The little tweaks I was making were not really helping. Frustratingly, you'd never sense the problem from the course evals, which were great. It was working for the other 90%. 7/n
But I needed to take the course to another plane. Thanks to some insights this year, I think I've finally figured out the next step, and I'm working it into PLAI 3/e. @jbclements has been invaluable. So after 20 years I *think* I have *some* idea of how to teach PL. 8/n
But something awesome happened today. Someone emailed me about a former student on the fac market. I checked: *20%* of that PL class is now doing great work in top PL PhD programs. Some of y'all are their advisors. 9/n
Some of it was just the joy of "ooh, yet another @BrownCSDept grad who's gone off to do formal methods"—the fruit of the program @logicpreacher and I have been putting in place. But also, concrete evidence that "the 10%" are DOING JUST FINE. Weren't hurt by my "populism". 10/n
(This, incidentally, is a student who worked mainly with @logicpreacher. His "Logic for Systems" is also built entirely around the "other 90%" principle, from the title onwards. So this really is a consistent theme.) 11/n
So if you feel "I could teach a course that attracts a lot of students, or I could teach one just for students like me"—if you think your area can change the world, go the former route. Be brave. It's probably not the course your advisor teaches. It's okay. 12/n
But if you feel "but then they won't be shovel-ready to work on my research project", well, I'm going to be judgmental here: that's wrong, and you're being bad. They didn't come to college just to work on your research. Let it go. Teach them what they need later. •

• • •

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

5 Dec
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
I was in Diamond for a long time. Day 1 and maybe 2 I'd be leading. And then, somehow, someone would come out of the blue and just blow me away. Like destroy me: I'd have say 500 points and they'd have 3500. It seemed like superhuman effort. 3/n
Read 14 tweets
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
20 Nov
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. ↵
Read 7 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

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

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(