Visual C++ General: Can you help me with my homework assignment?
Q: Can you help me with my homework assignment?
A: Generally, members of this forum will be reluctant to do your homework for you. Here are some reasons:
In a very general sense, it is counter-productive to do homework for others. The very purpose of your homework is to verify that you have understood a subject and are able to apply the learned knowledge to solving specific problems. By having someone else do the assignment for you, you are not only cheating at your teachers, but also at yourself, since you pretend (and perhaps even believe) to have acquainted knowledge and skills that you actually don't have.
Most members of these forums are professional developers, who earn their living by developing software - either as employees of some company or organization, or as freelance developers and consultants. Their contribution to Codeguru is volountary, and often reciprocal: On one hand, we benefit from the experience of others who help us when we face a specific, tricky real-world development problem, on the other hand, we share our knowledge and our experience when we can answer a question regarding a problem that we might have already encountered and solved in the past: That's what Codeguru is all about. Students asking for homework help don't fit that picture very well: They usually demand help on some simple, but often tedious coding problem (that most of us have already solved ourself years ago at school), so it would be only time-consuming, but not very thrilling or rewarding to write that code again now just to help you getting your homework done. Think of it like this: Why should a professional developer be spending half an hour (read: losing 60$ or more) on a problem he/she has already solved long ago, just to make you pretend in front of your teachers and classmates that you have solved the problem yourself, without ever getting anything back from you?
What students asking for homework help often don't realize is that most teachers these days know how to use the web. That means that if you file your answer, it will be a piece of cake for them to google for specific parts of "your" work and find out where it actually came from if you haven't done it yourself. Most teachers nowadays do this on a regular basis. So in addition to the "moral" argument above, this is a very practical reason against having others doing the work for you and just copying their solutions.
Having said all this: Most people here will we happy to help yet-to-become software developers with their homework if you:
Explain in most detail what the problem is, how you have approached it, and where you are stuck.
Post the code you have come up with so far, pointing out how it should behave, how it actually does behave, and what you don't understand. In the case of compiler errors, indicate the exact line the compiler is complaining about, and provide the exact error message. Make sure you have looked up the compiler's help regarding that error before asking here what it means.
Behave professionally and politely. Don't pretend that it is our job or duty to help you out, but rather recognize that it is a favour you are asking for - and if people are helping you with your homework, they are doing that on a purely altruistic basis, investing their time and sharing their knowledge without expecting to get anything equivalent back from you in the near future.
The bottom line: Feel free to ask homework questions here, but only if you have already put some significant effort into solving it yourself and are stuck on specific details. Don't expect to lean back and have others do the work for you.
Last edited by Andreas Masur; December 7th, 2005 at 03:04 PM.
Re: Visual C++ General: Can you help me with my homework assignment?
Another thing that should be stated is that the student should have first attempted to debug the program (if it is a problem in the programming logic). Too many times, a student posts a huge program, says that it doesn't do what it wants, but hasn't spent any effort in debugging the program. Learning to debug the program is part of the learning process, and is actually a requirement for the student to learn debugging (even though many students were never told it is a requirement).
Most students have access to their compiler's debugger, and should learn for themselves how to use it, even if it has not been formally taught to them. Students with the Visual C++ series of compilers have one of the best debuggers ever produced, so there is absolutely no reason to not have used it to solve the problem.
For students using the g++ or gcc series of compilers, there is the gdb debugger. This can be either command-line driven, which makes it a little harder to use, or if using one of the IDE's that use g++ under the hood (for example, Dev-C++, CodeBlocks) gdb is used in a GUI environment, making it simple to use. For other compilers, there is usually a debugger that comes with the compiler (CodeWarrior, Digital Mars, Turbo/Borland C++, etc. all come with debuggers).
Most questions from other professionals here are asked after the person has written some code, debugged it, but cannot figure out what the problem is. Or the question may be concerning a part of programming that is difficult to debug (thread programming, or something similar to this). Student programs usually do not encounter these topics, so debugging the program should be straightforward (single-step, set some breakpoints, watch the variables). Very simple tasks for a debugger to perform.