There are three recommended ways to efficiently receive the assistance you need. Here they are, in order of efficiency:
- Piazza
- In-person help
First, before seeking help, be thorough
If you are facing compilation errors and cannot get your program to build & run, you need to spend some time deciphering the error message(s) you are receiving. This is a twisted, cruel initiation process that all programmers must overcome -- and a critical programming skill. Here are some tips:
- Check for common issues: proper
{}
(braces),;
(semicolons), and other common syntax errors. - Identify the filename and line number where the error is located (this is always a part of the error message).
- Read the error message. This cannot be stressed enough, you may not understand (yet) what it means, but look for identifiers in the error message that match, or match closely, to identifiers in your code --- this can be a BIG step in understanding why the compiler is uncooperative.
- Try commenting out the offending section of code (with
/* ... */
) and see if the error message changes or disappears. If it does, then slowly add back what had been commented away till you have identified the offending element of code.
Step away from the problem, and come back to it later
When you encounter a problem and begin to feel frustrated, step away from your work for a little while. Go have some real fun for a while or engage in an activity that activates other parts of your brain while letting your "programmer's mind" rest. Clean house, ride your bike, or hang out with a friend. Then, come back to the problem and see if you can solve it.
Look for your problem on Piazza
Chances are likely that a fellow student has encountered the same problem that you are facing. Take a look at the messages posted on Piazza to see if someone else has contributed a solution.
Post your problem on Piazza
If you don't see an existing message on Piazza that is relevant to your problem, then you should create a new post. Do not post your entire program on Piazza, unless instructed otherwise. You should only post portions of code that you are suspicious about.
Ask a fellow student, come to office hours
Take advantage of your instructor's office hours when you can.
Email your Instructor
Although it takes only a minute to send an email, it may take a long time to receive a response. You are NOT likely to get an immediate response from your instructor, so this shouldn't be your first attack against any error message. Instructors will answer questions and provide assistance to students via email. However, there are limits to the assistance that is easily provided via email.
Important:
Here is the policy for email help on assignments, labs, and projects.
- Never, ever, post an entire code listing on Piazza unless otherwise instructed.
- Never, ever, copy code that is posted on Piazza and paste such code into your own project, unless otherwise instructed.
- Always, always, always include a small portion of your code that you are suspicious about. Not including the bit of code is like ordering pizza by saying, "Hi, I'd like some food, please." (Uh, what food? What size pizza? What toppings? And do you want extra napkins?).
- Be specific. An email merely stating "something is wrong with my code, can you please take a look" is not likely to elicit an effective response. What do you think is wrong? Give your instructor a hint.
- Do not be offended if your instructor advises you to ask on Piazza (you should have, before sending an email) or to come to office hours. This is always for your benefit. In-person assistance is far more efficient and educational than email.
You may have a hard time formulating a plan or algorithm for an assignment. Or, you may have formulated a plan but are unsure if it will be sufficient. In these cases your instructor can certainly provide guidance via email efficiently. However, starting your homework early and asking questions early is critical to solving these sorts of creative problems.