Slashdot Mirror


Do Kids Still Program?

From his journal, hogghogg asks: "I keep finding myself in conversations with tertiary educators in the hard sciences (Physics, Astronomy, Chemistry, etc.) who note that even the geeks—those who voluntarily choose to major in hard sciences—enter university never having programmed a computer. When I was in grade six, the Commodore PET came out, and I jumped at the opportunity to learn how to program it. Now, evidently, most high school computer classes are about Word (tm) and Excel (tm). Is this a bad thing? Should we care?" Do you think the desire to program computers has declined in the younger generations? If so, what reasons might you cite as the cause?

1 of 1,104 comments (clear)

  1. Teach Abstraction Physics Re:As a HS math teacher by 3seas · · Score: 0, Offtopic

    The problem is a lack of what should have been being taught decades ago. Abstraction Physics.But instead programming languages continue to be the thing to learn and thats a moving target, ever changing...

    The sort of thing that would remain useful like learning how to do math rather than just learning about all the advanced algorithyms others have done.

    The ''physics of abstraction'' is of an outside looking in perspective, where rather than creating another abstract language (inside), instead sees the underlying action machinery enabling the ability to create languages (outside looking in). Since Abstraction is a human mental characteristic, there is an inherent subjectivity to the topic. However, through the use of computers we can be more objective about abstraction physics. See: Abstraction (computer science)

    Abstraction enters the picture of computing with the representation of physical transistor switch positions of ON '1' and OFF '0' or what we call "Binary notation". However, computers have far more transistor switches in them than we can keep up with in such a low level or first order abstract manner, so we create higher level abstractions in order to increase our productivity in programming computers. From Machine language to application interfaces that allow users to define some sequence of action into a word or button press (ie. record and playback macro) so to automate a task, we are working with abstractions that will ultimately access the hardware transistor switches which in turn output to, or control some physical world hardware.

    Programming is the act of automating some level of complexity, usually made up of simpler complexities, but done so in order to allow the user to use and reuse the complexity through a simplified interface. And this is a recursive act, building upon abstractions others have created that even our own created abstractions/automations might be used by another to further create more complex automations. In general, if we didn't build upon what those before us have done, we then would not advance at all, but rather be like any other mammal incapable of anything more than, at best, first level abstraction. But we are more, and as such have the natural human right and duty to advance in such a manner.

    Abstraction action constants:

    There is an identifiable and definable "physics of abstraction" (abstraction physics), an identification of what actions are required and unavoidable, in order to make and use abstractions. Abstraction Physics is not exclusive to computing but constantly in use by ... well... us humans. Elements or facets of abstraction physics include the actions of abstraction creation and use, such as:

    0) Defining a word to mean a more complex definition (word = definition, function-name = actions to take, etc.)

    1) Starting and Stopping (interfacing with) of an abstraction definition sequence.

    2) Keeping track of where you are in the progress of abstraction sequence usage (moving from one abstraction to another).

    3) Defining and changing "input from" direction.

    4) Defining and changing "output to" direction.

    5) Getting input to process (using variables or place holders to carry values).

    6) Sequencially stepping thru abstraction/automation details (inherently includes optionally sending output).

    7) looking up the meaning of a word or symbol (abstraction) so to act upon or with it.

    8) Identifing an abstraction or real item value so to act upon it.

    9) Putting constraints upon your abstraction lookups and identifications
    -When you look up a word in a dictionary you don't start at the beginning of the dictionary, but begin with the section that starts with the first letter then followed by the second, etc., and when you open a box with many items to stock, you identify each so as to know where to put it in stock.

    These placed into a logical integration for versatility and exception handeling provides for a "Virtual Interaction Configurat