Live data from Hacker News

Algorithms, by Jeff Erickson

jeffe.cs.illinois.edu

211–220 of 245 posts

Re: Algorithms, by Jeff Erickson

#211
post #155

Earlier quoted context omitted.

He was my algorithms professor in ~1999, and he garnered identical praise from our cohort, too. His approach to demystifying recursion is perfect (Chap 1.2): "The Recursion Fairy will solve all the simpler subproblems for you, using Methods That Are None Of Your Business So Butt Out" Thanks for your teaching and for this project, Jeff!

I've tried a few approaches to explaining recursion ("just assume that it works", "trust yourself", "turn off your brain" (the latter of which is from Will Byrd)), but I like "Recursion Fairy" an awful lot. Might have to try that next time.

We designed a small tool to bring the fairy metaphor even to lower secondary school students. I actually believe it is a very promising approach.

"Nothing to fear but fear itself: introducing recursion in lower secondary schools"

https://aladdin.di.unimi.it/materiali/pubb/2017_latice.pdf

Re: Algorithms, by Jeff Erickson

#212

gonna take this opportunity to ask for advice: i have an MS in CS and i've gone through all of CLRS twice (yes really all of it and really twice - once for my grad algos class and once in prep for interviews - and i still don't have whatever intuition i need to be able to effortlessly do DP. it's honestly kind of maddening - mincut/maxflow, RSA, knuth-morris-pratt etc are all completely obvious to me and i can whip t…

Here's an old mathematical perspective that treats dynamic programming as analogous to the calculus of variations. Very different from a how it's usually talked about, I think. I haven't read much of it, but perhaps the change in perspective will be helpful to you: https://www.rand.org/content/dam/rand/pubs/reports/2006/R441...

Dynamic programming in CS and dynamic programming in operations research share almost nothing besides the name.

Re: Algorithms, by Jeff Erickson

#213
post #211

Earlier quoted context omitted.

I've tried a few approaches to explaining recursion ("just assume that it works", "trust yourself", "turn off your brain" (the latter of which is from Will Byrd)), but I like "Recursion Fairy" an awful lot. Might have to try that next time.

We designed a small tool to bring the fairy metaphor even to lower secondary school students. I actually believe it is a very promising approach. "Nothing to fear but fear itself: introducing recursion in lower secondary schools" https://aladdin.di.unimi.it/materiali/pubb/2017_latice.pdf

Super interesting! Do you happen to have an Italian translation/version of the paper?

Re: Algorithms, by Jeff Erickson

#214

Earlier quoted context omitted.

- Work on, or help out with, a research project of a professor/established researcher in your field of interest. - Related, getting authorship (first or otherwise) for an academic publication as an undergraduate is a promising signal of future research success. - Also related, having great references from undergrad professors who are involved in research. - Connect with faculty in the PhD program you're interested in…

Yep, all this. Let me add two more points: - Own your past mistakes. They happened. Don't pretend they didn't. Figure out the underlying cause of those mistakes, and gather EVIDENCE that you've resolved that cause. (In my case, I was a LAZY undergrad. I'd never had to work in high school, and so I didn't know how to work in college. And then I got a real job, and it was either do the damn work or it'll be there tomor…

That's very good advice! One point in particular resonated with me as it seems to be applicable to science in general:

> You're playing a lottery that's stacked against you; buy more tickets.

I take this to mean that is makes more sense to apply for many things, re-submit publications often (not without considering the feedback of reviewers, obviously), and so on.

Re: Algorithms, by Jeff Erickson

#216
post #100

Earlier quoted context omitted.

>25% credit given on any exam question just for writing "I don't know", effectively a reward for acknowledging your own shortcoming and for saving the TA the time to decipher a bullshit answer. That’s brilliant, yet I’ve never heard of it. Should be standard scoring for written exams.

Random other point of brilliance I've seen: Our Organic Chem teacher (who was loved universally in the Program) had a rule about test corrections. If you wanted a correction to something you believed you should get credit on, he would only offer to regrade your WHOLE test, which meant you could actually get less points on the regrade because it was he and not a TA regrading (could have worked both ways). It really sc…

This was a common approach at my Uni. I only once challenged it, but the issue was an entire question wasn't marked at all, so the lecturer didn't remark the rest.

One other time, I asked the lecturer (different paper) where I went wrong on a question, and turn's out I was right all along, got that question regraded without the potential downside to a full remark.

Re: Algorithms, by Jeff Erickson

#217
post #127

Earlier quoted context omitted.

> (From experience) providing solutions interferes with the learning process of my own students at Illinois. I have to change up homeworks and exam questions every semester, because otherwise students will look up and copy/memorize the answers instead of trying to figuring them out, which means they do worse on the exams where they HAVE to figure things out. While I understand the desire of a professor to help out th…

Of course the student is ultimately responsible for their own learning, but as the instructor, it's my responsibility to help them learn. Dangling a juicy piece of bacon in front of their noses will not help them eat their vegetables.

There appears to be some evidence to suggest that traditional (grade-school style) "graded homework" at the advanced undergrad and higher level may just not be particularly good pedagogy though [1]. If possible, it may be better to assign ungraded homework with complete guided solutions provided, plus regular in-class quizzes (the latter to motivate students to actually spend time on that assigned homework every week) [2].

[1] https://scholarlycommons.pacific.edu/soecs-facpres/16/ [2] https://www.tandfonline.com/doi/full/10.1080/00091383.2011.5...

Re: Algorithms, by Jeff Erickson

#220

Earlier quoted context omitted.

Well done!

Jeff, I'd be curious to know. Going through TAOCP is on my lifetime-to-do and feel I am getting close to tackling it again however I have no time right now. There's also so many other things I want to go over (some higher order logic, TAPL, PFPL, the Software Foundations books, compiler design and probably won't pass up some category theory being abstract algebra seems accessible to me). Do you feel TAOCP is worth th…

As you've already got an answer from Jeff, I thought it might not hurt to add an additional one. IMO, you should ask yourself why you want to read TAOCP; doing it just because everyone recommends it is probably not worthwhile. Read it if you find the material or presentation interesting.

IMO one can think of each chapter (only 6 completed so far) or even each major section of TAOCP as a very deep book/monograph on that specialized topic. The writing is clear and delightful (IMO), but each of them does tend to go rather deep, more than you may care to know about that topic — so each page will require a fair bit of attention; it's not easy going. You'll get an in-depth understanding of a narrow sliver of topics.

Why not read a few of the newer sections and see if you'd like to read more in the same style? Knuth has been putting draft versions online, and they are collected here: http://www.cs.utsa.edu/~wagner/knuth/ — for example, you could read Pre-Fascicle 3B, which is on generating all [number-theoretic, or set] partitions, or Pre-Fascicle 1B, which is on a fascinating (and little-known) data structure called Binary Decision Diagrams. He uses these to solve many interesting problems, different from the focus of typical algorithms books (which would probably dismiss these methods as “brute-force”, as they don't affect the asymptotic complexity but do affect what's practical to do on real computers).

Post reply on HN