15-100 Course Assistant Information

This web page has four purposes: This Term's Course Assistants & their Schedules:

The table below will be the list of CA's who are working with me and with Prof. Kesden.  There should be at least one CA attending your section. The full table of CA's will be available in a day or two. The schedule of times when CA's are available for assistance should be available a little later in the week.

Although specific CAs will attend your section, feel free to contact any of these CAs. The exercises and programming assignments are the same from one section to the next.

You can send your questions via e-mail to the following mailing list (which reaches all CA's in Prof. Kesden's sections or my own):

15100-help@cs.cmu.edu
 
Office Hours
Course Assistant e-mail Address Attends
Section
Monday 8:30 - 10:30
Spongebob Squarepants
sbob@andrew.cmu.edu B@9:30
When sending e-mail to a course assistant, be courteous and use a clear e-mail header format.


Course Assistants & their Duties:

The point of this section is to explain to you (as a student) how a CA can help you with the work required for this course.
Course assistants (CAs) are undergraduates who assist in teaching this class. There will be a mix of both CS majors and other undergraduates who have programming experience. Course assistants have three primary responsibilities: Other than myself, the CAs know best what Dr. Kesden & I are expecting from you because they attend my classes and because we talk to them regularly (and, in turn, the CAs give us feedback about any difficulties students are having). Because a CA is familiar with what we want, CAs will be more able to assist you in solving problems in a manner appropriate to our requirements. Each CA should have an insight into what we expect from you; more importantly, they will try to guide you into ways to discover how to solve problems for yourself. Learning to develop this last skill is more important than any single piece of information I can give you.

CAs in the Classroom

Throughout the semester, there should be at least one CA attending your section. Their job during class will be to assist you with any technical details in using the computer. Your machine may not be responding as mine does because you either

If you have a problem, raise your hand and a CA should be there shortly.  If I notice a lot of raised hands, there's either a major technical failure or I've moved too fast; in such cases, I'll backstep and address the issue myself.  As the semester progresses you'll become more confident using the computer, so the CA may not be as busy. However, that should still be attending class in order to remain connected with my teaching approach and goals. This allows them to be better sources of information during office hours and to be better graders.

CAs and grading

We've also given the CA's the responsibility for grading the daily exercises. These are regular simple assignments that are  straightforward to grade (and are graded on a 0 - 5 scale). Since this is an introductory course and the CA's are well beyond it, they are able to grade these problems quite consistently.

You should expect a response to your daily exercise submissions relatively quickly. Ideally, you should expect an e-mail assessment within a day or two. However, the turnaround time can occassionally be longer when CA's are busy with their own work (near midterms or when projects or papers are due for them).

 I have instructed the CA's to be very lenient in grading the earliest daily exercises and to allow a student to resubmit an exercise for the first  technical problem that might occur.

CA Office Hours

For me, a CAs "office hours" is the most important aspect of his/her duties. Although I would hope that you contact me first about your problems, I can't be available all of the time. If you aren't able to connect with me, then getting help from one of my CA's is your next best choice.

All CA office hours will be held in the Habermann (Wean 5419) cluster but the particular room may vary upon availability. CA's are expected to "sign in" at the whiteboard of the room where they have stationed themselves. Sometimes, a CA may have another special commitment during what would be their regular office hour; in such cases, the CA should have made arrangements for another CA to substitute for them.

that arise during a particular week of their scheduled office hours  I have tried to design a system so that there is enough leeway for a particular CA to "reschedule" work (say, when they have a particular heavy workload some week).  Here, the CA is expected to obtain a suitable replacement for those same hours -- however, it's possible that the times may differ slightly (in which case, the CA should also have arranged to notify students that there will be a change).

It's important that you let me know whenever you discover that a CA wasn't available during their assigned time. I generally wouldn't know otherwise.

A proviso about CA Office Hours: During their office hours, the first priority of any of Kesden's or my CAs will be to answer questions from students in Kesden's or my sections. However, while in Wean 5419, they are also supposed  to help students of other lecturers when none of you have questions. Correspondingly, CA's for other lecturers should be available to assist you when they are not busy with students in those other sections. These students may not always be able to answer some of your more specific questions.

Getting Assistance Elsewhere:

"Give a man a fish and he'll eat for a day; teach a man to fish and he'll eat for a lifetime."
If you are that "man", you are (rightly) appreciative of a fish that is given to you. However, this kind of "help" won't get you through the course. You will need (say during an exam) when you will have to catch your own fish (or you'll be "chum").

