How to Get Help
There are three recommended ways to efficiently receive the assistance you need. Here they are, in order of efficiency:
- Piazza
- In-person help
First, be thorough
If you are facing compilation errors and cannot get your program to build & run, you need to spend some time deciphering the IDE's error message. 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 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't solve it efficiently.
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 may only post portions of code that you are suspicious about.
Ask a fellow student, visit tutoring sessions, come to office hours
TAs host multiple weekly tutoring sessions in the computer labs. Check the schedule for days and times. Please be patient, especially when students outnumber the TAs. We'll do the best we can to offer you assistance. Furthermore, take advantage of your instructor's office hours when you can.
Email your TA or 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. TAs and instructors will answer questions and provide assistance to students via email. However, there are limits to the assistance that is easily provided via email. Here is the CSCI261 policy for email help on assignments, labs, and projects.
Important:
- 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 chicken wings by saying, "Hi, I'd like some food, please." (Uh, what food? What size? What sauce? And do you want extra napkins?). If communicating via email with a TA or instructor, zip up your src directory and attach the zip file to your email.
- 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 TA / 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 be 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.
Portions © Keith Hellman, Yong Joseph Bakos.