HNHacker News
TopNewBestAskShowJobs

acbart

912 karma · joined August 12, 2013

https://acbart.com
submissionscomments
acbart··on Things software developers should learn about learning
All three of these authors are amazing Computer Science Education researchers. Obviously, it's a well-cited and well-argued article as well, but I feel like it's worth pointing out that I expected nothing less from them. I actually learned a few things here - I had never heard of the Semantic Wave before. What a great share, thank you very much!
acbart··on I mirrored all the code from PyPI to GitHub and analysed it
Yes, I really wish this was the reality. I would even be very happy with a new `data` keyword for this purpose. I'm teaching `dataclasses` in my CS1, and it's nice, but frustrating that A) students have to remember the import, and B) all my slides always have to be a bit longer thanks to the `@dataclass` line taking up space. This is a real problem for some of my longer examples...
acbart··on Teaching with AI
I won't speak about upper-division courses, but in the introductory computing courses, I'm dealing with students who still don't know the fundamentals but want to use the LLMs to "augment" their skills. But it's like trying to rely on a calculator before you learn how to do addition by hand... and the calculator sometimes misfires. They don't know enough to debug the stuff coming out, because they still don't yet have the fundamental problem-solving skills or understand the core programming techniques. In the hands of an expert (or even someone with moderate knowledge), I think these tools can be great. But there needs to be a period of development WITHOUT these tools too. "If you're nothing without the suit, then you shouldn't have it."
acbart··on PreTeXt: Write Once Read Anywhere Authoring and Publishing System
I have done various kinds of book authoring in the past couple years. I loathed my time in PreTeXt. I have strong feelings about staying in Markdown from now on.
acbart··on Ask HN: Could you share your personal blog here?
http://acbart.github.io/blog/

Haven't posted much lately, but that's my blog. Mostly CS Education stuff.

acbart··on Ghost: Create an AI replica of yourself that is accessible via SMS
I'm probably not in the right state of mind, but my wife died less than a week ago and I've been considering exactly this. I just want to be able to talk to her a little more... I miss her very badly, and it would bring me some comfort to be able to have some final conversations even if they were just echos of past ones.
acbart··on MelonJS – a fresh and lightweight JavaScript game engine
Can anyone speak to the difference between this and Phaser?
acbart··on Coping with Copilot
I have a hard time being interested in anything that Emery Berger has to say about Computer Science Education, since he's doing nothing to support the field. https://github.com/emeryberger/CSrankings/issues/11
acbart··on Pronunciation Guide for Unix
Okay, yes, I agree that := is "becomes", because I grew up with Pascal, but we must acknowledge that it's a Walrus, too.
acbart··on Why America can’t build
This article has a photo: https://www.positivelynaperville.com/2020/09/04/2020-carillo...

I suppose it is vaguely terrifying.

acbart··on The Simplex Solution: Why it works so well
This article, unless I'm missing something, doesn't actually explain why the algorithm works so well. It just gives the back story that led to the journal paper explaining it.
acbart··on Executable Examples for Programming Problem Comprehension [pdf]
I saw this talk at ICER, and I really loved how it led to the idea of evaluating tests in terms of "wheats" (good programs pass the test) and "chaffs" (bad programs fail the tests). They describe this in terms of Thoroughness and Validity.

> A suite is valid if it accepts (i.e., its assertions pass) all correct implementations... In order for a suite to be valid for all implementations of median, it must not include any assertions involving empty input lists. We can accurately identify such assertions as invalid by checking them against two correct implementations (henceforth wheats [24])... If a student asserts that implementations should produce an error on empty inputs, their suite will reject the wheat that produces 0 (and visa versa). Provided that the set of wheats completely exercises the space of underspecified behaviors permitted by the specification, accepting all wheats guarantees that a suite is valid and will accept all correct implementations.

