Live data from Hacker News

Computer Science from the Bottom Up (2013)

bottomupcs.com

61–70 of 161 posts

Re: Computer Science from the Bottom Up (2013)

#61

Earlier quoted context omitted.

Computer science is not about computers; where does stuff like algorithms fit into this? What is a "true scottsman" of CS? Low level programmers? What about people that have pioneered the theory of computer science? The likes of Karp, Valiant, Cook, Blum, Vazirani, Papdimitriou, Micali, Goldwasser, Goldreich, Shamir, Rivest and etc.? I doubt these people know the inner workings of computers, but they have revolutioni…

You need both.

I agree, and the good computer science programs take this approach.

Re: Computer Science from the Bottom Up (2013)

#62

Earlier quoted context omitted.

CLISP is redistributed under the GPL, but isn't part of the GNU project. GNU project's Common Lisp implementation is a project called GCL: GNU Common Lisp, a descendant of Kyoto Common Lisp. Also, your analogy that Common Lisp to various Schemes and Clojure is like C to Java/Rust/Python is severely flawed in multiple ways.

I am curious do you have a different suggestion for a LISP implementation for working through SICP other than CLISP or would you agree this is a good choice?

SICP is squarely based in Scheme. One of the two authors of SICP is Gerald Sussman. Sussman, together with his then student, Guy Steele, invented Scheme.

Re: Computer Science from the Bottom Up (2013)

#63
post #10

Earlier quoted context omitted.

See also this presentation: Creating a language using only assembly language ( https://speakerdeck.com/nineties/creating-a-language-using-o... ).

Wow, this was really interesting. Do you know if there is any video of the presentation available? I wasn't able to find it in a quick search. Also I love to see people using speakerdeck.com to make their presentations available, it is so much nicer and and elegant that the abomination that is slideshare.net. Cheers.

I couldn't find either. Only the github page https://github.com/nineties/amber

Re: Computer Science from the Bottom Up (2013)

#64
post #53

Earlier quoted context omitted.

Theory is useless without implementation and implementation is nothing without an understanding of theory. Implementation and theory are in lockstep but by learning theory you will not necessarily know how to implement, or even really understand, the topics you have memorized. On the other hand it is necessitated by the concept of implementation that you on one hand understand the tools you are using to solve this pr…

Do you have a blog? You have some interesting ideas that would be good to explore in a longer form.

I do it's https://blog.gravypod.com but nothing interest is on it right now.

I'd love to write more but I usually need a prompt on a topic that I've thought about. I try to keep my ideas to myself until I've formulated an argument for either side that is "sufficient" in my mind.

I'd love to write about this in more detail and I'll definitely write about anything emailed to me if I'm able to formulate an idea either way. I'm heading home soon and write up something more detailed on this topic and why I feel this way on the topic of education.

Re: Computer Science from the Bottom Up (2013)

#65
post #5

I've been rattling this idea around in my head and, although it may sound crazy, I think C is a little high level to start an adult out on. I know many people won't agree with this but all of the people I admire in the world of CS and everyone who is a true scottsman for all intents and purposes loves dipping down to a lower level once and a while. I think the best way to learn about computer science it to program fo…

Computer science is not about computers; where does stuff like algorithms fit into this? What is a "true scottsman" of CS? Low level programmers? What about people that have pioneered the theory of computer science? The likes of Karp, Valiant, Cook, Blum, Vazirani, Papdimitriou, Micali, Goldwasser, Goldreich, Shamir, Rivest and etc.? I doubt these people know the inner workings of computers, but they have revolutioni…

Maybe I am too old, but from my vantage point, "Computer Science" and "Algorithmic Science" are really two entirely separate fields.

Computer Science is exactly what the OP talks about: computers, CPUs, implementation details, hardware, plumbing, etc... One needs actual hardware on the table to work this out. Imperfect hardware, with latencies, clock issues, etc... THAT is true computer science, IMHO, and is very near Electrical Engineering.

On the other hand, Algorithmic Science really is an applied form of mathematics. One does not actually _need_ a computer to design, understand, invent algorithms. A brain, paper and pen are enough.

Those are two different sciences, and I suspect very few people are actually great (world class) in both simultaneously. It is futile to imagine that a single school curriculum would adequately form people in those two very different topics.

I could add that where I work, we have in-house the two kinds of people: a couple of mathematicians for the (amazing algorithms) and a few very picky low-level programmers who actually implement the algorithms with blazing fast, hand-crafted code. The two groups would never dream of doing the other's job.

Re: Computer Science from the Bottom Up (2013)

#66

Earlier quoted context omitted.

I don't think this is a fair comparison to what the GP is saying. You can pick up pretty much any book on programming for the C-style and more then 90% of the information will transfer over. Classes may be omitted in some, reqired in others. The same may apply to types. But after they see a compiler warning you're likely to google it and figure out what's wrong very easily. On the other hand most people, who are quit…

>"Many also don't even realize they have one built into their browser that is perfectly adequate for satisfying the desires to explore functional programming and general computation principles." Are you referring to Javascript being a LISP dialect here? I've heard this occasionally but I also though that the one predominant feature of LISP was that of homoiconicity which I don't believe applies to Javascript or is th…

JavaScript IS lisp with 1) a new syntax and 2) more things bolted on top that make it a non-LISP language. There are two things under the catagory of JavaScript. The Functional size and the Imperative side. It's the only language in the lisp family that allows you to write both, neither, or some combination in the same program. I say neither because other paradigms can be expressed from within JavaScript that will not be expressable in most FP and Imperative languages without some muscle involved in forcing it to do so.

