Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. To introduce students on programming? Which language is more appropriate now?

To introduce students on programming? Which language is more appropriate now?

Scheduled Pinned Locked Moved The Lounge
c++csharphelpquestion
65 Posts 12 Posters 5 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Christian Graus

    Actually, children have more malleable brains and learn more easily than adults. However, one assumes that he's talking about teaching children and not adults. At the core, you're saying that people should start with the most complicated task, and then work backwards. I say they should develop a framework of understanding and go deeper with time.

    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #48

    Well, he is tlaking about 15 to 16 year olds, certainly old enough to take it on the chin. Heck, we did at that age. All kinds of complex stuff, advanced maths, organic chemistry, if someone had thrown in stacks and assembler it wouldnt have been any harder.

    "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

    C 1 Reply Last reply
    0
    • L Lost User

      Well, he is tlaking about 15 to 16 year olds, certainly old enough to take it on the chin. Heck, we did at that age. All kinds of complex stuff, advanced maths, organic chemistry, if someone had thrown in stacks and assembler it wouldnt have been any harder.

      "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

      C Offline
      C Offline
      Christian Graus
      wrote on last edited by
      #49

      Perhaps, but I don't think they approach any other subject by seeking to make it as complicated early on as possible, to make it as hard to learn as possible.

      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

      L 1 Reply Last reply
      0
      • C Christian Graus

        Perhaps, but I don't think they approach any other subject by seeking to make it as complicated early on as possible, to make it as hard to learn as possible.

        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #50

        Well, you see (and I did learn about computers form the inside out, bottom up, not at 16, because we didnt have them then, but at 18) actually when learnt at a fundamental level like this it is actually easier to understand the machine then via a high level language like C# (if thats what you were proposing). The first language I learnt was actually BASIC, on a Spectrum. But then I just got hold of one and taught myself. And, depending on what you are programming different languages have different uses. So if I was throwing together a database app talking to a Jet engine I would probably use VB or some such. (Never got involved with the Microsoft javaesque languages and VM so I cant really comment on .Net suitability). Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

        "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

        C 1 Reply Last reply
        0
        • L Lost User

          :laugh: :laugh: Just testing a hypothesis Christian.

          "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

          C Offline
          C Offline
          Christian Graus
          wrote on last edited by
          #51

          To put all this another way. If we each had a class, same age, same background. You taught assembler, I taught C#. In 6 months, our classes enter a programming contest. Each student needs to write the Windows calculator. As well as the functionality found in the windows calculator ( including scientific mode, hex, octal, etc ), the students would be free to add other features as they saw fit. They would be marked on functionality, appearance and robustness. All the things that matter in the real world. Which class do you think would win ?

          Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

          L 2 Replies Last reply
          0
          • L Lost User

            Well, you see (and I did learn about computers form the inside out, bottom up, not at 16, because we didnt have them then, but at 18) actually when learnt at a fundamental level like this it is actually easier to understand the machine then via a high level language like C# (if thats what you were proposing). The first language I learnt was actually BASIC, on a Spectrum. But then I just got hold of one and taught myself. And, depending on what you are programming different languages have different uses. So if I was throwing together a database app talking to a Jet engine I would probably use VB or some such. (Never got involved with the Microsoft javaesque languages and VM so I cant really comment on .Net suitability). Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

            "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

            C Offline
            C Offline
            Christian Graus
            wrote on last edited by
            #52

            fat_boy wrote:

            Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

            Sure, there's a tiny number of applications still where C and assembler are needed. And for someone who is going to have to take those jobs, it's perhaps arguable that knowing high level languages is of no value. But, why would you assume that a class for beginning programmers should aim for 2% of the possible jobs, and close to zero possibility of the path a hobbyist would take ?

            Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

            L 1 Reply Last reply
            0
            • C Christian Graus

              To put all this another way. If we each had a class, same age, same background. You taught assembler, I taught C#. In 6 months, our classes enter a programming contest. Each student needs to write the Windows calculator. As well as the functionality found in the windows calculator ( including scientific mode, hex, octal, etc ), the students would be free to add other features as they saw fit. They would be marked on functionality, appearance and robustness. All the things that matter in the real world. Which class do you think would win ?

              Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #53

              If you choose the examination to suit your chosen language then there is no competition Christian. And if you try to implement something on an Arm processor?

              "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

              C 1 Reply Last reply
              0
              • L Lost User

                If you choose the examination to suit your chosen language then there is no competition Christian. And if you try to implement something on an Arm processor?

                "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                C Offline
                C Offline
                Christian Graus
                wrote on last edited by
                #54

                fat_boy wrote:

                If you choose the examination to suit your chosen language then there is no competition Christian.

                I chose something that is applicable to the real world, and the sort of task that would demonstrate an ability to program, at a level that would count as some sort of accomplishment. What would your class be able to do, in six months ? A console calculator that does addition and subtraction perhaps ? I'd be able to double back and teach some C++ ( and even C if you like ) to teach them about memory management before your class could write a remotely useful program.

                Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                L 1 Reply Last reply
                0
                • C Christian Graus

                  Starting from C has been stupid for at least 10 years. Starting from C++ has been stupid for at least 4.

                  Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                  M Offline
                  M Offline
                  Mladen Jankovic
                  wrote on last edited by
                  #55

                  I can't be bothered to write lengthy post so I'll just post this link[^] and say that I agree with it completely.

                  [Genetic Algorithm Library]

                  1 Reply Last reply
                  0
                  • C Christian Graus

                    fat_boy wrote:

                    Of course if you are anywhere near HW then C and assembler are crucial. And a lot of coding is. Not just in kernels but FW for a lot of devices, plus handhelds.

                    Sure, there's a tiny number of applications still where C and assembler are needed. And for someone who is going to have to take those jobs, it's perhaps arguable that knowing high level languages is of no value. But, why would you assume that a class for beginning programmers should aim for 2% of the possible jobs, and close to zero possibility of the path a hobbyist would take ?

                    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #56

                    Its not so tiny as you think. Look at the number of PDAs around.

                    "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                    1 Reply Last reply
                    0
                    • C Christian Graus

                      fat_boy wrote:

                      If you choose the examination to suit your chosen language then there is no competition Christian.

                      I chose something that is applicable to the real world, and the sort of task that would demonstrate an ability to program, at a level that would count as some sort of accomplishment. What would your class be able to do, in six months ? A console calculator that does addition and subtraction perhaps ? I'd be able to double back and teach some C++ ( and even C if you like ) to teach them about memory management before your class could write a remotely useful program.

                      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #57

                      Mind you you could do a calculator in C just as quickly. Even faster in MFC.

                      "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                      1 Reply Last reply
                      0
                      • W Weiye Chen

                        If you were to teach some school students say aged 15-16 (who have no programming experience) the basics of software programming, which language would you begin with? I was taught C->C++->Win32->MFC but i am wondering nowadays if there is still a need to start from C. Perhaps children are now more intelligent and would not have much problem starting from C++ or C#?

                        Weiye Chen A hermit trying to learn hibernation...

                        P Offline
                        P Offline
                        peterchen
                        wrote on last edited by
                        #58

                        I'd pick C#, because you have a comfortable free dev env, it's state of the art, it's used in the industry, and you can explore different paradigms.

                        FILETIME to time_t
                        | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                        1 Reply Last reply
                        0
                        • W Weiye Chen

                          If you were to teach some school students say aged 15-16 (who have no programming experience) the basics of software programming, which language would you begin with? I was taught C->C++->Win32->MFC but i am wondering nowadays if there is still a need to start from C. Perhaps children are now more intelligent and would not have much problem starting from C++ or C#?

                          Weiye Chen A hermit trying to learn hibernation...

                          realJSOPR Offline
                          realJSOPR Offline
                          realJSOP
                          wrote on last edited by
                          #59

                          My first programming class was IBM 360/370 Assembly Language.

                          ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                          -----
                          You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                          -----
                          "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                          M 1 Reply Last reply
                          0
                          • L Lost User

                            Of course this is where the men and the boys get seperated: Those who really know how computers work and can make them fly, and those who can only write applications to process some data.

                            "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #60

                            Sorry to but in - hope this isn't the full 1/2 hour argument...

                            fat_boy wrote:

                            Those who really know how computers work and can make them fly, and those who can only write applications to process some data.

                            You seem to be implying (and I haven't read every word of this whole thread so I may have missed something) that there is just one, supreme, type of software developer. I've worked with many very clever technical people, who could (and did!) knock out a device driver in their lunch hour to support some new peripheral for a business application. sit them down to write a WPF business application and they'd struggle. And I've worked with some really smart business solution programmers who do have an understanding of the nuts and bolts, but really wouldn't know where to start when it came to a device driver, for example. it's a big field, with room for a lot of disparate skills.

                            ___________________________________________ .\\axxx (That's an 'M')

                            L 1 Reply Last reply
                            0
                            • L Lost User

                              Sorry to but in - hope this isn't the full 1/2 hour argument...

                              fat_boy wrote:

                              Those who really know how computers work and can make them fly, and those who can only write applications to process some data.

                              You seem to be implying (and I haven't read every word of this whole thread so I may have missed something) that there is just one, supreme, type of software developer. I've worked with many very clever technical people, who could (and did!) knock out a device driver in their lunch hour to support some new peripheral for a business application. sit them down to write a WPF business application and they'd struggle. And I've worked with some really smart business solution programmers who do have an understanding of the nuts and bolts, but really wouldn't know where to start when it came to a device driver, for example. it's a big field, with room for a lot of disparate skills.

                              ___________________________________________ .\\axxx (That's an 'M')

                              L Offline
                              L Offline
                              Lost User
                              wrote on last edited by
                              #61

                              Of course many skills are needed, but, and I am very sure, that a solid grounding in the basics makes a better engineer.

                              "It is a remarkable fact that despite the worldwide expenditure of perhaps US$50 billion since 1990, and the efforts of tens of thousands of scientists worldwide, no human climate signal has yet been detected that is distinct from natural variation." Bob Carter, Research Professor of Geology, James Cook University, Townsville

                              1 Reply Last reply
                              0
                              • realJSOPR realJSOP

                                My first programming class was IBM 360/370 Assembly Language.

                                ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                                -----
                                You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                                -----
                                "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                                M Offline
                                M Offline
                                Maximilien
                                wrote on last edited by
                                #62

                                Were there any other choices ?

                                Watched code never compiles.

                                realJSOPR 1 Reply Last reply
                                0
                                • M Maximilien

                                  Were there any other choices ?

                                  Watched code never compiles.

                                  realJSOPR Offline
                                  realJSOPR Offline
                                  realJSOP
                                  wrote on last edited by
                                  #63

                                  RPG, Cobol, PL/1

                                  ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                                  -----
                                  You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                                  -----
                                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                                  1 Reply Last reply
                                  0
                                  • C Christian Graus

                                    CDP1802 wrote:

                                    Hmm, did I not read recently that good old C still is the most widely used language?

                                    If that's the case, i assume that's counting people programming old mainframe code that needs maintenance programmers. Or it could just be the most widely used in terms of users, much of most OSes and also Office being written in C. So what ?

                                    CDP1802 wrote:

                                    And using object oriented languages does not automatically enable to write good code

                                    Doh. Look at the quick questions for all the evidence you need of that. So what ? Does not knowing OO make you a better programmer ?

                                    CDP1802 wrote:

                                    To make it short: What's worse? A programmer who does not know how to efficiently use the two most imortant resources of the machine, CPU and memory? Or a programmer who still has to learn more about a good design (which I see as a never ending quest)?

                                    They are both useless. However, in this day and age, it's usually the case that a computer can handle the former, better than the latter. I never said it was not a good idea to teach either of those things ( how to use resources, and good design ). I said that you learn good design by learning OO from the start, and going back to learn the things that were at first hidden from you. Who do you think feels the greater level of achievement ? The guy who spends a week getting assembler to say 'hello world', or the guy who spends a week getting C# to play a basic game, or run a calculator, or replace notepad ?

                                    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #64

                                    The problem is, that what constitutes good design and what not is not set in stone. As you may or may not know, I once started with a self-built computer with a hex keypad and huge 4k RAM. With such limited resources, a good design was anything that made efficient enough use of them to squeeze yet some more features into your program. Design as we understand it today and maintainability were secondary issues. There are C compilers for old computers, like the C64. Get yourself one and write a well designed application. You will see how far you get. But times have changed. We have powerful multicore CPUs and endless RAM, and some garbage collection takes away all remaining concerns, right? Sorry, but I have met enough cargo cult programmers who have been taught such things and had plenty to do with the junk they created. Oh, yes, they can often religiously preach about what you are supposed to do and what not. But if you ask them some questions, you will qickly discover that they are just repeating what they were told. They don't understand what they are preaching about and have little to no idea what happens in the machine's memory or in the CPU. Using the analogy of a driver, they have just blown up their transmission or engine and have no clue why, since they have done what they were told. Our intern, who is just starting as well, learned all about recursion today. By calculating the Fibonacci numbers. He used C# and was amazed that the little program ran minutes for deeper recursion levels. Then we took a look at what optimizing the algorithm can accomplish. After that we went to C++ and last I gave him an estimate what a lean and mean assembly program could gain on that. The little guy is still trying to figure out where the performance gains came from. To him it all looks the same. But now he knows that there is more to it than writing some beautiful code. Yes, you have to get started somewhere, but please not the dogmatic way.

                                    "I have what could be described as the most wide-open sense of humor on the site, and if I don't think something is funny, then it really isn't." - JSOC, 2011 -----
                                    "Friar Modest never was a prior" - Italian proverb

                                    1 Reply Last reply
                                    0
                                    • C Christian Graus

                                      To put all this another way. If we each had a class, same age, same background. You taught assembler, I taught C#. In 6 months, our classes enter a programming contest. Each student needs to write the Windows calculator. As well as the functionality found in the windows calculator ( including scientific mode, hex, octal, etc ), the students would be free to add other features as they saw fit. They would be marked on functionality, appearance and robustness. All the things that matter in the real world. Which class do you think would win ?

                                      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                                      L Offline
                                      L Offline
                                      Lost User
                                      wrote on last edited by
                                      #65

                                      More than 10 years ago I already used MASM with a full Win32 library. Having to use that instead of C/C++ would not slow me down very much. As to the students - with a little luck there are some who are inspired by getting maximum control over the CPU.

                                      "I have what could be described as the most wide-open sense of humor on the site, and if I don't think something is funny, then it really isn't." - JSOC, 2011 -----
                                      "Friar Modest never was a prior" - Italian proverb

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • World
                                      • Users
                                      • Groups