Here's a list of other possible forms of assistance.Although some sources may appear to be helpful, they may be detrimental in the long run. I've included my greatest concerns about each of these avenues for assistance:.

Other course assistants (for other lecturers)  who staff the Habermann cluster:

These people will be knowledgable about Java and 15-100 in general but, because they are assisting other lecturers, they may not always know the best way to solve the problem as I have intended. In some cases, (because Java is a "far-reaching" language), they may not know any reasonable way to solve the problem I've given. Not unexpectedly, my CA's may not know how to solve problems given by some other lecturers.

Don't be concerned that this happens. The "core" concepts taught by all of the instructors are the same. There are variations in how the course is delivered but these are pedagogical (i.e., teaching) preferences that represent different "starting points" for those students who go on to the next course.

Lab assistants of the Habermann cluster:
These people are around to provide technical assistance in getting your computer to run (and to provide security against theft). Many of these individuals know something about Java but there is no guarantee that they do.
Tutors
CMU has a limited number of tutors available for remedial assistance.  Students who admit to having difficulties as soon as they arise can usually "right" themselves by spending time with the CA's and with me. When a student waits until they are lost in the course, they usually need remedial assistance to catch up and tutors may help in this process. To me, the success of such a venture seems to depend upon how late a student admits to having a problem.  In my experience, most students who seek out a tutor during the last third of a semester are trying to change an "R" into a "D" (and about 50% are successful).
Classmates & Friends:
As you move further away from individuals who are experienced with teaching, you'll find more "fisherman" who may be able to "solve" a problem for you without actually helping you to learn how to solve a similar problem for yourself.  Although getting the fish gave you an answer to an assignment, my assumption will be that you  learned how to solve the problem. Later assignments will build upon the assumption that you've learned how to arrive at the first solution.

It's also the case that your friends may help you put together a functionally "correct" program that does not pass my standards for a passing grade. First, I expect students to write programs that are in keeping with the stylistic guidelines that I present in class.  Secondly, if you submit a program that uses concepts (or "tricks") that I have not discussed in class, I will set up an appointment with you so that you can explain these concepts and how you learned to use them -- if you aren't able to do so, you'll get a zero on the project.  Last year, two students failed the course in this manner.


Your responsibility when getting assistance

Even when you're trying to seek out fair and honest assistance, you have to be aware that there can be occasions where your honor could be questioned.  Reapplying the metaphor above, this comes down to whether or you just have a fish or whether you've learned to fish. This section attempts to give you some guidelines that will help you to remain honest while still getting assistance.

Let's assume that your're asking for assistance from someone other than myself of one of our CA's. I'll call such a person your helper.  The basic guideline is that

Your program should be already be close to correct.
Your helper should only assist in getting it to work perfectly
Otherwise, if you need help figuring out how to put a program together, then you should see me or one of the course assistants.

How can you tell if your helper is "helping" too much?  Here are the questions that you should ask yourself.

If your answer to the first question is "Yes", you may not have gotten as much help as you should have (since you didn't learn how to fix it). Although your request for assistance was probably appropriate, you haven't learned how to solve the problem should it come up another time. Be certain to understand the reasons why the helper's fix works. Ask them. If the answer is  understandable via a simple explanation from your helper, the question was probably appropriate.  On the other hand, if the explanation doesn't make sense to you, it is more likely that you should see me or a CA to help you to understand why things worked.

If you answered "Yes" to the second question, the helper was overstepping his/her bounds. Your program must ultimately come from your own ideas. Otherwise, the helper is doing the work for you and you've learned much less than you should.  You may not have strengthened your ability to solve problems and this will be a serious problem come the time to take exams.   Every problem that I give you can be solved using only the tools that I've shown you (or have been part of assigned readings)  If you're using tricks, you will be expected to be able to explain them. Any helper who can not help you solve the problem via the methods that I've taught you doesn't understand the basics of computer programming themselves -- do not trust them to help you through the course.

Getting help with design:

Following the fish metaphor, your design of a solution is like creating a fishing pole. Knowing how put the program together (creating the "pole") is crucial to knowing that you solved the problem.  However, the distinction is not completely black and white. Because your helper wants to assist you in fixing your work, they may occasionally "cross the border" into changing your design.

A teacher (such as myself) is more likely to present you with the flaws in your design and then direct you to alternatives (which you can still think of as your own design). The problem is that if you haven't designed your own solution, then you've done much less than half the work.  As you move to larger scale projects, design becomes more and more important.  I'd rather see a design that you've created (even though it has faults) than one of the many "perfect" designs. By seeing your faults, I can better address how to help you make improvements.