Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: How are students learning programming in a post-Basic world?

  1. #1
    thinBasic author ErosOlmi's Avatar
    Join Date
    Sep 2004
    Location
    Milan - Italy
    Age
    57
    Posts
    8,777
    Rep Power
    10

    How are students learning programming in a post-Basic world?

    www.thinbasic.com | www.thinbasic.com/community/ | help.thinbasic.com
    Windows 10 Pro for Workstations 64bit - 32 GB - Intel(R) Xeon(R) W-10855M CPU @ 2.80GHz - NVIDIA Quadro RTX 3000

  2. #2
    thinBasic MVPs danbaron's Avatar
    Join Date
    Jan 2010
    Location
    California
    Posts
    1,378
    Rep Power
    152
    I'm not sure whether or not the article had a point, or was just a space filler.

    To me, learning usually requires work. If someone is motivated enough to learn something, then, usually he can find a way to do it.

    On the other hand, if a person demands that all learning be entertaining and require no work, then, who can help him?

    Some first graders can probably begin using Haskell. Some eighth graders will have difficulty with Basic.

    That's why students are separated according to their abilities.

    If you require that there be one language that every child is capable of using, then, that language will be very simple.

    So, in a way it doesn't make sense to assume that there should be just one standard language which is taught to all school children.

    No one I know of demands that there be one math curriculum taught to all school children. The curricula diverge almost immediately according to talent and motivation.

    Why should the situation be different with respect to computer programming?

    On the other hand, I do see the current fascination with Python, as mostly a fad - a manifestation of the herd mentality.

    Previously the fad was for Java, and before that for C++.

    Who can show that Python is objectively better than Java, or that Java is objectively better than C++.

    To me, if a language is Turing Complete (link), then asking which language is better, is like asking which color is better.

    http://en.wikipedia.org/wiki/Turing_completeness

    On the internet, you learn that people will argue about anything and everything, and it seems especially about programming languages. Apparently, to me, some people would marry their particular favorite programming language if they could. Other languages they avoid like HIV. And then there are also the people who realize that, there is a difference between virtual reality and real life.



    (I do see the fact that computers no longer include any programming environment at all (I think they should include a complete environment for some relatively easy language, including all of the documentation.), as an obstacle to children who want to learn computer programming by themselves. And, this obstacle will loom largest (like almost all of life's obstacles), for poor children. Of course, if all children had equal access to education, then, the upper class could not maintain its advantage over the masses of peasants, serfs, slaves - and who would ever want that?!)

    Last edited by danbaron; 28-06-2011 at 06:43.
    "You can't cheat an honest man. Never give a sucker an even break, or smarten up a chump." - W.C.Fields

  3. #3
    I think Basic could easily make a comeback. There is no rigid specification. It is more of a style of programming.

    One of its most important characteristics is that it can be used by beginners - even eleven year olds who have mastered the computer keyboard should be able to get something interesting out of it, or at least make it go quack!

    Thinking of the early home computers, it needs built-in sound, speech output and graphics as well as printed output. Maybe a few games already written, with some variables at the top of the program which can be safely altered to change the behaviour of the program.

    On the maths side, instant graphs and charts, and statistical functions. For physics: simulations of gravity and other forces.

    But the most important thing is to be able to create very simple programs that do something for the student, with a minimum of knowledge.

    Charles

  4. #4
    I think Basic could easily make a comeback.
    I'm confident that if OxygenBasic continues its current path, that reality is already unfolding.
    ScriptBasic Project Manager
    Project Site
    support@scriptbasic.org

  5. #5
    We can go quite a long way eliminating "dims" and the need to specify variable types but it is quite hard to make a safe compiler. Performance is closely related to lack of safety , and compilers get extremely tetchy even when minor errors are made. So for those starting out in programming, it may well be that an interpretive Basic is the best way to go.

    But we need to make library functions highly accessible, so that the user can key in for example, "bar chart" and the function appears on the page with a full set of default parameters ready to go.

    Even for experienced programmers searching around for the right functions or classes, is one of the biggest and most tedious of chores.

    Perhaps in the future, there will be less emphasis on specific languages and more on the database/accessibility side. Am I reinventing .net here?

    Charles

  6. #6
    thinBasic MVPs danbaron's Avatar
    Join Date
    Jan 2010
    Location
    California
    Posts
    1,378
    Rep Power
    152
    I do think that Basic is the most straightforward and intuitive language that I know of.

    (But, I cannot determine how much my opinion was influenced by the fact that Basic was the first language I was exposed to.)

    If I am correct, it is an imperative language, --> Do A. Then do B. Then do C, etc.

    It functions exactly like a person making a list of things he wants to do the next day. He writes down all of the items, and he orders them to indicate their sequence.

    Additionally, Basic's command structure is simple.

    I think that in most cases, people beginning in programming do not need or want additional layers of abstraction between them and the task they want to accomplish.

    Who wants to have to have to instantiate all kinds of classes in order to print "hello" in a console window?

    I can remember becoming very frustrated by various languages and environments, when I continually failed in being able to perform the simplest of tasks.

    I think people beginning in a new area, especially one in which they are doubtful if they can succeed, need early success. Often they will not continue to fail again and again, instead, they will quit.

    --------------------------------------------------------

    Here is an example of what was for me, frustration.

    I was playing with Haskell.

    I wanted to time a process.

    There is a function, getCPUTime.

    I had to divide its value to convert the time into seconds.

    But, I couldn't do it.

    When I tried to do the division, Haskell told me I was using incompatible types, the type of getCPUTime was, "IO Integer", and the type of my divisor was, Integer.

    I found a way to do it (link), but so far, I don't understand it.

    http://www.haskell.org/haskellwiki/Timing_computations

    Fortunately for me, I don't need to use Haskell. If I was in school and I had to use it for some class assignment, I would want to murder it.

    What easier way is there to make someone quit, when he is just starting?



    Last edited by danbaron; 29-06-2011 at 05:50.
    "You can't cheat an honest man. Never give a sucker an even break, or smarten up a chump." - W.C.Fields

  7. #7
    My notion of simplicity is to eliminate as much excess syntax as possible and provide all the necessary type conversions automatically. This is not easy to do internally. The compiler has to be a lot smarter than say a C compiler. Making many more inferences about the intentions of the code.

    In contrast to Lisp, (which is extremely simple to parse), I find that it is possible to eliminate about 90% of brackets in a program. They are only needed to resolve ambiguities or make an expression easier to read in some cases.

    'A complete program:


    print "Hello!"


    'Adding numbers together


    print 1 2 3 4 5 1.25 2.25 1.5e6




    'a multiline program with variables


    tot= 1 2 3 4 5 1.25 2.25 1.5e6
    avg= tot/8
    print "total " tot " average " avg




    'what type of variable was it using?


    print typeof tot 'double precision


    Charles

  8. #8
    Dan,

    You said that Basic as an imperative language, carries out its instructions like a shopping list.

    I've been working on multi-threading recently, which becomes important at the higher end of programming, where several tasks have to be carried out at the same time. For instance audio, video, and internet communications cannot be rigidly synchronised so must be run in parallel to avoid bottlenecks.

    Due to some of the technical language used, this is quite hard to grasp. But I propose something really simple for Basic:

    together procedure1,procedure2, procedure3 ...

    these procedure calls are automatically placed in separate threads. And the program does not proceed beyond this statement until all the procedures have completed.

    In multi-threading, the operating system itself decides when and where each thread is processed, according to how many cores are available and how the priorities are ranked. This is generally not a prime concern for the coder.

    Charles

  9. #9
    I was wondering who is behind this that constantly push basic into
    second place and this same people push python everywhere.
    From my point of view python is piece of junk.

  10. #10
    It doesn't matter if the language is worthy or not as long as there is enough sustainable hype for it to take hold. Ruby is another WTF language programmers migrated to. Looking for the holy grail of languages seems to be an ongoing pastime.
    Last edited by John Spikowski; 29-06-2011 at 18:34.
    ScriptBasic Project Manager
    Project Site
    support@scriptbasic.org

Page 1 of 2 12 LastLast

Similar Threads

  1. A strange way to classify Basic programming languages
    By ErosOlmi in forum Other languages
    Replies: 12
    Last Post: 10-09-2008, 19:19

Members who have read this thread: 0

There are no members to list at the moment.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •