Live data from Hacker News

Professor solves 240 computer science exam problems in 4 hours [video]

youtube.com

61–70 of 173 posts

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#61
post #46

Earlier quoted context omitted.

Some people are more inclined to theoretical concepts, some people are more practical. Both have an understanding on how things work and/or an intuition, either by studying theoretical concepts or via practical, hands on experience. My issue with this, and this is mostly my own personal opinion, is not whether or not this subject is important and that we need to defend it, but whether teaching it to students of that…

Yeah! And why come we gots to teach kid how to plus and minus if theys just gonna be a plummer?

I think you are not addressing the point, which the GP tried to make. It's not about teaching or not teaching, but about the time when stuff is taught. Surely all these things have their time and place. Perhaps there are gentler introductions to some of these topics available?

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#62
Interesting how so many of these problems are probably hard for a fraction of the people that want to pass this exam simply because of the language in which they are expressed.

For example, and I've noticed this pattern with some regularity: large and complex expression in a paper or some other document. Actual implementation: one or more for loops with an add or a multiply in the body of the loop with some initialization. I get it that mathematical notation is nice and compact and a quick way to communicate an idea but pseudo code would quite often be more clear.

The same for a lot of the other terminology used in the questions. How much of studying in order to pass an exam like this is simply to cram the definition for a large number of terms?

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#63
post #43

I need to defend theory of computer science here, it seems. Please note that this computer science , not computer engineering . The idea of automata, regular languages, turing machines, and whatnot inform some of the most fundamental results of computer science . At least in the fields where I work [compilers, formal verification], all of the above theory is common parlance. Everyone working on this stuff knows all o…

One of the best books I ever read was a book that implemented a large number of algorithms in Pascal. This served me well both when implementing things as well as when studying papers about algorithms. The gap between theory and practice in computer science is as small as it gets across many domains.

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#64
post #13

Skimming through the pages on the video, it shows vividly how far away academia is from real life problems.

Try the same for theoretical physics and the practical version of it and compare how far away those are. CS has it easy in comparison. At least you won't need to wait half a lifetime or longer to see if your ideas pan out or not.

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#65
post #34

Earlier quoted context omitted.

on the interview for the job I have right now, they asked me a lot about design patterns. I took a class on that and implemented a lot of them in Java. Factory, Facade, Visitor, Singleton... Never used them again after college, ask me about it, I think I would be able to explain Factory and Singleton from the top of my head, the rest... gone!!! I guess what I'm trying to say is that I would love to be that guy with a…

You never use a Factory or Singleton? That’s weird to me cause I use them daily. But certainly Singletons can also be problematic, especially if you do automated testing, which I do not.

That's probably because of the use of different paradigms.

If you write typical so called OOP code all the time, sure, you'll hit many instances of this or that pattern coming in handy. If you write FP and only occasionally strew in some OOP, well, many of the patterns fly out of the window, as you do not really need then any longer, because the building block is a function and you solve most of the stuff using closures and higher order functions. Also you usually do not mutate state, so that is another load of patterns out of the window.

Surely however, it is good to know the patterns approximately well, so that you can quickly understand the meaning of code, which makes use of them. If only all people used design patterns always in a correct way, instead of implementing them half-way correct and then using them in a weird way ... Never hurts too look up the details again, before introducing a pattern into the code!

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#66
post #34

Earlier quoted context omitted.

on the interview for the job I have right now, they asked me a lot about design patterns. I took a class on that and implemented a lot of them in Java. Factory, Facade, Visitor, Singleton... Never used them again after college, ask me about it, I think I would be able to explain Factory and Singleton from the top of my head, the rest... gone!!! I guess what I'm trying to say is that I would love to be that guy with a…

You never use a Factory or Singleton? That’s weird to me cause I use them daily. But certainly Singletons can also be problematic, especially if you do automated testing, which I do not.

If I can, I never use the classical singleton pattern because of testability. On the other hand I use one single instance of a class if I can make use of a dependency injection framework. I prefer that over static classes which have the bad habit of getting in the way of testing.

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#67
post #46
post #43

I need to defend theory of computer science here, it seems. Please note that this computer science , not computer engineering . The idea of automata, regular languages, turing machines, and whatnot inform some of the most fundamental results of computer science . At least in the fields where I work [compilers, formal verification], all of the above theory is common parlance. Everyone working on this stuff knows all o…

Some people are more inclined to theoretical concepts, some people are more practical. Both have an understanding on how things work and/or an intuition, either by studying theoretical concepts or via practical, hands on experience. My issue with this, and this is mostly my own personal opinion, is not whether or not this subject is important and that we need to defend it, but whether teaching it to students of that…

If you want people to write mostly CRUD apps, sure.

If you want people to develop programming languages, algorithms, models etc., not really. Computer Science is a subfield of math and trying to "lure" people into the field with flashy graphics and instant gratification will only frustrate them when it gets to the basics. In theory you can complete a Computer Science degree without ever programming a physical computer. To complete my Masters in CS I only had to take an introductionary course for Java, everything else programming related was optional.

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#69
post #21
post #18

Earlier quoted context omitted.

Probably a true statement for every theoretical academic field. Yet, very mysteriously the obscure academic problems have produced our great wealth of technology. I find this fascinating.

Except they haven't, mostly internalized (sometimes stolen) and formalized achievements of free risk takers, who don't bother writing textbooks.

The idea that academia is "risk-free" is frankly hilarious, given the state of the academic job market and the pay lines for most grants.

Re: Professor solves 240 computer science exam problems in 4 hours [video]

#70
post #50
post #43

I need to defend theory of computer science here, it seems. Please note that this computer science , not computer engineering . The idea of automata, regular languages, turing machines, and whatnot inform some of the most fundamental results of computer science . At least in the fields where I work [compilers, formal verification], all of the above theory is common parlance. Everyone working on this stuff knows all o…

A lot of people give theory a lot of crap. But that's normally because they are not comfortable with the material. If you are comfortable with the material, you see applications for it all over the place, and use it all the time. Sure, you don't have to ground your system in some kind of formal model (you can just code-til-it-works), but when you do I've found it always ends up as a far simpler and more resilient pro…

I found it also helps with the hardest problem in software development: naming things.

Without knowledge of the theory it can be hard to come up with a descriptive name for some data structure/algorithm you created to solve your problem.

With some knowledge of the theory you can more easily put a name to what you have created, making it easier for other people to understand and giving them something to Google if they're unfamiliar.

Post reply on HN