Live data from Hacker News

Introduction to Algorithms (2020)

ocw.mit.edu

51–60 of 61 posts

Re: Introduction to Algorithms (2020)

#51
In the syllabus [1] they state that you need to be able to obtain above a grade C on "Problem Set 0" [2] before you take this course.

In my experience teaching 1st year undergrad algorithms, I'd be surprised if the average 1st year student that has just passed an "Introduction to algorithms" course would even be able to solve Problem Set 0.

However I don't think we should delay teaching algorithms until several years into the CS university curriculum. It's too important and central a topic to miss out on. We really need an intro algorithms curriculum that can teach both the basics (as in Problem Set 0) and the algorithms and data structures in the textbook.

[1] https://ocw.mit.edu/courses/6-006-introduction-to-algorithms...

[2] https://ocw.mit.edu/courses/6-006-introduction-to-algorithms...

Re: Introduction to Algorithms (2020)

#52
post #51

In the syllabus [1] they state that you need to be able to obtain above a grade C on "Problem Set 0" [2] before you take this course. In my experience teaching 1st year undergrad algorithms, I'd be surprised if the average 1st year student that has just passed an "Introduction to algorithms" course would even be able to solve Problem Set 0. However I don't think we should delay teaching algorithms until several years…

The problem set covers the material of 6.0001 and 6.042. I guess you can take both in the first semester and do algorithms course in the second semester.

Re: Introduction to Algorithms (2020)

#53
post #51

In the syllabus [1] they state that you need to be able to obtain above a grade C on "Problem Set 0" [2] before you take this course. In my experience teaching 1st year undergrad algorithms, I'd be surprised if the average 1st year student that has just passed an "Introduction to algorithms" course would even be able to solve Problem Set 0. However I don't think we should delay teaching algorithms until several years…

Pretty common stuff that advanced kids learn in high school in the US[1]. I’d imagine MIT students can breeze through the questions in the Problem Set 0.

[1] Or so I saw in the bay area. Taking AoPS courses and even harder and broader content is pretty standard for kids in the bay area, for good or bad. It’s like there are two countries in the US. One has kids who take 10+ APs by grade 10. The other has schools that have median GPA 0.6. Sigh…

Re: Introduction to Algorithms (2020)

#54
post #21

Just looked at the "Course Description" of the "Syllabus" as at https://ocw.mit.edu/courses/6-006-introduction-to-algorithms... The course takes itself very seriously and seems to ask each student to devote a lot of time to the course. My summary reaction is that it would be a shame to devote that much time to what is basically so little material. Yes, the "Syllabus" mentions Introduction to Algorithms , Cormen, Leis…

You should read about dynamic arrays more carefully. They have amortized O(1) insertion which is better than a tree, and the data is contiguous in memory which gives it better cache locality than a tree. They are one of the most popular data structures.

Parts of your post also seem to me to be quite boastful and low-value: (paraphrasing) "the course takes itself very seriously", "why spend so much time teaching so little material", "these topics are mostly old; just read Knuth", and "dynamic programming is easy; I learned it in 90 seconds and then did my PhD in it".

Re: Introduction to Algorithms (2020)

#55
post #51

In the syllabus [1] they state that you need to be able to obtain above a grade C on "Problem Set 0" [2] before you take this course. In my experience teaching 1st year undergrad algorithms, I'd be surprised if the average 1st year student that has just passed an "Introduction to algorithms" course would even be able to solve Problem Set 0. However I don't think we should delay teaching algorithms until several years…

MIT's discrete math course [1] is listed as a prerequisite for the algorithms course so Problem Set 0 doesn't seem unreasonable in that case.

Requiring an intro programming class and a discrete math class won't require you to delay teaching algorithms for "several years". Maybe just a semester or two.

Universities can also start teaching basic data structures and some algorithms in the programming classes. For example Stanford teaches some in CS106B Programming Abstractions [2] and then goes into more detail in CS161 Design and Analysis of Algorithms [3].

