PLMW is calling for student applications -- if you are a student interested in ICFP/SPLASH 2025, consider applying!
Deadline: July 15, AoE
conf.researchr.org/home/icfp-sp...
@dbp.bsky.social
Assistant Teaching Prof @ Northeastern. Programming Languages, Types, Language Interoperability. Opinions my own, not my employers.
PLMW is calling for student applications -- if you are a student interested in ICFP/SPLASH 2025, consider applying!
Deadline: July 15, AoE
conf.researchr.org/home/icfp-sp...
Bleak state of peer review (a minor thing, in the grand scheme of things, but anyway) -- getting a message saying "please don't use AI tools to write your reviews".
31.01.2025 19:46 β π 2 π 0 π¬ 0 π 0Innocent
28.01.2025 17:32 β π 0 π 0 π¬ 0 π 0Probably your PL students wonβt have this problem, but I remember doing a similar thing at the end of our accel intro class (simple interpreter, compiler, type checker) and sums ended up being way more challenging to students than we (ignorant PL people we are) thought they would be.
10.01.2025 19:07 β π 1 π 0 π¬ 1 π 0Sorry, whatβs tricky? Is the issue you want to be able to write interesting programs? If itβs supposed to be βlittleβ, just add sums and products to STLC? But maybe thatβs too simple?
10.01.2025 18:53 β π 1 π 0 π¬ 1 π 0Trying to describe it all here is impossible (but those of us designing the courses will be releasing lots very soon), but -- 1. it's not about following trends; 2. I'm deeply committed to design orientation (it's why I'm teaching & why I'm teaching _here_), and don't see this as a departure.
10.01.2025 16:20 β π 6 π 0 π¬ 0 π 0The reply is also something that drives me crazy. Yes, oil majors (and other corporations) are responsible for most emissions. They are responsible for much of the economy! Which you are part of! Organize to make systemic change (duh), but also... realize systemic change involves whole systems!
09.01.2025 01:06 β π 1 π 0 π¬ 0 π 0I guess I'd argue that code should be written primarily to be read & secondarily to work! (so the analogy isn't perfect, but isn't horrible?) And what seems odd is: the largest artifacts students see (in our courses) are their own! And we could give them similarly sized ones that are well designed!
08.01.2025 16:55 β π 0 π 0 π¬ 0 π 0Sure, either of those!
08.01.2025 16:46 β π 0 π 0 π¬ 0 π 0The analogy (if I can continue it), would be if writing classes showed great examples of sentences, but no great essays, or books. Maybe its too hard for students, but... is it?
08.01.2025 16:41 β π 1 π 0 π¬ 3 π 0Thanks! Peer review (even when done _pervasively_, like CaptainTeach), while related, is slightly different than what I was wondering about. e.g., in (English) writing class, you read examples of much better writing than you are currently capable of! We often show little examples, but not big ones.
08.01.2025 16:41 β π 1 π 0 π¬ 1 π 0Hereβs a question: if we believe reading code is as important as writing code (we do), why isnβt it a much more explicit part of our introductory classes? Students read examples, but not whole projects, and writing about / critiquing code is not typically an _explicit_ task. Unless others do this?
08.01.2025 14:42 β π 7 π 0 π¬ 2 π 0Among many interesting parts are how/what these brilliant writers learned in order to teach. All were involved in the same remedial writing program, and so, e.g., Lorde talking of grammar to her students: "Guess what I found out last night. Tenses are a way of ordering the chaos around time."
07.01.2025 00:10 β π 0 π 0 π¬ 0 π 0Picture of book Open Admissions by Danica Savonick
Rich was the first to admit that City College catalyzed "a profound change in [her] conception of teaching and learning." On first arriving, she had hoped to discover an unlikely Shakespeare buried among mediocre students, whose gifts she could help cultivate. But immersed in the SEEK community, she came to see "compensatory" (or "remedial") education as part of a broader "movement for social change," the goal of which was to "break down false barriers of class & color to make all education truly open to all people who want it?" There, she realized that the "veins of possibility" run through all students and that the political potential of teaching lies not necessarily in mentoring a select handful of highly skilled individuals but in developing teaching strategies that would benefit all, regardless of their previous academic training, ability, or interest.
Winter break readingβwonderful book about a brief period when CUNY opened up to all NYC high school graduates (made it free, had explicit programs for people without strong backgrounds, etc), told through the teaching of four incredibly influential writers who all overlapped at City College.
05.01.2025 18:14 β π 3 π 0 π¬ 1 π 0Iβd honestly love to try (something in this space). Not quite sure how Iβd be able to spin it though. Hard to offer an introductory elective. Maybe an alternate to one of the intros for non majors (which are dead ends in terms of dependencies, so lower stakes)
02.01.2025 22:46 β π 0 π 0 π¬ 0 π 0Hmm. Thats an interesting idea. I feel like for the _beginning_ (ie only writing types, purposes, tests), you need the speed of automation. But for the latter parts, where you are actually reading & discussing code, having (carefully constructed, by hand) implementations should work β and be better!
01.01.2025 23:44 β π 1 π 0 π¬ 1 π 0I agree with you to the extent that βtaught themselves with an LLMβ means using tools intended for people who know how to code (or to prevent them from needing to). But I wonder if we are still thinking too small (not sure if the ideas of my thread are useful, but they are _not_ just Copilot)
01.01.2025 23:36 β π 0 π 0 π¬ 1 π 0Addendum: Obviously, there are also significant issues with the tools -- energy use, concerns about where the data comes from, etc -- but they exist, and students are using them, so to me I'd rather foreground them and discuss these issues, alongside the tools themselves.
01.01.2025 18:48 β π 1 π 0 π¬ 0 π 0I'm not sure if this would be a good idea at all... but I'm also not sure if it makes sense to continue as we are, designing courses / learning as if these tools don't exist (or considering them as an after thought), when we know many/most students will use them.
01.01.2025 18:48 β π 0 π 0 π¬ 2 π 0We could ask the models for different implementations, and study the differences -- compare and contrast, discuss which we liked better, and why (develop taste early!) After learning to read & discuss code, we then learn to write it -- mimicking styles that we've seen. CS as writing class!
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0Later, we could start to look at the code that was generated -- reading code that worked, and code that didn't work, and discussing the difference. LLMs could be used to help explain how the code worked, but students would also be tasked with explaining the code. CS as English class!
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0One of the challenges in teaching the design recipe (htdp.org) is getting people to actually focus on those first three steps (signature, purpose, examples/tests), rather than just diving into code and getting themselves lost in the muck. Powerful synthesis might allow students to really get that.
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0This process could continue with more sophisticated data, and we could explore problem decomposition, challenges in data representation, etc -- all before thinking about _code_ at all.
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0i.e., start building programs by _only_: describing input / output data for problems, describing clearly how the input should be transformed to the output, and writing examples of how it should work. The code that is generated can then be validated, by hand or automatically, against those examples.
01.01.2025 18:48 β π 1 π 0 π¬ 1 π 0But back to the thought experiment. If we did want to do this, rather than just adding Copilot (which effectively thinks for students, nvm relying no them to have a sophisticated understanding of code to identify problems!), what if we used synthesis to alter the order in which we approach material.
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0Their results aren't bad (dl.acm.org/doi/10.1145/...), but I'm still pretty skeptical of this approach -- and whether it gives students the foundation to move on, etc. Learning happens when students are challenged (within reason!) and I'm skeptical if this sufficiently challenges them.
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0e.g., experiments like github.com/copilotbook/... don't sit quite right with me -- giving copilot to beginners and saying lets not worry about the low-level details of programming.
01.01.2025 18:48 β π 0 π 0 π¬ 1 π 0Thought experiment: what if we _did_ teach intro CS with LLMs from the very beginning? Conventional wisdom is that this is a bad idea (students need to learn fundamentals, and LLMs can stand in for this), but I wonder if this is because we are thinking about it wrong.
01.01.2025 18:48 β π 4 π 0 π¬ 2 π 0Identifying errors is a nice use, since they can usually be validated and weβre used to incomplete analyses. We did this last semester identifying first step (if any) in design recipe with issues (given function or data); it worked remarkably well (working on writing up little experience report now)
31.12.2024 14:43 β π 1 π 0 π¬ 0 π 0