1
$\begingroup$

According to the book, Introduction to Computation And Programming Using Python by John V Guttag, a computer does only two things:

  • Store data
  • Manipulate data

But is this all? I mean, without I/O, can a computer be considered useful?

$\endgroup$
  • 9
    $\begingroup$ I suggest ignoring this remark. It is unhelpful. $\endgroup$ – Yuval Filmus Mar 7 '17 at 7:05
  • 1
    $\begingroup$ I don't know about this book, but I agree with others, that's a pretty simplistic statement which isn't very helpful. Maybe the author meant it tongue-in-cheek, in context? Anyway, it's more fun to make this sort of list with, say, politicians, who do only two things: 1) promise stuff; 2) find excuses. $\endgroup$ – YSharp Mar 9 '17 at 7:59
1
$\begingroup$

I think the author is over simplifying to make a point. Obviously a computer needs to take input and produce an output to have any value. But usually, when you press a key on your keyboard, it is altering data in a reserved memory location and that's how the computer even knows you pressed something, because it sees that data changed. That's what a "memory mapped I/O" is--specific places in memory that the computer looks for input changes. So depending on how you look at it, input and output is still just storing and manipulating data. But if you attach a motor to it, then your computer can do just about anything.

$\endgroup$
  • $\begingroup$ Is the line "attach a motor to it ..." a joke or am I not getting something technical? $\endgroup$ – Abhishek Kumar Mar 7 '17 at 6:19
  • 1
    $\begingroup$ well, its kind of a joke. it is showing that depending on how you look at it, computers can be said to do a very few things (if you're talking about how it works) or if you're talking about what it can accomplish, it can "do" any number of things. Our fingers only do one thing--move--yet they can program, punch, and paint. $\endgroup$ – ProGrammar Mar 7 '17 at 6:22
  • $\begingroup$ "computer" in this context could also mean a car or a security alarm or a fancy coffee maker--anything with a processor that takes an input and produces some sort of physical or digital output. You can get a raspberry pi "computer" and either put Linux on it and run it like a computer, or make animatronics with it. $\endgroup$ – ProGrammar Mar 7 '17 at 6:25
  • $\begingroup$ Well, reserved memory location. maybe "file" is the wrong word. $\endgroup$ – ProGrammar Mar 7 '17 at 13:05
  • $\begingroup$ and thus the author of Introduction to Computation And Programming Using Python is thus entirely wrong? Just trying to provide context of why the author might have said that. $\endgroup$ – ProGrammar Mar 7 '17 at 13:51
7
$\begingroup$

The statement is obviously false: my computer can make sounds and it's hard to see that that as either storing or manipulating data. I suggest you just ignore it and move on, since producing this kind of list does nothing to help your understanding of computers, programming or anything else.

$\endgroup$
2
$\begingroup$

The problem with such a statement is that you need to understand them in a very specific context and at a specific level of abstraction only. For example I could say an electronic computer just move electrons around, which is correct if the context and the abstraction level is just electrons but it is not useful outside of that context.

$\endgroup$
1
$\begingroup$

This is what is called a truism. It's true, but not really useful.

For example: You mention I/O. Consider showing a picture on the screen. At some level, the computer manipulates the data into a series of pixel values and then stores those values in a memory buffer that just happens to be the video buffer of the graphics card. The graphics card hardware just takes that data and manipulates it into an HDMI data stream for the monitor and shazzam... a picture on the screen.

The same can be said for any I/O or any other operation. Just moving (storing if you frame your perspective "correctly") data around while manipulating it to the desired form.

True Yes. Useful, only on the most abstract level. Perhaps as a conceptual starting point in the introduction of a book.

$\endgroup$
  • $\begingroup$ I'm not sure it's even true, though. Can you really say that lighting up a pixel on the screen or receiving input from the keyboard is just manipulating data? I wouldn't class emitting light as "manipulating data": deciding what light to emit is, as you explain, manipulating data. But actually emitting it? $\endgroup$ – David Richerby Mar 8 '17 at 17:21
  • 1
    $\begingroup$ No, it's storing data. Besides emitting light is done by the monitor not the computer, $\endgroup$ – Peter Camilleri Mar 8 '17 at 17:24
  • $\begingroup$ Well, I agree that it's a truism if you define the computer to not include any of its essential peripherals. (If you're going to exclude all the I/O systems, there's no way to interact with the computer, so it may as well be a brick.) $\endgroup$ – David Richerby Mar 8 '17 at 17:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.