Hacker Newsnew | past | comments | ask | show | jobs | submit | cdelahousse's commentslogin

Min-Max Heaps

Think of them as double ended priority queues. O(n) construction with O(lgN) mutations. Both the min and max elements are quick to get O(1).

The paper is short and the data structure is elegant. I read it a few years ago in uni and made me appreciate how greatly useful can be implemented very simply.

https://dl.acm.org/doi/pdf/10.1145/6617.6621


The top of My Todo List (http://www.paulgraham.com/todo.html), but more specifically, what Graham linked to: The Regrets of Dying (https://bronnieware.com/regrets-of-the-dying/)

It is a succinct summary of what, with the benefit of hindsight, many people thought was important in their lives and what they should have done better.

Absent is "I should have worked harder" and "I should have spent more time at the office".


Oh man. This course brings back so many memories of suffering through this material. But I can't emphasize how important this stuff is to know if you want to know anything significant in Computer Science.

What helped me ace the the exam was doing a hundreds of problems. I couldn't answer them most of the time, so I'd need an answer key nearby to get unstuck.

Drill, drill, drill. Just like you'd expect to drill for calculus, you can drill for this class.

What I found helpful was Rosen's "Discrete Mathematics and Its Applications". The material wasn't the best, but the problems are excellent. You can buy an older edition of the book and its solution manual for next to nothing on used book sites like abebooks.com


> I couldn't answer them most of the time, so I'd need an answer key nearby to get unstuck.

This happens with a lot of books out there. It would have been great if the authors of MCS gave solutions for at least some select questions.


If some of you feel a bit overwhelmed with the material, you may be well served by watching the first few lecture's of the following playlist:

https://www.youtube.com/channel/UCG96LXNYz9x7eTqSRtQ2R9A

It is Carleton University's freshman/first year Discrete Structures/Math course (COMP1805). They cover a lot of the same material, but at a more leisure pace and assume a lot less background.


Looking over the second part of the MIT course, I see that a lot of the same material is covered in this free textbook.

http://cglab.ca/~michiel/DiscreteStructures/


Learning those topics will not be a waste of time. You'll see them come up time and time again on your path towards more CS topics.


OP here.

This textbook is being taught as a second year discrete math course at Carleton University. I found it to be really high quality, and on par with similar sections from the Rosen or Epp texts.

Oh... Also, it is free!


Actually, the first class is now Java and C++. Morin isn't teaching Python any more.

"Functional" programming is taught in third year (COMP 3007), but you don't get too deep into it.

My issue with the listed classes isn't the chosen languages. A commenter mentioned that you can learn a lot of functional (and other) concepts in a procedural or object oriented language. My issue is that I basically learned the same concepts over and over again, just using different programming languages. You learn to iterate over a multidimensional array in Java, and then you do so again with C, but you have to deallocate and reallocate, and then you do it in C++, but you create an object for the array. It's all the same stuff.


Aha. Do you have an outline of a better way?


99% PI is what introduced Kowloon. The show did an amazing job of conveying just how special that place was. It is an great pod cast that captures the majesty of day to day design and architecture.

It is unfortunate that the images don't work on the episode page.


This sounds a lot like a home/urban oriented WWOFing (http://www.wwoof.net/) and a bit like CouchSurfing.


I'm in my last year of Comp-Sci. I started the program as a self taught adult. I can say that very little I've learned in school has been useful for the internships and jobs I've since had. That being said, I would never trade the CS experience for anything. It gave me context and a greater understanding of the field. I can now tackle harder problems because the program gave me the tools to do so.

But this is all stuff you can learn on your own. Assuming you know how to program already, my suggestion is find out what a local university teaches 2nd year students. Find their curriculum and see the classes they offer.

Typically, 2nd year is when you go beyond the basics of programming and start scratching the surface of really cools stuff like fundamental algorithms and data structures. If you can learn this stuff, you'll have enough context to determine what else you need to learn.

FYI, here's an amazing open source textbook on data structures: http://opendatastructures.org/


Another excellent book on Alogorithms and Datastructures: http://interactivepython.org/runestone/static/pythonds/index... . Seriously, there are a lot of very high quality books being released for free past couple of years, especially by teachers.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: