Recent Tutoring Session Reviews
"Today's session was great because we implemented targets, kept a running score, and started to implement images for characters."
"We needed to build an array and return its maximum, minimum, and average. First, I attempted to provide instruction on the task within JGrasp, and we quickly discovered that JGrasp is doesn't have the best features for Integrated Development Environment (IDE). I could have simply given the answers that were difficult to find, but that's not tutoring in my mind. So, after demonstrating some of the key features of a real IDE to format (organize into a clearer structure) code, (objectName.) to see a list of the methods and fields accessible from that object, color-coding to indicate scope, mouse-over errors to see the reason for the error and a list of possible ways to fix the error, faster compilation and execution, and about a million more features, I encouraged the student to download the Eclipse software, and showed him how easy it would be to figure out how to do his lab using Eclipse, even without any Internet connection. Eclipse is the favorite IDE of most professional programmers. I explained that the simple self-contained .zip file for Eclipse could be unzipped to C:\\Eclipse\ and executed immediately thereafter. I mentioned that Eclipse will ask for a work space (i.e., lab folder space) location when it opens, and that one can select any folder on C:\ to serve as one's work space. Most people use one work space for all projects when they're just learning to code. I showed him how to create projects by right-clicking the white space under Project Explorer and selecting New > Java Project (or selecting from the menu bar File > New > JavaProject). I showed him how to create class files by simply right-clicking the project name and selecting New > Class (or selecting from the menu bar File > New > Class). I suggested requesting permission to do labs in Eclipse, and explained that using Eclipse is a simple matter of copying each set of project files directly from JGrasp's project space into Eclipse's project space. I also told him that he should use Eclipse even if his teacher says he's not allowed and simply move his code from Eclipse into JGrasp once he is done writing it, because Eclipse will help develop his real programming skills far more quickly than JGrasp by giving him useful, succinct advice throughout the process, and because the process of moving the code back to JGrasp will be informative in its own way. We also discussed arrays in some detail, which exist in a sort of fuzzy middle ground between simple data types (e.g., short, intermediate, long, etc.) and objects (e.g., filename, which is an object [or, interchangeably, instance] of the String class). Technically, arrays are instances of a class (as is almost everything in Java), but they do not contain any public methods, so they are an unusual object. They only contain a public field, length, which is a class-wide variable that can be accessed from any class outside of the array. This is why one types .length instead of .length() when accessing the length of an array; .length is referencing a field, a fairly normal variable, whereas .length() is referencing a method. String uses .length() because String objects are far more normal class objects than arrays. They contain many methods used to manipulate or return their contents in a variety of ways. I will forward him some useful resources on these subjects. For what it's worth, if it can be afforded, a better Internet connection or some cheap upgrades (and maybe reformatting his computer) would legitimately help him to do his programming assignments more effectively. Using Google to find answers to the problems is truly fundamental to programming skills."
"During this session, the student needed help with setting up a general framework for a program skeleton for his final degree project. We needed to work on the basics of Graphics2D and the use of threads for managing redrawing and updating the status of a graphics context. We covered a good bit of material during this session, so I had to leave the code for his continued consideration-there is much ground to be covered for his project. A friend will be helping with MVC issues, so we set those aside."