> A suite is thorough if it rejects (i.e., its assertions do not pass) buggy implementations. We assess the thoroughness of a suite by running it against a curated set of buggy implementations (henceforth chaffs [24]). The thoroughness of a suite is measured as the proportion of chaffs it rejects. To assess test suites, the set of chaffs should include subtly buggy implementations. To assess examples, we take a different perspective: the set of chaffs should exercise logical misunderstandings that students are likely to make. For instance, to assess the thoroughness of examples for median, the set of chaffs could include implementations of mean and mode.

I want to see this used in more curricula and tools. I need to see if there's been any follow-up on this research and learn how it's gone.

acbart··on Due to failure in the IT system, it is not possible to run any trains today
Maybe if we paid those who teach better, we'd attract the best of the best to teach. Instead we drive good people out by making the job unbearable.
acbart··on Python 3.11 in the Web Browser
MatPlotLib support in Skulpt for BlockPy [1]. Not complete, but workable for a lot of common graphs that I use in my CS1 course.

[1]: https://github.com/blockpy-edu/skulpt/blob/master/src/lib/ma...

acbart··on Why learn Racket? A student's perspective
I know Shriram very well, he and Kathi do excellent work and as I said they are focused on more valuable projects than trying to prove one language is superior to another for CS1. They are building tools and curricula, and have done some research that sheds some light on the tradeoffs in using certain languages like Racket. Kathi's "Rainfall Accumulates" paper is one of the few papers that gets close to work in the space I am talking about. Shriram's analyses often leave me stunned at just how sharp that guy is, and helps remind me that CS Ed really needs to level up its game.

That said, the HtDP curriculum that they were involved in, and led to Bootstrap and a host of their other projects, was not grounded in any kind of data collection or treated as an empirical research project. Smart people with good intentions built something and threw it into a classroom. Intentionally so, by design [1].

Their subsequent work with Pyret is much better grounded and well-informed, and I've been absolutely fascinated by it. Their data science curriculum delights me, and I have often thought that if I had more time I'd translate it to Python. I think their more recent proposal about a Table Abstract Data Type is just inspired. But we are still VERY far from ever proving things like, "Racket is easier for students to learn". I'm fairly sure it's not even worth doing.

I appreciate the original article was just one student's perspective. It's a perspective I don't entirely disagree with. Nonetheless, they make interesting claims not backed by any kind of published, empirical data. They hypothesize that Racket is virtuous to learn because of how it presents recursion, and because of its simplistic syntax. Cool theory, but not proven using Randomized Controlled Studies. I mean, most things in CS Ed aren't, so I don't think it's a surprising thing to point out. But that doesn't mean we should just sit back and accept these claims.

Personally, I have seen the HtDP curriculum do damage. I have also seen it firsthand do a lot of good. My Racket relationship is complicated [2]. The author makes a great point of the potential value of these models, and also mentions how this whole debate is sort of pointless. I believe that at the end of the day, the CS1 language is simultaneously very important and yet somehow unimportant - it's all just the psychology of the people involved. That, too, is an unsubstantiated claim.

But please, tell me more about how I have not done my due diligence. Would you like to cite some actual RCT papers that back up the claims founding all this stuff? Or do you want to keep citing textbooks like that somehow proves something?

[1] https://felleisen.org/matthias/Thoughts/Measuring_education.... [2] https://github.com/acbart/myracketrelationshipiscomplicated....

acbart··on Why learn Racket? A student's perspective
Ah, debates about programming language choice for CS1, without evidence. Gotta love the CS1 language wars. Someday some folks will actually gather evidence that really let's us know if these interesting claims about these languages hold any water. I don't think we've made much progress on that as a community. Fortunately, the people involved in these projects are doing more valuable things with their time.
acbart··on Times are great for programmers now. How does it end?
Maybe if we didn't make "Teaching Computer Science" such a worse job than "Being a Software Engineer" in so many ways. Of course, then we might accidentally start making "Teaching" a good job for folks, and that apparently is completely counter to the American ideal.
acbart··on Textbooks by the Faculty of the C.S. Department of Kansas State University
What a great thing. I've been working on an interactive textbook for React and TypeScript, mostly just to better support one of my courses. I feel like faculty should be encouraged and supported to produce free, open materials like this.
acbart··on Ask HN: My boss doesn't think I'm doing good work, how to proceed?
> without bothering the professor

