Thread: Do you know some online tutorials with good examples on different C++ aspects?

  1. #16
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by sonjared View Post
    This is a moving target to the point where a curriculum would be outdated before it was even rolled out. Should teachers attempt to remain relatively up-to-date? Absolutely. But there is a certain point where being as modern as possible has no added benefit to students. What major C++11 features would you suggest are absolutely critical for a complete novice? I can't think of any that could not wait until a later class.
    But this is a semantic argument of what is contained in a course. I don't know. You don't know. We don't know.
    The point I am trying to make here is that we cannot draw conclusions if we can't see the course plan. I'm not going to try to get into a discussion of what is important and critical and what is not. That's just way too subjective. But just don't rule it out!
    Take a look at teaching from a C++11 perspective and pick the topics that fit best into the course plan. That's all I'm suggesting.

    Once again, this is where the logic fails. If learning C++03 means the student would stop learning at C++03, teaching C++11 wouldn't fix anything; it would only delay the problem. The student would still stop learning at C++11. Thus the problem is not which standard is taught, the problem is failure to keep up in a constantly moving field. Thus a focus should be on making sure students know that C++ is still evolving and what they learn in the class is not the end all be all.
    There are two problems:
    (1) Keep students up-to-date, and
    (2) Make students engage in a constantly moving field.
    Both need to be considered because you cannot completely fix (2).
    That is not to say I don't agree with you. I do. It's just that it's a different problem that needs solving, and teaching students up-to-date keeps us going forward much better than learning them old standards.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  2. #17
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    That is not to say I don't agree with you. I do. It's just that it's a different problem that needs solving, and teaching students up-to-date keeps us going forward much better than learning them old standards.
    O_o

    Frankly, I think all three of you are missing the boat.

    If a person isn't motivated, the best curriculum in the universe isn't going to matter in the least.

    It simply doesn't matter what you try and teach a bad student; they aren't going to learn enough to be useful whether that's C++98 or C++11.

    Soma
    “Salem Was Wrong!” -- Pedant Necromancer
    “Four isn't random!” -- Gibbering Mouther

  3. #18
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    When do the students take responsibility, Elysia?

    Frankly, I think all three of you are missing the boat.
    OK? I think my role is being exaggerated, but I literally have nothing else to say, so bye bye thread.
    Last edited by whiteflags; 06-30-2013 at 04:39 PM.

  4. #19
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    I think my role is being exaggerated, but I literally have nothing else to say, so bye bye thread.
    O_o

    Fair enough, perhaps I worded that poorly for surely I wasn't trying to place blame or anything.

    I see nothing wrong with the discussion, and you've all made some good points.

    I just don't the points matter in the context of what to teach.

    Good developers that make the point for you and sonjared exist and will continue to exist.

    Bad developers that make the point for Elysia also exist and will continue to exist.

    I already see a lot of bad C++, C masquerading as C++, in the wild. I'll continue to see a lot of bad C++ even if all universities simultaneously decided to start teaching C++11 from the start because bad developers are the thing responsible for bad C++.

    I also see a lot of good developers who work persistently to update and maintain their skills and knowledge. I'll start to see a lot of great C++11 even if all universities stop entirely teaching C++.

    We can't stop bad developers so worrying about what to teach people who will not become good developers isn't interesting. (Unless you want to teach bad developers to find employment in a different field. I'm all for that.)

    If we focus on what to teach people who will become good developers, C++98 and C++11 are both appropriate because a good developer who needs techniques for the other standard will be self-motivated enough to find them out.

    Soma
    “Salem Was Wrong!” -- Pedant Necromancer
    “Four isn't random!” -- Gibbering Mouther

  5. #20
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Another thing to ponder is this:
    Having only received one course in a language is not enough to make one an expert (obviously). That makes it more difficult to "keep up" with recent development. Even more so if you aren't "up to date."
    This adds another point to why you should try to teach modern practices and new standards as much as possible. It makes it easier for students to write better code and it makes it easier to keep oneself up to date.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  6. #21
    Registered User
    Join Date
    Jun 2013
    Posts
    66
    This adds another point to why you should try to teach modern practices and new standards as much as possible. It makes it easier for students to write better code and it makes it easier to keep oneself up to date.
    Assuming the modern practices and new standards do not scare students off entirely. C++ has grown more and more expert friendly over the years, it's hard not to notice and be concerned for beginners who will assuredly feel overwhelmed. Change "possible" to "practical" and I have no complaint.

  7. #22
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    True. I am not advocating teaching expert features to newbies. But as new libraries and features are added (eg smart pointers), the language becomes easier to use.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  8. #23
    بابلی ریکا Masterx's Avatar
    Join Date
    Nov 2007
    Location
    Somewhere nearby,Who Cares?
    Posts
    497
    Today was my first day on teaching ! There are 4 girls aging from 14 to 15 years old which seem to be complete novices on programming ! They thought the Dos based programming language like C++ !!! is a kind of language which is not that simple and at the same time is not that advanced so is a perfect candidate to learn programming so they decided to learn it in order to be ready for upcoming programming languages ! ( of the girls seem to like CS and expressed her enthusiasm on programming and CS field, her other 3 friends seem to just enrolled for fun!!) Any way i recommended them to buy the Deitels C++ How to program ( 7th edition or 8th edition , the 9th and latest edition is not translated here yet, and this is the only book here around which covers new C++ ( not the tc++) ) There are currently two issues here. First I am told by the institutes manager that they enrolled in a 40 hour class ! ( they even might end up being 30 Hour since instead of 6 they are 4!!!) and they have'nt yet given me the chapters i need to cover at this class ( there is an examination at the end of the class which these students need to take and pass ). The other issue is the class time itself , they planned on a 4 hour long sessions! which i believe would be very hard on them! I told them you need to split this since it will get really hard and unbearable on you the more we advance , we are yet to decide what to do . I was planning to encourage them and show them how to do some basic and very simple GUI programming using QT or Wxwidgets so that they can see C++ is not all about that black console screen!! for themselves ( I planned on going for this when i was going to teach classes and objects , or show them couple of simple examples at the final session. ) Do you think i should do it or no ? By the way i got the Accelerated C++ and the book is indeed amazing thank you laiser light . Ok what do you guys think? what should i do ?
    Last edited by Masterx; 07-04-2013 at 06:36 AM.
    Highlight Your Codes
    The Boost C++ Libraries (online Reference)

    "...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.."
    Bill Bryson


  9. #24
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    I think it would be excellent to teach them some simple gui programming since it would allow them to use c++ for gui in the future, should they decide to (but don't overdo it since gui frameworks does tend to assume you know a fair bit of c++). It also dispels the C++ is only console myth. This will give them some more tools in their toolbox in the future.
    Btw, it helps if you break your replies into smaller portions. Walls of text tend to be hard to read.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  10. #25
    بابلی ریکا Masterx's Avatar
    Join Date
    Nov 2007
    Location
    Somewhere nearby,Who Cares?
    Posts
    497
    Quote Originally Posted by Elysia View Post
    I think it would be excellent to teach them some simple gui programming since it would allow them to use c++ for gui in the future, should they decide to (but don't overdo it since gui frameworks does tend to assume you know a fair bit of c++). It also dispels the C++ is only console myth. This will give them some more tools in their toolbox in the future. Btw, it helps if you break your replies into smaller portions. Walls of text tend to be hard to read.
    thanks alot Elysia But i did so, It seems forum is not accepting new lines! I tried to edit it two times but no luck , Don't know why it didnt work that way!
    Highlight Your Codes
    The Boost C++ Libraries (online Reference)

    "...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.."
    Bill Bryson


  11. #26
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    Today was my first day on teaching !
    ^_^

    Congratulations.

    Deitels C++ How to program
    O_O

    BOOO! Down with the heretics!

    Do you think i should do it or no ?
    I think teaching elementary C++ starting with external libraries is a mistake. (The exception being C++11 compatibility libraries.)

    I appreciate the "Let's do some neat stuff!" mentality, but GUI may be the wrong starting point just to show cool results quickly thanks to the "widget as object as client" mentality. You may get a more "*BigAwe!*" reaction from simple games. I don't wish to recommend anything, but I recall "SFML" being a very pleasant, but you may reach for anything you are familiar with if you go the games route.

    That said, if you go the widget route, please do not use "Qt" or "wxWidgets". (Please also do not use "Ultimate++".)

    DON'T GET ME WRONG! THERE IS NOTHING WRONG WITH THOSE LIBRARIES!

    (Maybe that will save some stupidity.)

    Those libraries solve some real "C<->C++" and "event<->message" problems with opaque implementation macros.

    We do not want new C++ programmers developing the habit of employing opaque implementation macros simply because they use tools which use such macros.

    Again, I'm not saying those libraries are bad. You have to solve real world problems like translating between C++ messages and abstract events built on a pure C API to get widget objects. However, building from the start with technique like macros such as `Q_OBJECT' may drive new programmers to think that such macros are to be preferred when many other techniques are more natural to C++.

    Again, I don't wish to recommend anything, but off hand, I recall "gtkmm" being very clean from the C++ view, but obviously you don't have to reach for that if you are uncomfortable with it, and I may also not have well recalled the library.

    Now last, if you do use "Qt" or "wxWidgets", please explain the need of such things as solving real problems having alternatives more C++ available.

    Soma
    Last edited by phantomotap; 07-04-2013 at 09:06 AM.
    “Salem Was Wrong!” -- Pedant Necromancer
    “Four isn't random!” -- Gibbering Mouther

  12. #27
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by Elysia View Post
    *) In this context, modern means techniques that are sufficiently proven in practice and are up-to-date,
    Your definition of "modern" is rather optimistic.

    Each of the C++ standards before C++11 included features that were unproven when the standards were ratified. It was an average of 4-5 years before programming technique advanced enough so one could be confident WHICH features were beneficial and which were not, and even longer for available compilers/libraries to mature. While things seem to be moving faster with evolving the practice of C++11 and quality of implementations (probably because the focus of those doing the work is more on deltas) it would still be a brave call to describe all new features of C++11 as proven. Insisting that novices learn the latest and greatest will also expose those novices to such teething problems, encourage them to develop habits associated with those problems.

    Insisting that a teacher who doesn't properly understand C++11 teach C++11 just compounds such problems.

    Quote Originally Posted by Elysia View Post
    I think it would be excellent to teach them some simple gui programming since it would allow them to use c++ for gui in the future, should they decide to (but don't overdo it since gui frameworks does tend to assume you know a fair bit of c++). It also dispels the C++ is only console myth. This will give them some more tools in their toolbox in the future.
    It is not yet a myth to say that the C++ standards do not support GUI as yet. The problem with teaching GUI programming is generally that it locks a student into particular products (operating system, compiler vendor, etc) if done too earlier.

    That said, I agree with your point that it is useful to learn GUI programming. The problem, for a teacher, is deciding how much knowledge of standard C++ is needed before introducing GUI concepts, frameworks, etc.


    I do agree with your comments that developers should be encouraged to keep up to date. However, teaching the latest incantations does not necessarily encourage that - it is human nature to become comfortable with what you know, and to slow down effort to keep current. In many fields of technical endeavour, there is often a benefit to the majority of practitioners using techniques that are a iteration or two behind the bleeding edge - simply because the bleeding edge is where things are less proven.

    There is also the real world phenomenon that a lot of real-world developers are charged with maintaining older code bases. That means knowledge of older techniques is needed - whether that is because a developer is required to use them or they are required to understand old code constructs properly in order to update them to newer forms.

    The question is really one of balance. While it is difficult to identify the optimal balance (after all, human opinions are involved), I would suggest it is as much a disservice to insist on the latest techniques as it is to dismiss them entirely.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  13. #28
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by Masterx View Post
    ... But i did so, It seems forum is not accepting new lines! I tried to edit it two times but no luck , Don't know why it didnt work that way!
    It does. Perhaps it's your browser that is somehow eating the lines or sending them in some strange way. Either way, it works.


    See?

    @grumpy: I am aware of the difficulties of which you speak, and you bring up fair points. I have nothing more to add to that. I think you added some great slightly in-depth analysis of the problem there. Just letting you know I agree :)
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Good bitshifting tutorial or examples?
    By Striph in forum C++ Programming
    Replies: 2
    Last Post: 10-07-2012, 02:58 AM
  2. what are some good C++ source code examples?
    By orion- in forum C++ Programming
    Replies: 4
    Last Post: 09-13-2005, 09:24 PM
  3. Looking for examples/tutorials
    By Eibro in forum Windows Programming
    Replies: 2
    Last Post: 04-16-2003, 09:56 PM
  4. FAQ: Examples of good questions (General)
    By Prelude in forum FAQ Board
    Replies: 1
    Last Post: 10-11-2002, 08:57 PM
  5. I need some good win32 tutorials online......please...anybody
    By incognito in forum Windows Programming
    Replies: 4
    Last Post: 01-13-2002, 05:03 AM