[1] https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-...

[2] https://see.stanford.edu/course/cs106b

[3] https://stanford-cs161.github.io/winter2022/

Re: Introduction to Algorithms (2020)

#56

Earlier quoted context omitted.

I made one once! That's a story for another time, but lessons learned: - Elite schools like MIT are cesspools of crime and corruption, at least at the top. By "crime," I don't mean metaphorical "bad stuff" -- I mean actual, genuine, bona fide scary stuff like the movies. MIT's endowment is $20M per faculty member, and if you're in control of $20B in endowment with that much slush and that little oversight, it draws t…

>What I found is that there's much better content overall one tier down Which school's content are you talking about?

It's unfortunately distributed. ASU, WPI, Georgia Tech, etc. have impressive operations, but for the most part, you need to look a lot of places.

There's a ton of little resources like this: https://ximera.osu.edu/mooculus

Needs a ton of work on CSS and styling, but the content is great.

That's why we'd need an aggregator.

Re: Introduction to Algorithms (2020)

#57
post #51

In the syllabus [1] they state that you need to be able to obtain above a grade C on "Problem Set 0" [2] before you take this course. In my experience teaching 1st year undergrad algorithms, I'd be surprised if the average 1st year student that has just passed an "Introduction to algorithms" course would even be able to solve Problem Set 0. However I don't think we should delay teaching algorithms until several years…

Pretty common stuff that advanced kids learn in high school in the US[1]. I’d imagine MIT students can breeze through the questions in the Problem Set 0. [1] Or so I saw in the bay area. Taking AoPS courses and even harder and broader content is pretty standard for kids in the bay area, for good or bad. It’s like there are two countries in the US. One has kids who take 10+ APs by grade 10. The other has schools that…

Breeze through is not true though. You can do a search on twitter and will see multiple 6.006 complaints.

Re: Introduction to Algorithms (2020)

#58

Earlier quoted context omitted.

I did a couple of MIT projects in some of their graduate classes (OS, distributed systems) which was a lot of work. At least one week full time for each of them. And that's just the lab, I barely looked at the lectures (which were based on key research articles on the field). But looking at the first classes of each topic to have a broad view seems like a good idea too. I wish I could go back to school. CS is changin…

> I wish I could go back to school. CS is changing so fast, Is it, really? I got an undergrad degree 25 years ago, and looking at the requirements for the same at a few different universities, they appear largely the same, other than a few extra courses on ML. You still have pretty much the same math courses, theory courses, algorithm/OS/network/database courses, etc. The languages and tools have changed, but the fun…

I got my degree 25 years ago too. At that time, a lot of things which are pervasive now barely existed. Virtual machines, clouds, smartphones, javascript, CI/CD... Fundamentals haven't changed but the tools/languages/systems we need to understand to do our jobs have changed a lot. The fundamentals are important but they are a fraction of the things we need to know.

Re: Introduction to Algorithms (2020)

#59
post #21

Just looked at the "Course Description" of the "Syllabus" as at https://ocw.mit.edu/courses/6-006-introduction-to-algorithms... The course takes itself very seriously and seems to ask each student to devote a lot of time to the course. My summary reaction is that it would be a shame to devote that much time to what is basically so little material. Yes, the "Syllabus" mentions Introduction to Algorithms , Cormen, Leis…

You should read about dynamic arrays more carefully. They have amortized O(1) insertion which is better than a tree, and the data is contiguous in memory which gives it better cache locality than a tree. They are one of the most popular data structures. Parts of your post also seem to me to be quite boastful and low-value: (paraphrasing) "the course takes itself very seriously", "why spend so much time teaching so li…

I had a revision of that post, but I had it ready only just after the end of the 2 hour window for revisions.

The course pressed hard on the students to devote, what was it, 4 hours of time a week in group sessions with more hours in independent study. That's asking a lot from the students.