What the hell kind of academic culture is this? Maybe in graduate research, if I expected a research assistant to know how to do a task... but certainly not true in an undergraduate course! If they can't do the assignment, that is the perfect time for them to come to me and learn from me how to do the assignment. That's like, the whole point of my job as a teacher is to help people learn. Yes, I make assignments too, and people underestimate how difficult that part of the job is, but helping people figure things out is like my #1 job. It's sad to hear that your experiences (and apparently many other commenters) are something very different?

acbart··on Types for Tables: A Language Design Benchmark
I am so excited about this work! I think it's a wonderful big step in this area. However, I am still a little weirded out by the term "sort" being used to describe the type of a cell. Their goal is to avoid preconceptions about the use of the word, but... there's already a lot of baggage around that word "sort"!
acbart··on Learn X in Y Minutes
I wonder if anyone could actually learn the basics of Big Oh notation from this. My students struggle with the concept, and I couldn't imagine this being sufficient for helping them get a deep or even cursory understanding.
acbart··on Ask HN: Why is there no good open-source LMS?
Built on PHP, over-engineered, and terrible out-of-the-box UI. I wouldn't personally recommend Moodle, unless you had no other option. It takes all of my energy to resist suggesting you just write your own LMS from scratch instead of using Moodle...
acbart··on Sugar-sweetened beverage intake and serum testosterone levels in adult males (2018)
Do they give the effect size anywhere?
acbart··on Show HN: Kaboom.js is a zero-dependency declarative JavaScript game library
Klik n Play was such a fascinating programming model. I can't think of many places with... Example-based programming? It was such a curious paradigm, in retrospect.
acbart··on Minecraft vs. Roblox (2020)
A somewhat similar idea is the Hedy programming language: https://www.hedycode.com/
acbart··on Minecraft vs. Roblox (2020)
I still believe it is easier to teach good habits to folks who have experience with bad habits, than to teach folks who have no experience at all. It's not too hard to find examples of how those issues (e.g., globals, stringly types, god-functions) can backfire once you get to scale, but it's really hard to motivate them when folks are still trying to wrap their head around function calls and variable assignment.
acbart··on Dijkstra Was Wrong About 'Radical Novelty'
I believe you misunderstand how the process of learning occurs. If you really want to deeply understand something, it's a whole process of connecting up existing facts and schemas in your brain. That happens more smoothly over time by processes like seeing metaphors. A good teaching metaphor always involves a description of how the metaphor fails. Learning from metaphors is not a weakness, nor is it the only plank to build a house of knowledge on. Eventually, you will need to understand the mechanics too, but there's nothing wrong with starting with metaphor, or examples, or visualizations, or interactive simulations, or any other teaching scaffold.

Also, don't gatekeep the field, unless you have a citation that proves that modern teaching techniques have really led to a decrease in quality of software engineers. I really doubt you have any concrete measure you can point to that won't be anecdotal, but if you have one I am interested in hearing why you think you can strongly believe that folks have gotten wore over time because we got better at teaching.

acbart··on Guido van Rossum joins Microsoft
I don't know about anyone else, but I'm still hopeful for Python integration with Excel. That would be a real gamechanger, depending on how tight the integration is.
acbart··on Zoom lied to users about end-to-end encryption for years, FTC says
When it comes to training humans and animals, positive punishment is far less effective than most other training techniques like positive reinforcement. Don't Shoot the Dog[1]!

[1] https://www.amazon.com/Dont-Shoot-Dog-Teaching-Training/dp/0...

acbart··on Students have to jump through absurd hoops to use exam monitoring software
This will never work because it absolutely fails to scale, at a time when we have a complete lack of computing educators. Customized projects for each student? I have 159 students in my CS1 this semester, and I can barely keep track of them with the massive amounts of data I collect. The idea of making individualized assignments is beautiful but unrealistic.
← PreviousPage 3 of 10Next →