[ prog / sol / mona ]

prog


The Legacy of Computer Science

1 2021-08-08 17:57

https://groups.csail.mit.edu/mac/users/gjs/essays/remember.pdf

In this paper the Sussman argues that the real legacy of computer science is giving us a precise language to describe "methodological ideas", while giving some examples from teaching.

What do you think? It seems a strange claim, considering how little of code is actually written to be read.

2 2021-08-08 22:24

>>1
I believe the Sussman to be taking from his background of methodological study with a large founding in mathematics, which computer science owes its legacy to and stems from.

3 2021-08-09 04:18

>>1
Is the language Hoare logic and analysis of algorithms? It seems there is little else to the field of computer-science now regardless of whether it has lasting influence. One other item, I don't understand his claim that debugging and modifying a program would be better suited to learning than practice. In my experience intelligent practice is the only way to learn, and we go against this at our peril.

4 2021-08-09 17:06

Lecture about the same topic: https://www.youtube.com/watch?v=6J1vRrozgBg

>>3
I think you are conflating two different claims. First, he claims that it is more effective to explicitly tell someone what to do than is to expect them to figure it out from examples. Second, he claims that writing, modifying and debugging programs are good exercises in understanding what the program implements.

5 2021-08-09 18:20

>>4
I admit my argument is fuzzy. He favors the removal of worked examples in favor of algorithms, and promotes programming, and debugging as powerful exercises. Further he states: ``Also, once formalized procedurally, a mathematical idea becomes a tool that can be used directly to compute results.'' Now my intuition from these claims taken together is that he wants to remove practice.

If computer science isn't a science, and it isn't about computers, than we can remove entirely induction and computers going in exactly the opposite direction while preserving the desired aspects of computer science (and the only parts of it which really exist) hoare logic (or equivalent) and analysis of algorithms.

6 2021-08-09 19:27

>>5
Maybe you could formalize your intuition so we can see where the leap is, because to me it does not follow at all. Practice is about mastering things that you already know. The paper talks about transferring novel ideas.

7 2021-08-09 20:03

>>6
Well, if my intuition is wrong, that is to say he does not want to reduce practice, then I have no disagreement at all, and since this was never explicitly stated I'm left without an argument to defend. Within this context then the significance of computing (as opposed to computer science) is not removing the need of knowledge from the user but permitting more efficient exploration. I still find alarming the mention of the ``tool that can directly compute the result'' at all.

I suspect I rejected these ideas not because of their own merits but because of their similarity to other ideas I reject. I have a (perhaps incorrect) view that Mathematics is under a constant assault from those who would seek to remove from it derivation, practice, and at the same time intuitive thinking and conjecture. Sussman's argument was too close to the antithesis for me. I'll try to come to some higher conclusion rereading in the days to come.

8 2021-08-12 15:28

>>3,5,7
I reread the article. My claim about the end of practice as was mentioned cannot be derived from the text. I think my argument against the use of computers is in fact inline with text however; even the natural conclusion. A sort of freeing of Geometry from straight edge and compass. The idea that the correctness of algorithms should be proved is also not antithetical to his ideas, although they are not implicit in them either.

9 2021-08-14 10:58

It is intuitive to think of code as being hard to understand. We need to write comments and stick to stylistic conventions to make code readable, and are constantly inventing new languages that are supposedly easier to read than existing ones. We need to write our programs in modular ways, so that our puny brains can abstract away the details and understand the parts one by one. But is the alternative better? Is code hard to understand, or is it enabling us to handle (if barely so) an amount of complexity that we'd have no way to tackle without it?

This got me thinking about pseudocode. Pseudocode is written strictly for humans to read, and I think I can claim that its invention was enabled by the existence of proper programming languages. Is pseudocode not easier to understand than plain English prose? My experience trying to wrap my head around programming 101 algorithms by reading their Wikipedia articles says yes, very much so. A language for expressing and communicating how to do things - is this not what Sussman is talking about?

10 2021-08-14 12:50

>>9
I don't think this is what Sussman is talking about as evidenced by the fact that he's interested in teaching using Scheme, and explicitly mentions in the paper running the program, but this was exactly my point. The natural conclusion seems to be that computing is in fact unnecessary, and that writing in a notation designed for understanding rather executing algorithms is even more beneficial. I say hoare logic, and you say pseudocode but really the point is the same.