Watch David C.'s talk on JavaScript the Good Parts to see this diamond in the rough.

Re: Computer Science from the Bottom Up (2013)

#68

Earlier quoted context omitted.

> Increasingly today the underlying architecture, for most intents, is becoming irrelevant ... amidst cries from a handful of lunatics who insist we shouldn't be using linked lists any more because they don't use the L1 cache very well compared to arrays.

Errrr, how is this lunacy? Seems like something everyone should be aware of.

It is, but if you're, say, writing a small-scale webapp or some other app that's disk-bound (99% of all applications), it's probably not something you'll have to worry about.

Re: Computer Science from the Bottom Up (2013)

#69
post #65

Earlier quoted context omitted.

Computer science is not about computers; where does stuff like algorithms fit into this? What is a "true scottsman" of CS? Low level programmers? What about people that have pioneered the theory of computer science? The likes of Karp, Valiant, Cook, Blum, Vazirani, Papdimitriou, Micali, Goldwasser, Goldreich, Shamir, Rivest and etc.? I doubt these people know the inner workings of computers, but they have revolutioni…

Maybe I am too old, but from my vantage point, "Computer Science" and "Algorithmic Science" are really two entirely separate fields. Computer Science is exactly what the OP talks about: computers, CPUs, implementation details, hardware, plumbing, etc... One needs actual hardware on the table to work this out. Imperfect hardware, with latencies, clock issues, etc... THAT is true computer science, IMHO, and is very nea…

> Computer Science is exactly what the OP talks about: computers, CPUs, implementation details, hardware, plumbing, etc... One needs actual hardware on the table to work this out. Imperfect hardware, with latencies, clock issues, etc... THAT is true computer science, IMHO, and is very near Electrical Engineering.

It really depends on what sources you base your concepts on. I would say that, for instance, what you mention is more closely related to "computer engineering" than "computer science".

For instance, in [0]: "Thus CS is closer to the underlying theory of computation, with its roots in mathematics, and CEN is closer to the design of physical devices (...) Of the three great divisions in computing, namely theory, software and hardware, to a first approximation theory goes with CS, hardware with CEN, and software with both (...)"

In my country, our technical schools and most universities provide what we call "informatics engineering" (engenharia informática), which has a bit of CS (in terms of basic concepts, algorithms, abstract data types, etc.), CE (some low level electronic stuff) and Software Engineering (Programming, OOP, Web Programming, Logic/functional programming, etc.).

[0] http://www.eng.buffalo.edu/undergrad/academics/degrees/cs-vs...

Re: Computer Science from the Bottom Up (2013)

#70
post #65

Earlier quoted context omitted.

Computer science is not about computers; where does stuff like algorithms fit into this? What is a "true scottsman" of CS? Low level programmers? What about people that have pioneered the theory of computer science? The likes of Karp, Valiant, Cook, Blum, Vazirani, Papdimitriou, Micali, Goldwasser, Goldreich, Shamir, Rivest and etc.? I doubt these people know the inner workings of computers, but they have revolutioni…

Maybe I am too old, but from my vantage point, "Computer Science" and "Algorithmic Science" are really two entirely separate fields. Computer Science is exactly what the OP talks about: computers, CPUs, implementation details, hardware, plumbing, etc... One needs actual hardware on the table to work this out. Imperfect hardware, with latencies, clock issues, etc... THAT is true computer science, IMHO, and is very nea…

Computer science is as much about computers as astronomy is about telescopes https://en.wikiquote.org/wiki/Computer_science
Post reply on HN