In response I had a lesson and purpose in that post: (A) That collection of fundamental algorithms hasn't changed very fast, were much the same 40 years ago. (B) Nearly all the algorithms are quite simple and each one can be learned quickly, including the derivation of its big-O performance, and coded, running, and tested in 2 hours or so. (C) I mentioned Knuth v.3 as a reference: Tough to improve on that Knuth volume as a reference for such algorithms. (D) For hashing, network flows (graph search), and dynamic programming I gave really good references -- tough to compete with any of them. I used some of my experience to illustrate (A) -- (D).

That lesson should be some quite good news for any HN readers considering studying the algorithms.

> Parts of your post also seem to me to be quite boastful and low-value:

No, I just used some of my experience to give examples of my points.

> You should read about dynamic arrays more carefully. They have amortized O(1) insertion ....

I saw all that. Get the O(1) property only with some assumptions and some math derivations, and I mentioned the math.

Two obvious problems:

(1) It is trivial for any of us to think of applications where the new allocations and copying would be wildly wasteful.

(2) For the assumptions, we will rarely have enough information to have much confidence in our math derivation.

We also can think of

(3) The reallocations, when there are a lot of them, will create problems for the memory management, garbage collection.

Sure, any of us can think of niche situations where (a) we do a few reallocations and (b) then go for hours, ..., months with no more reallocations and with the advantages of arrays.

Dynamic arrays don't belong on a list of Best Algorithms.

Again, my guess is that the interest of the course in dynamic arrays is an opportunity to do the math derivations.

The people that MIT course is intended for are maybe good HN readers, so an issue for HN readers is, should they devote a lot of time to that course? We review movies, restaurants, etc., and we might also review courses.

Your attack on my review was mostly an attack on me: You resented my post because I mentioned some of my background and in response attacked me. Instead, make a good contribution of your own, maybe as a review of that MIT course.

I'll state the basic lesson again:

The algorithms in that course are nearly all quite good but old, with some really good old references, and can be learned quickly, say, the whole course in a few weekends.

Re: Introduction to Algorithms (2020)

#60
post #59

Earlier quoted context omitted.

You should read about dynamic arrays more carefully. They have amortized O(1) insertion which is better than a tree, and the data is contiguous in memory which gives it better cache locality than a tree. They are one of the most popular data structures. Parts of your post also seem to me to be quite boastful and low-value: (paraphrasing) "the course takes itself very seriously", "why spend so much time teaching so li…

I had a revision of that post, but I had it ready only just after the end of the 2 hour window for revisions. The course pressed hard on the students to devote, what was it, 4 hours of time a week in group sessions with more hours in independent study. That's asking a lot from the students. In response I had a lesson and purpose in that post: (A) That collection of fundamental algorithms hasn't changed very fast, wer…

Thanks for taking the time to read and respond. I admit the second paragraph of my post was a bit aggressive and I was on the fence about posting it. I don't have a problem with you sharing your background but the parts I mentioned previously came off in a certain way to me.

I found your initial argument on dynamic arrays dismissive because you admitted you had never heard of it, then implied that they don't make sense as if to justify why you had never heard of them. I find that intellectually dishonest and it really ticked me off; it's just confirming one's own bias. I still find your argument a bit dismissive although we can agree to disagree. It's not a case of worthiness to be on a list of best algorithms or of fancy math derivations. They are widely used in practice, are O(1) for many operations, work well with caches, and are worth studying for that reason.

As for making a "good contribution of my own" by reviewing the course, I don't feel the need. It's a standard undergrad algorithms course of the kind that most CS students would take. I don't think there's any value in reviewing the syllabus when they all tend to cover the same material.

I'm probably won't reply again so (sincerely) have a good day. I realize you feel attacked but if you're going to opine on something then other people might opine on your opinion. You don't hesitate in your writing style so I didn't either. I just apologize if I made it too personal. I read some things that I couldn't let slide.

Post reply on HN