~~ while we're on the topic of Sussman, what the fuck is this: https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-1 ~~

11 2021-08-14 15:33 *

>>10
It is a derivative work of the original SICP, as far as I can tell the Sussman is credited only for the original, but not the JavaScript parts: https://sicp.sourceacademy.org/index.html

The license is puzzling. The original SICP is available under CC-BY-SA, but this is licensed CC-BY-NC-SA. Does that mean that the copyright holder (MIT Press?) allowed them to re-license it, or can you just put NC on CC-BY-SA? Doesn't NC cause problems in educational contexts, e.g. you can't use it for tutoring if you are paid to tutor?

12 2021-08-14 18:15 *

>>11
That makes sense. Regarding licensing for this to have been legal MIT would have to granted them permission, yes. I think fairuse covers some of the educational context, and as a tutor you can just lend someone your book without licensing issues, even if licenses were enforced. Only issue would be reproducing large sections of the text for many people like you might get if a "code academy" adopts the text I'd imagine.

13 2021-08-17 15:34 *

>>9,10
I was reorganizing some files on my system and stumbled across a list of problems I see in mathematics education. Interestingly one of these items was the prevalence of induction from examples which in proofs I claim discourages understanding and the skill of conjecture. I wonder why I didn't think to apply this to more foundational and algorithmic forms of mathematics as Sussman did? I think this was because I was missing the idea that the languages of computer science, be that programming languages, pseudo-code, or hoare logic are applicable in this context.

14 2022-02-28 22:32

Sussman makes it sound like it is some revolutionary thinking, but didn't the ancient Greeks do the same? Wasn't much of early mathematics about procedural knowledge? Like how to calculate the greatest common divisor or construct a regular hexagon.

15 2022-03-03 06:31

14

Yup, and Abelson and Sussman bring up those examples from the ancient world quite a bit in the Wizard Book

16 2022-03-19 14:32

Why not a course on algebra where you build your own (symbolic) computer algebra system? That sounds more approachable than obscure topics like classical mechanics or differential geometry. Or even finding anti-derivatives. It is usually taught in a heuristic way but there's an actual algorithm to do it.

17 2022-03-19 14:34

By the way, does any of you know which courses are these, mentioned in the paper? I would be interested to see if there's anything about them online.

I have used computational descriptions to communicate methodological

ideas in teaching subjects in Electrical Circuits and in Signals and Systems.

18 2022-06-02 05:49

I think that when people talk about reading code, they really mean working with it, modifying it so that it suits your style and understanding, as Peter Seibel touches on here
https://gigamonkeys.com/code-reading/ (I need to read that book someday...)
And this is in line with what the Sussman is talking about in the paper

Expressing the methods in a computer language forces them to be unambiguous and computationally effective. Students are expected to read our programs and to extend them and to write new ones. The task of formulating a method as a computer- executable program and debugging that program is a powerful exercise in the learning process.

Notice how he mentions that the students are expected to extend the programs. I believe this is actually a similar process of learning to what the article above mentions.
I agree with him. Sufficiently succinct algorithm written in a language the person understands can have both the expressiveness of a mathematical formula and the additional benefit of being able to trace its execution step by step with the help of a computer.
The core idea for me here is that the Sussman expresses a belief that the switch to ``algorithmic'' thinking, more in terms how computers execute tasks, will greatly aid us in understanding things that are currently complex, so much in fact that we will be able to reliably explain them to a child. A new way of looking at things if you will. And personally, I've seen people use computers to try and explain things like the workings of a human body, and I have as well used computer analogies to aid myself in understanding some things, so he seems to have a point there. But as mentioned in the paper, it might take a long time to really recognize the impact this would have.
The problem is reducing an idea to such an algorithm, which necessarily limits the domain to things that can be reliably abstracted away and simulated. Well, it's probably not nearly as limiting for the Sussman, or other big brains.
>>17
I don't think Electrical Circuits and in Signals and Systems is a course. I believe however that this is the Classical Mechanics course he mentioned in the paper
https://ocw.mit.edu/courses/12-620j-classical-mechanics-a-computational-approach-fall-2008/

19


VIP:

do not edit these