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. The right programming language to teach...

The right programming language to teach...

Scheduled Pinned Locked Moved The Lounge
csharpquestionc++javascript
43 Posts 19 Posters 0 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 ColinDavies

    Brad Jennings wrote: I think C++ is an excellent choice as a beginner language. Agreed. Brad Jennings wrote: I must admit that OO design is difficult for beginners to learn, but, if taught correctly, is not overbearing. The thing is though, you don't neeed to learn OO at day one, it can be gradually introduced. Regardz Colin J Davies

    Sonork ID 100.9197:Colin

    You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

    B Offline
    B Offline
    Brad Jennings
    wrote on last edited by
    #27

    The thing is though, you don't neeed to learn OO at day one, it can be gradually introduced. Agreed. Baby steps are the way to go. Brad Jennings

    1 Reply Last reply
    0
    • R Roger Wright

      I was going to suggest that, but I haven't seen a version of BASIC in many years. Is there a version still available out there? Word of the day: Rotundacrat
      Extra Credit will be awarded for: Quasimobo...

      M Offline
      M Offline
      Megan Forbes
      wrote on last edited by
      #28

      Yeah, QBasic is available for download, even from programmersheaven.com The following statement about your geekness is true. The previous statement about your geekness is false. GCS/IT/P d- s: a- C++++$ UL+>++++ P+ L++$ E- W+++$ N !o K+ w++$ O---- M-- PS- PE Y+ PGP--- t !5 X- tv b+++ DI++ D+ G++ e++ h--- r+++

      R 1 Reply Last reply
      0
      • M Michael Dunn

        Since she has no coding knowledge at all, stay away from C++. Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Same reasoning for avoiding C#. I'd say start with BASIC. Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. It has the basic logic (if/then/else) and flow control (for loops, and depending on the dialect, do/while), and that knowledge can be transferred to more complex languages later. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

        L Offline
        L Offline
        Londo
        wrote on last edited by
        #29

        Michael Dunn wrote: Since she has no coding knowledge at all, stay away from C++. This is true. Michael Dunn wrote: Same reasoning for avoiding C#. I don't really agree there. Java is being used as a teaching language at some universities. C# is similar so it may not be a bad choice. Michael Dunn wrote: I'd say start with BASIC. Eeewww! BASIC is a poor choice to teach someone to program in. There is a lot in it that can breed really bad habits. In fact it's hard to write good wholesome code in it. I think a better choice than BASIC, if you want a good structured non-OO language is Pascal. It was designed specifically as a teaching language. I still wouldn't write off C# or Java though. Why not learn OO from the start?

        A 1 Reply Last reply
        0
        • D Domenic Denicola

          Christian Graus wrote: it hides complexity ( when taught properly ) How so? I can't remember very well what I thought of C++'s complexity when learning it, but I think my attitude was that I had nothing else to do with my life so I'm damn well going to understand every word this chapter says before I move on, no matter how complex it is. How would I teach C++ properly and still hide complexity? What do you think of Mike's point above, and my responses to it? Just wanting to expand on this a little more. Christian Graus wrote: I'd suggest C# because it's a language that's likely to be around for a while, and is similar enough to C++ that the transition would be painless So you don't think C# would be good in and of itself, only because it's a less-confusing version of C++ that's not going to die anytime soon? Or anything else? Wow, I just gave this message a once-over and realized all my questions sound really accusatory and critical. Please don't take them that way—they weren't meant to be. As I said to Mike, these are all great points, and I think I'm going to present them as options. I very much appreciate the feedback.

          -Domenic Denicola- [CPUA 0x1337] MadHamster Creations "I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."

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

          Domenic [Geekn] wrote: How so? Because most people are taught C with classes, for example using FILE handles and char * instead of std::string and iostreams. int main { string s("This is a string"); cout << s; } is about as simple as it gets IMO Domenic [Geekn] wrote: So you don't think C# would be good in and of itself, only because it's a less-confusing version of C++ that's not going to die anytime soon? Or anything else? C# will live, despite it's problems, hence it's worth knowing. C# is fine for what it is, but C++ allows you to teach programming logic without having to teach OO, for example, and C++ also allows you to treat things like strings and files as objects, just as C# does. I think that is the right approach, it's also the approach to C++ that Stroustrup recommends. Christian Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002 During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002

          1 Reply Last reply
          0
          • R Roger Wright

            Colin means me. I learned on procedural code, and even did a lot of event-driven programming for real time stuff, but the Windows model that pollutes C++ in VC++ is totally confusing. C++ by itself isn't all that difficult, though the designers went out of their way to make it more confusing than necessary. It's very difficult to grasp the concepts required to support the Windows platform coming from a strict step-by-step programming model. Not impossible, of course, but it sometimes seems more trouble than it's worth. Word of the day: Rotundacrat
            Extra Credit will be awarded for: Quasimobo...

            C Offline
            C Offline
            ColinDavies
            wrote on last edited by
            #31

            I didn't mean you personally, But people like you. :-) Regardz Colin J Davies

            Sonork ID 100.9197:Colin

            You are the intrepid one, always willing to leap into the fray! A serious character flaw, I might add, but entertaining. Said by Roger Wright about me.

            1 Reply Last reply
            0
            • M Michael Dunn

              Since she has no coding knowledge at all, stay away from C++. Doing even simple I/O in C++ requires either learning OO principles (objects, namespaces, overloaded operators) or just parroting out the same "cout << stuff;" code without actually knowing what it does. Same reasoning for avoiding C#. I'd say start with BASIC. Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. It has the basic logic (if/then/else) and flow control (for loops, and depending on the dialect, do/while), and that knowledge can be transferred to more complex languages later. --Mike-- Just released - RightClick-Encrypt v1.4 - Adds fast & easy file encryption to Explorer My really out-of-date homepage Sonork-100.19012 Acid_Helm

              D Offline
              D Offline
              Daniel Turini
              wrote on last edited by
              #32

              Michael Dunn wrote: Not Visual Basic, BASIC, where your I/O is as simple as PRINT and INPUT. You still have PRINT and INPUT at Visual Basic 6... "In an organization, each person rises to the level of his own incompetence." Peter's Principle

              1 Reply Last reply
              0
              • D Domenic Denicola

                Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                S Offline
                S Offline
                stefan b
                wrote on last edited by
                #33

                Python. Just visit http://www.python.org/doc/Newbies.html It's a usefull experience for you too.

                1 Reply Last reply
                0
                • D Domenic Denicola

                  Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                  L Offline
                  L Offline
                  leppie
                  wrote on last edited by
                  #34

                  Hi Domenic What everyone forgets to mentions is that learning any .NET language is a 2 part effort. Namely , C# and .NET Framework. This confused the hell out of me. But after realising I only had to get the syntax of C# right, it was a matter of a month or 2 to perfect the syntax. Then the next logical step is to start exploring the rich .NET framework, whick in any language can be quite scary doin it the 1st time. Now imagine this in a motor car race scenario. Learn to drive iow idling up and down the pits is like learning C#. Now once you can do that, you mite feel you are ready to go onto the race track, iow .NET framework. Now you could have chosen a different car (different .NET language), but u will still need to do the race track. If you have done C# and a bit of "racing the track", the track will be more fimiliar trying to drive it in another car, but remmeber the track stays the same, no matter what car. Now C/C++ and other non .NET languages, each has a different racetrack. It would make sense to chose a .NET language, as you have many different cars to race the track with, even race the track with 2 cars at the same time! I recommend go .NET and chose a language you are comfortable with. I also recommend downloading the "Thinking in (insert language here)" series. I've you (well she) have time, you could finish reading in a week each, with a basic concept of each language. This would be beneficial as each of them has the same style of introducing the language. My 2 cents :) Give them a chance! Do it for the kittens, dear God, the kittens!

                  S 1 Reply Last reply
                  0
                  • D Domenic Denicola

                    Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                    P Offline
                    P Offline
                    Phil Speller
                    wrote on last edited by
                    #35

                    I think the first thing you should consider is what she is hoping to achive by learning a programming language - web development, windows apps, embedded software etc? Phil

                    1 Reply Last reply
                    0
                    • L Londo

                      Michael Dunn wrote: Since she has no coding knowledge at all, stay away from C++. This is true. Michael Dunn wrote: Same reasoning for avoiding C#. I don't really agree there. Java is being used as a teaching language at some universities. C# is similar so it may not be a bad choice. Michael Dunn wrote: I'd say start with BASIC. Eeewww! BASIC is a poor choice to teach someone to program in. There is a lot in it that can breed really bad habits. In fact it's hard to write good wholesome code in it. I think a better choice than BASIC, if you want a good structured non-OO language is Pascal. It was designed specifically as a teaching language. I still wouldn't write off C# or Java though. Why not learn OO from the start?

                      A Offline
                      A Offline
                      Anders Molin
                      wrote on last edited by
                      #36

                      Most Pascal compilers you can get today is/uses OO. - Anders Money talks, but all mine ever says is "Goodbye!"

                      1 Reply Last reply
                      0
                      • L leppie

                        Hi Domenic What everyone forgets to mentions is that learning any .NET language is a 2 part effort. Namely , C# and .NET Framework. This confused the hell out of me. But after realising I only had to get the syntax of C# right, it was a matter of a month or 2 to perfect the syntax. Then the next logical step is to start exploring the rich .NET framework, whick in any language can be quite scary doin it the 1st time. Now imagine this in a motor car race scenario. Learn to drive iow idling up and down the pits is like learning C#. Now once you can do that, you mite feel you are ready to go onto the race track, iow .NET framework. Now you could have chosen a different car (different .NET language), but u will still need to do the race track. If you have done C# and a bit of "racing the track", the track will be more fimiliar trying to drive it in another car, but remmeber the track stays the same, no matter what car. Now C/C++ and other non .NET languages, each has a different racetrack. It would make sense to chose a .NET language, as you have many different cars to race the track with, even race the track with 2 cars at the same time! I recommend go .NET and chose a language you are comfortable with. I also recommend downloading the "Thinking in (insert language here)" series. I've you (well she) have time, you could finish reading in a week each, with a basic concept of each language. This would be beneficial as each of them has the same style of introducing the language. My 2 cents :) Give them a chance! Do it for the kittens, dear God, the kittens!

                        S Offline
                        S Offline
                        Stephane Rodriguez
                        wrote on last edited by
                        #37

                        I would teach languages with the strict point of view to solve real world customer problems, regardless of the underlying plumbering. So to provide long term skills. Many classes in the .NET framework are reached thanks to their names, and when you know their names are usually rooted because they help solving several-year-old issues, you come with the conclusion that only people who succeed (with tremendous power) are people with knowledge of what Windows programming was before .NET, and what it has become. (for instance, now that COM and visible interfaces are buried, how can a newbie get a marshaling issue to work?). So if we wanted a better platform : - the current MSDN search engine should be thrown to the trashcan, and replaced with a google-enabled one. - hierarchical trees should be well designed ("knowledge facets"), so that depending on your background (you need not have an IT diploma), you get your hands quick on the right stuff. - Java/C#/Eiffel or other clean procedural languages are here to stay. They don't obfuscate the logic, unlike what bloody MS introduced lately with the Attribute-programming style. - functional programming can be of help, but it somewhat requires people to mentally recurse, which itself is often perceived as the technical way of doing it, which is wrong. My -0.5 cent.


                        MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.

                        1 Reply Last reply
                        0
                        • S Stephane Rodriguez

                          In my engineering years, I and my pals were taught computing science with descriptive languages first, then academic languages (Pascal, Eiffel, Gamma), because the teachers knew very well at that time already that being proficient in specialized languages would do pain anytime the environment requires self-adapting. After one whole year of that, along with an understanding of main algorithms and data structures, we were given a staging week to learn C. Then language specialization began depending on your specialty : distributed computing, imaging, artifical intelligence, systems programming, ... From what good I remember, only the first year was worth it. This year contributed most to my ability to adapt a moving world. All what I did later made me a "university-level" specialist of several languages and technologies, but again none of these were actually used in the real world...:((


                          MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.

                          G Offline
                          G Offline
                          Gary R Wheeler
                          wrote on last edited by
                          #38

                          I know what you mean. The year after I took the computer graphics classes in college, the Computer Science department switched from using PL/I (this was a long time ago), a procedural language, to Forth. What the hell were they thinking? All of the algorithms were procedural, yet they switch the programming for the class to a non-procedural language. For people that are supposedly the brightest around, they sure were stupid. Gary R. Wheeler

                          1 Reply Last reply
                          0
                          • R Roger Wright

                            Domenic [Geekn] wrote: Does that change your opinion? Not really. I still think that the Javascript/Java/C++ scenario makes a logical progression for learning. I don't know enough about C# to have a valid opinion, so I'll venture none. I do know that C++ (especially as implemented in Windows/VS) is utterly baffling and difficult to comprehend compared to the dozen or so other languages I've mastered easily. I even like assembly and RTL - compared to VC++ they're easy, and I'd hate to see you scare off someone that has promise with unnecessary irrelevant confusion. Word of the day: Rotundacrat
                            Extra Credit will be awarded for: Quasimobo...

                            P Offline
                            P Offline
                            Paul Ingles
                            wrote on last edited by
                            #39

                            Roger Wright wrote: I even like assembly and RTL - compared to VC++ they're easy I'd actually have to agree. When I was first starting to learn VC++ it took me an eternity, mainly because I had no concept of object-oriented design. I just couldn't figure out what a class was, or why it would be done that way. I use C# quite a lot now (primarily for web stuff) but I'd have to say its pretty easy to pick up. However, I'd agree with what Michael Dunn wrote earlier in the topic, that you're probably better off starting with BASIC. Something that starts with simple flow control that kind of thing. I've had to help out a few buddies at University with their programming coursework, and even using VB they found it tough going because the lecturer (who was appalling IMO) hadn't started with the basics. He then took it a step further by getting databases and COM automation involved without explaining any of the underlying principles. Nobody that hadn't done programming before learnt anything from that module -- except to despise programming. -- Paul "I need the secure packaging of Jockeys. My boys need a house!" - Kramer, in "The Chinese Woman" episode of Seinfeld MS Messenger: paul@oobaloo.co.uk Sonork: 100.22446

                            R 1 Reply Last reply
                            0
                            • P Paul Ingles

                              Roger Wright wrote: I even like assembly and RTL - compared to VC++ they're easy I'd actually have to agree. When I was first starting to learn VC++ it took me an eternity, mainly because I had no concept of object-oriented design. I just couldn't figure out what a class was, or why it would be done that way. I use C# quite a lot now (primarily for web stuff) but I'd have to say its pretty easy to pick up. However, I'd agree with what Michael Dunn wrote earlier in the topic, that you're probably better off starting with BASIC. Something that starts with simple flow control that kind of thing. I've had to help out a few buddies at University with their programming coursework, and even using VB they found it tough going because the lecturer (who was appalling IMO) hadn't started with the basics. He then took it a step further by getting databases and COM automation involved without explaining any of the underlying principles. Nobody that hadn't done programming before learnt anything from that module -- except to despise programming. -- Paul "I need the secure packaging of Jockeys. My boys need a house!" - Kramer, in "The Chinese Woman" episode of Seinfeld MS Messenger: paul@oobaloo.co.uk Sonork: 100.22446

                              R Offline
                              R Offline
                              Roger Wright
                              wrote on last edited by
                              #40

                              Paul Ingles wrote: the lecturer (who was appalling IMO) hadn't started with the basics. He then took it a step further by getting databases and COM automation involved without explaining any of the underlying principles. What an incredibly inept boob! That reminds me of a lot of the books I've read to try to learn new languages. The author provides a brief introduction to the fundamentals of the language, then launches into chapters of database applications or graphics exercises. I interpret that to mean that the author really loves databases or graphics, but the only way he could get published was to claim to be teaching the language. I suspect this instructor falls in the same category - he really wants to teach COM and databases, but the curriculum only has a slot for a VB class. Criminal! Word of the day: Rotundacrat
                              Extra Credit will be awarded for: Quasimobo...

                              1 Reply Last reply
                              0
                              • M Megan Forbes

                                Yeah, QBasic is available for download, even from programmersheaven.com The following statement about your geekness is true. The previous statement about your geekness is false. GCS/IT/P d- s: a- C++++$ UL+>++++ P+ L++$ E- W+++$ N !o K+ w++$ O---- M-- PS- PE Y+ PGP--- t !5 X- tv b+++ DI++ D+ G++ e++ h--- r+++

                                R Offline
                                R Offline
                                Roger Wright
                                wrote on last edited by
                                #41

                                Cool! I know a 6-year old who has her own computer and is just about ready to learn how to program:-) Thanks for the tip! Word of the day: Rotundacrat
                                Extra Credit will be awarded for: Quasimobo...

                                1 Reply Last reply
                                0
                                • D Domenic Denicola

                                  Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

                                  J Offline
                                  J Offline
                                  Joe Woodbury
                                  wrote on last edited by
                                  #42

                                  To put it another way, teaching programming is not about syntax; it's about thinking. If a person can't understand what keywords are or what calling a function is, it doesn't matter what language you use. However, since you have to pick one, I'd go with C++ since it allows you to start very easy and get progressively harder without having to switch languages. Moreover, they will be learning a marketable skill. You don't have to get into OOP right away. You can start with jut main, extend that to functions, etc. I wouldn't even introduce "cout <<" for a while. All programmers should know how to use puts and printf. (And some of us never use cout.) (If you teach C++ correctly, I believe you will find students beginning to ask questions for which OOP will be the answer. Of course, there will still be those students who can't get over why they can't call "main" "MyProgram". Frankly, they should be encouraged to do something else.) As for nuance, programming is first, and foremost, a discipline. To be a good programming in any language requires you understand the nuances and deal with them in a disciplined thoughtful manner.

                                  1 Reply Last reply
                                  0
                                  • D Domenic Denicola

                                    Yes, this is a programming question, technically. But I think it falls within the bounds of "lounge-acceptable programming questions," so don't hang me from the ceiling by my fingernails or anything like that, please :). Anyways, someone at my school is interested in computer science, and would be interested in learning from me. Normally, I'd be annoyed and brush people like this off because, frankly, most people in real life annoy me, but in this case it's an extremely intelligent and fun-to-be-with female, so... :-D The reason I'm asking is because I'm not sure what language to teach her. Normally, I'd work people up through XHTML, JavaScript, and CSS before letting them touch C++ or C#, but in this case I think she may be able to handle the jump straight to something more exciting. She's computer-literate, and knows how to use all normal apps (Word, IE, computer games, etc.) to their full extent, but doesn't know anything about programming at all. So what I'm really asking is, do you think a highly intelligent and computer-literate person can make the jump straight to C++ or C#, or is it too much of a stretch to introduce high-level programming concepts without some basic introduction to the idea of code, input, output, etc.? Yet, most of web technologies and concepts are inapplicable to programming (i.e. the lenience of browsers, the lack of compilers, the lack of source and executable files, etc.). I dunno, really, that's why I want your opinions. Secondly, if C++/C# is a good idea, then which one? I was leaning towards C#, mainly because it's easier to use (no pointers, better intuitive syntax (IMO), etc.), you can create GUIs easily (I was always extremely dissapointed at how GUIs were never part of C++ per se, simply part of supplied libraries), and it's not VB.NET (;P). However, C++ also has good points, because it's more complex—if you can handle all of C++, you can handle everything—and it's the industry standard that's also tought in our school's CompSci class. I'm not really considering any other languages, mainly because both of these suit me just fine. So which would be better to teach, assuming she could handle either one? In either case, VS.NET will be the development environment, FYI. And remember, I'm not trying to start a holy war over language preference (again). I'm trying to get a measured and useful opinion on these questions, because all I know is that in fifth grade I learned how to make a website and moved on to C++ that same year, and all I used were

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

                                    For many, I would suggest english ;P Elainie (fluffy tigress emoticon) Would you like to meet my teddy bear ?

                                    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