Ad Hoc Android Programming Workshop Redux

In CS345/545 yesterday, I asked all the teams to discuss which key end-to-end scenario they were planning on presenting on Thursday in a software prototype. Two of the teams—Sherlook and Lightyear—are doing projects that involve using the G1 camera, but neither had yet completed a functional prototype. After the meeting (which I keep calling “class” informally, but should not), those who could join from these two teams headed up to the conference room. We held what I am calling our Ad Hoc Android Programming Workshop. We started by building a very simple Android application that made toast upon clicking a button, and from there we moved into trying to grab a camera image.

I have had quite a few thoughts bouncing around my head regarding this meeting, and so I wanted to take the opportunity to articulate them. Here are some reflections and observations, in order of random whimsicality.

  • Many students did not know about Control-Space in Eclipse. They knew that Eclipse would sometimes bring up a context menu based on partially-typed input, but they didn’t know this most wonderful IDE invention of using control-space to autocomplete. I’m glad they know it now! The only conclusion I can draw from this situation is that these students have never actually seen someone using Eclipse effectively before. There are two corollaries to this: first, that the students’ professors must have never shown them this easy keyboard shortcut; and second, that they have never sat and worked with an upperclassmen who showed them this trick. I think both of these need to be addressed. Fortunately, my department has taken a big step in addressing part of the issue by introducing CS222, though we still don’t know exactly what that course will look like.
  • Control-Shift-O. Control-Shift-F. Also, one of my personal favorites, shift-alt-s, v, enter. These are magical incantations that allow a wizard to focus his power.
  • The student who was driving was very nervous, and he mentioned this several times. I did not inquire whether he had ever done any team or pair programming before, but I would assume he has not. I can understand being nervous while steering and a group is watching your every typo and misunderstanding. However, this is part of the ego that needs to be destroyed by higher education, so that we can get on with learning. The fact that requiring collaborative programming in a curriculum can be contentious in a committee is, in my ever-so-trying-to-be-humble opinion, a symptom of a much deeper illness. (See future posting about informatics, which may or may not be written.)
  • The students in this learning experience appear to have formed functional teams, although some had a few hiccups along the way. However, from my observations of how the Tuesday/Thursday meetings go, this may have come at the cost of students’ forgetting the value of the wider community. To help address this, I made all of the course participants “owners” of the Google Site for the class, and I set up a blog where they are encouraged to post. My hope is that they will be intrinsically motivated to post and share ideas; I hope I don’t end up in a situation where I need to supply extrinsic motivation.
  • The students seemed grateful for the direction, and it was great to work with this subset of the population. I don’t think that such a workshop would have been appropriate for a normal class meeting, although I’m sure there are some who didn’t attend that would have benefited. I see this as a challenge as I move into more studio-oriented pedagogy with a population that has vastly different experience levels, not the least of which is the collaboration between undergraduate and graduate students. What becomes the most fruitful use of our class time once all the teams are bootstrapped, especially when individuals spread throughout the teams need some extra scaffolding in the tools and techniques? I don’t like the idea of having some class meetings that are optional, so that only those students who don’t know some content show up—this is wasting the time of those who already have this experience. On the other hand, setting up workshops outside of class gets into the nastiness of scheduling with potentially 33 interested participants.

I have asked all of the students from the workshop to share a brief reflection on the course blog. I look forward to seeing what they think about all of this.


One Response to “Ad Hoc Android Programming Workshop Redux”

  1. Ron Smith Says:

    I learned that this is not a class to miss because you never know what will happen next.
    The first question I would have asked was how do I draw on a canvas and manipulate bitmaps? We want a subset of bitmaps from the raw image callback.
    Secondly, where can I find a working example of a byte buffer to get our algorithm statistics? We need to query the colors of each bit in a sub-bitmap for an average value. The nine values will compared to produce our output.
    Is there another buffer type we can use? A two dimensional array would be best, less counting and therefore less error prone.

    Dr. Gestwicki’s blog made me realize that I had become bogged down in our highest risks and was not helping with lesser risks. As one of the leaders, I should have found out not only what I don’t know, but also what the rest of the team doesn’t know.

    I started out the class asking; what can I do for you? I had better start asking that again.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: