Posts that are engineering edu-ish
We’re long overdue for an update on the Hacker School book. If you’re a Hacker Schooler who signed up for the first two rounds of data collection and analysis, my apologies for falling off the radar. Turns out I’m terrible at scheduling logistics — so I’m hiring a research assistant to help with that, and we’ll be rescheduling folks so we can get into the storytelling interviews we actually want to have. If you’ve signed up for the project in some way, you should expect an email by the end of July.
One of the biggest blockers has been a lack of training materials to jump-start interview sessions. What do interviews look like? How do you know what questions to ask? How do you analyze the stories your fellow Hacker Schoolers are telling? (How do we do any of this?)
Well, thanks to Hacker School alums Stacey and Stefanie, we now have a great demo interview. We’ll be using it as an example/training tool for analysis while I’m in NYC next week for my Hacker School residency. Instead of pair-programming with students like I usually do, I’ll be spending this residency with both local and remote Hacker School community members pair-analyzing and pair-interviewing to get the next round of data collection jump-started. We’ll run 2 full rounds of data collection/analysis as originally scheduled (July 21-August 17 and August 18-September 7) and get some stories out there.
(Thanks to Sumana Harihareswara for her project management ninjahood coaching/prodding, and the reminder that public updates are good. Sometimes it’s easy to forget the most basic things, but that’s why we have friends to remind us.)
Articulating my access needs for an academic conference has taken a long time to figure out, and I’m still wading through those waters. In case it helps others in some way, here’s an email I just sent; thanks to Mirabai for sanity-checking and courage to actually ask for what I need.
(in reply to a request for my conference schedule)
I do not have a definite schedule of my participation in the event; as a professional conference and networking function, a large part of the value comes from informal hallway conversations with colleagues, evening socials, and spontaneously being able to follow connections into/out of formal presentations.
What I need for full access is a CART provider assigned to me between Sunday, June 15 at 1pm through Wednesday, June 18, at 5:30pm. The CART provider either needs to follow with their equipment wherever I go or be prepared to go to wherever I text them on a minute’s notice and set up there. The CART provider and I can negotiate throughout the day to make sure they have sufficient break time (I am used to working this out with CART providers). Hours would be as follows:
- Sunday, June 15: 1pm (Pioneers project workshop) through 9pm (Purdue Engineering Education mixer)
- Monday, June 16: 7am (1st sessions) through 6pm (awards ceremony).
- Tuesday, June 17: 7am (1st sessions) through 10pm (ERM division social)
- Wednesday, June 18: 8:45am (2nd sessions; I will almost certainly skip the first session) through 5:30pm (end of last sessions).
Within this, the current schedule you have for me is a reasonable first guess as to where I might be and what I might be doing, but much of the value will come from unplanned interactions outside the current tentative schedule.
For my own talks and presentations, we do not yet have slides or other planned material. Honestly, knowing my co-authors and our travel schedules leading right up to the conference, it’s likely to be a last-minute thing. However, I’ve attached the two papers I will be presenting so the CART writer can get some idea of terminology, and I would be happy to coordinate with them over email, SMS, or chat beforehand to field any questions they might have. [Provider name] and some of her subcontractors have provided both remote and in-person CART for me the past 2 years and are familiar with the terminology and conventions of my field.
Let me know how we can set this up, and whether you have any questions. I’ve copied [my counselor] from the Purdue Disability Resource Center on this email so that everybody’s in the loop.
The goal of every Hacker Schooler is to become a “better programmer.” Given that I last wrote on Test-Driven Learning, I feel almost obligated to ask: “what does that mean exactly, and how could you assess yourself on it?” (Another wording, from Dave’s post: “What qualities of being a ‘good programmer’ could you aim for, and how would you know if you had them?”)
There is no one-size-fits-all assessment that would work for every Hacker Schooler — everyone has such different interests, learning styles, experience levels, and a wide splay over every other type of spectrum imaginable for learning programming. (Typing speed. Language preference. Shoe size.) Making a single pre/post test and foisting it on everyone would (1) fail miserably at assessing anything and (2) work against the intentional self-directedness* of Hacker School.
So during my Hacker School residency, several Hacker Schoolers and I sat in Hopper (the big glass-walled room at the end of the space) and brainstormed on exactly that question. Here’s what we have for starters, totally unsorted and only edited for spelling and clarity of terminology.
- length of Hacker School bio page
- number of git commits
- number of “merits” (a currently nonexistent, hypothetical arbitrary credit) given by other students
- list of acquired skills
- contributions to FOSS
- number of pairing experiences
- lines of code per project
- list of completed projects
- total lines of code blogged
- number of roadblocks overcome (subjective)
- happiness/satisfaction (subjective self-report)
- lines of code written without needing to consult external references
- how fast can you make this deliberately slow code?
- Project Euler time trials
- number of job offers
- number of friends referred
- ability to explain concepts to novice coders
- number of people helped
- understanding of software docs
- number of blogs
- hackathons attended
- number of followers in (git) repositories
- time wasted browsing other stuff
- length of time paired
- number of presentations
- ability to improve own code
- usefulness of programming blogs
- refactoring time trials (rewrite code to run faster, as fast as you are able to rewrite it)
- how many lines of code produced
- number of projects done as an individual vs collaboratively
- assessment from peer partner
- ranking of comfort with (programming) languages
- number of times you had to use a search engine to complete a task
- cups of coffee
- number of tweets on technical topics
- how many ways you can think of to code the same function
- total time spent with facilitators
- presence of test suites with code
- number of keystrokes
- hours slept
- debugging time trial
- results of code reviews
- number of git commits
- number of presentations delivered
- number of seminars attended
- number of seminars given
- number of new tools learned
- reading pseudocode
- ability to follow directions
- writing a program from scratch
- alum application reviews vs facilitator observations
- average length of (git) commit
- number of alumni contacted
- independent rating of CV by HR people
- can someone else independently compile & run your project?
- on a scale of 0-5, how confident do you feel as a programmer?
- number of interviews
- frequency of git commits
- number of questions asked of residents and facilitators
- frequency of code revision
- how many errors can you spot and fix in this deliberately broken code?
- time to fizzbuzz solution implementation
- how many technical words on this list can you explain
- grade on open courseware CS class final exam
- Zulip (Hacker School internal chatroom) lines with ? (question marks) in them
- heart rate/stress response during Jess McKellar’s most technical talk
Further ideas quite welcome.
*Tom also pointed out that a pre-test would “prime” students to learn certain things and could dramatically affect their pathway — for instance, if the pre-test had a bunch of CS theory, students would think “oh, I should learn CS theory!” and veer off in that direction, which could be positive or negative (but would most definitely skew the study results). He wondered if we could make pre-assessments that “primed” for certain… habits of mind, for lack of a better term, rather than content.
Since I am writing my dissertation proposal (the first in my department from a poststructuralist perspective), I am grappling with paradigms today. (Again.) Let me think-out-loud by writing.
As a poststructuralist scholar, I question the very concept — the very existence, the very truthiness (as Colbert would say) of “truth.” I’ve spent my whole life frustrated at the inadequacy of totalizing metanarratives that sweep history under the rug and try to make the world seem simple enough for everyone to agree upon: “Of course it’s this way; it always has been.” There’s usually an agenda. Far too often, those stories are the tellings that benefit the folks in power; winners write history, but losers are complicit in retelling it. But we fall into this because metanarratives are so… comfortable. Clean.
I’m uncomfortable in the messy, just like everyone else. And yet I also have — and follow — a great thirst for the places where you can’t set “truth” down simply, or at all. In a strange way, I feel more truthful without “truth,” more honest allowing mystery to remain mystery. It’s not a passive “allowing” where I throw up my hands and say “why bother — we won’t understand it anyway!” Rather, it’s a place where I wrestle. And I wrestle fiercely, as anyone who’s ever encountered me as a scholar or a hacker or a friend can attest. My mind — my heart, even my physical body — is restless; I drive and attack, search and prod, double back over even my own perceptions trying to get them to crumble. Because… science. Because to be a scientist means admitting we can never know.
As a poststructuralist scholar, I question truth — am highly skeptical of it, draw upon Derrida, Foucault, Barthes, Lyotard, and other thinkers for tools to dislocate and fracture any notion of it — or more accurately, to see and point out places where a supposed “truth” dismantles and deconstructs itself. Derrida said that structuralism — the belief that you can find the underlying structure of all reality — only makes sense if you assume stable external points of reference. Derrida and other poststructural theorists go on to rip facades off many things we usually assume as stable points of reference — power structures, gender and sexuality binaries, all sorts of thoughts about religion and belief, the very notions of what it means to know and be — and I cheer, because — finally! The multiplicities! Bursting out from all these limiting ideas, all these structures that have bound them for so long, bursting out and challenging the ways we see and breathe and walk within the world — oh, yes. Oh yes, indeed.
As a poststructuralist, I sometimes feel as if I’m supposed to say that there’s no stable point of reference, just a self-referential set of signs and symbols navel-gazing messily into itself. I can see a crazy self-entangled, ever-shifting tangle of signs and symbols, absolutely — but I can’t say that that’s all there is. As a Catholic, I do believe in a very particular, yet indescribable, yet stable point of reference, which I use the symbol “God” to refer to. I believe in Truth with a capital T, and I believe in that Truth with a faith I cannot express or comprehend. It’s a young faith, and I am bewildered by it, stumbling with it and within it, praising it with joy and crying out against it with frustration in the same breath (as one is wont to do with love, I suppose). Less than two years ago, I was surprised to find that all my wrestling to shatter “truth” was instead breaking me, time and time again, into the midst of an incredibly uncomfortable mystery that was Truth itself, one that was both whispering wind and consuming fire.
I fought that Truth; I fought the very idea of its existence. I lost. I fight it still, because… that’s part of how I love; I grapple. Except that here, each time I lose, I actually win. I can’t explain it any more coherently than that.
But I don’t want this to be a “hey everybody, come to Jesus, ain’t the world just full of rainbows puppies everybody holding hands hooray!” post. I started writing because I had reached a point of intellectual grimacing — because I was wading through all of my notes on Derrida and Lyotard and so forth, and said: wait, wait — I don’t know any more, where does this leave me? I was — and am — disoriented. Which, as a poststructuralist, I should be happy about — and I am. But as a human, I’m also just… disoriented. I’m not trying to come to a resolution in my explorations; I am simply trying to explore.
I don’t want to just say that “poststructuralist tools shatter our habitual, inadequate little-t truths so we can explode into the mystery of big-T Truth which is of course God and etc. and now we’re done,” because that’s the sort of oversimplified totalizing modernist metanarrative I rejected in the first place (and still do). I find a lot of things that people say about God to be incredibly frustrating little-t truths — not the God I believe in, not at all. I poke and watch those little-t truth statements twist and crumble. “We believe because we know it’s right.” “We must simply take it as a matter of faith.” I can’t stand leaving things at that, so I wrestle, and the wrestling shatters. Shatters the comfort, shatters the structure, tears down the scaffolding of peace that people — even myself — might try to build.
I realize that, by definition, we cannot express the ineffable. I realize that all we’re doing is trying really hard to say something about it, and that it’s so easy to slip into readerly habits, take the model as the real thing, forget. I realize that by even writing about this, I am doing the exact thing I critique. Words are such a limited medium; they have a quality of solidity and permanence that I do not intend even as I type them here.
I think what I can say is that poststructuralism is a very useful tool for me to think with, because every “truth” I have encountered as an intellectual statement is not the Truth I have encountered in and as relationship, and the toolset of poststructuralism makes me more adept at articulating why. I can say that poststructuralism does not provide rational proof for relativism or atheism — you can use it as a tool to think relativistically and atheistically, but you can also use it as a tool for just the opposite, just like the many different types of logic are used to argue opposing sides of any argument. I also want to say — mostly to Christians, here — that “aiee, relativism!” is no excuse for dismissing anyone’s attempt to wrestle with either little-t or big-T truth. If it’s a little-t truth, it’ll shatter; excellent. If it’s a big-T truth, then — well, I rather think the infinite can handle it.
The only metanarrative I actually believe in — if I can even call it a metanarrative — is love (and boy, does that word feel inadequate as a symbol; it’s a pointer to something that no memory address can hold). But love is about as far from a totalizing, oversimplifying, power-structure reinforcing metanarrative as you can get. It’s a radical discomfort and a peculiar peace that takes your gift and at the same time is the gift you’re flooded with. And I stand in that discomfort. Or I try.
No, actually. I don’t stand; I wrestle. I wrestle as a poststructural scholar, but in this place, I wrestle with angels. The ineffable infinite and the finite concrete, the human and the divine, panting and tangling and sweating and struggling in the very finite, human, concrete dirt… but also pointing somewhere far beyond it that was in the beginning, is now, and ever shall be.
And I don’t know. I still don’t. But I feel as if I can leave this place now and go on with writing.
Whoa, I’m actually enjoying this writing thing. This section is still rough — you’ll see at least one “NEED A REFERENCE HERE!” note — but I’m starting to go from the (more) comfortable place of “hey, narratives — they’re a thing!” into the weirder territory of “HEY EVERYONE LET’S ALL EXPLORE POSTSTRUCTRUALISM!” which is where my heart really lies (in terms of this project, anyway).
In the preceding section, we explored cognitive apprenticeships as one possible way to see faculty-as-learners. Despite many advantages, this perspective had one significant drawback: because it was originally designed for young learners, its assumptions of agency are limited, as is its ability to draw on the prior experiences of learners.
Another way to see faculty-as-learners is to view them as narrators. Glesne speaks of the writer/narrator role as threefold: (1) artist, (2) translator/interpreter, and (3) transformer. (Glesne, 2011, p. 219) The role of narrator is thus a high-agency role, with narrators deciding how to create (as artists) a story-telling moment and how to translate it for their audience in order to elicit the desired reaction/transformation. Agency is heightened even more when the narratives are about one’s own past. Autobiographical narrators paint themselves as characters in their own stories, drawing from their prior experiences and using their agency in the present to articulate their agency in the past. This “intentional state entailment” is a key feature of narratives; without characters with agency who make choices, we cannot have narratives at all. (Bruner, 1991, p. 7)
Narratives thus give us both a method and methodology for understanding faculty as learners that address the shortfalls of agency and prior-experience we found in cognitive apprenticeship theory. We will discuss narrative as method — the concrete step-by-step process of carrying out a project — later in this document. This section will explore narrative as methodology, examining the philosophical perspectives underlying and shaping the method.
In terms of methodology, narrative work usually falls within the intepretivist paradigm, where the purpose of research is to seek understanding (as opposed to creating predictions or causing emancipation). (Glesne, 2011, p. 7) Bruner’s landmark 1991 paper, “The Narrative Construction of Reality,” removes the boundaries between the mental process of thought and the discourse of its expression as a narrative. The narrative is not sitting precomposed in some idealized platonic space, waiting to be spoken or written by an unthinking scribe. Rather, narrative “operates as an instrument of mind in the construction of reality,” (p. 6) and as such, cannot simply be chopped into parts for neat analysis because of its “part-whole textual interdependence.”
Looking at the world through a narrative paradigm also requires that we examine our epistemological assumptions about the nature of “knowledge” and “truth.” We distinugish between the “constructions generated by logical and scientific procedures that can be weeded out by falsification” and the “version of reality whose acceptability is governed by convention and ‘narrative necessity’ rather than by empirical verification and logical requiredness” (Bruner, 1991, p. 4-5). The first is called “forensic truth,” the second one “narrative truth.” As a knowledge-seeking methodology, narrative does not seek forensic truth; rather, it seeks verisimilitude, the possibility or resemblance of forensic truth and the “truth of personal recollection and memory.” (PRECISE REF NEEDED, South African Truth & Reconciliation report).
Coming from this intensely personal perspective, narratives become boundary objects and mediated dialogues between an author (speaker) and a reader (listener), with both parties taking a highly active role in the process. In Bruner’s words, narratives have “hermeneutic composability,” meaning that they are things through which people express and extract meaning, but there is no single absolute meaning that can simply be dissected. Two people reading the same book can come out with very different insights. The interpretation being made depends on the background knowledge and intention of both author and reader, as well as what the author and reader know about each other. (p. 7-11) However, the information dissemination model of learning does not account for this hermeneutical interaction.
This hermeneutic composability leads to an expanded perspective on the part of both author and reader. Bruner writes about how narratives have context sensitivity and negotiability. By seeing that we and others may have different contexts, we are able to accept these differences. We recognize that we can immerse ourselves, like anthropologists, into someone else’s process for constructing meaning. (Bruner, 1991, p. 16-18) Belenky describes the process from the perspective of a constructivist, where participants engage in “…becoming and staying aware of the workings of their minds… [seeking] to stretch the outer boundaries of their consciousness — by making the unconscious conscious, by consulting and listening to the self, by voicing the unsaid, by listening to others and staying alert to all the currents and undercurrents of life about them, by imagining themselves inside the new poem or person or idea that they want to come to know and understand.”(Belenky, 1997, p. 141)
Narrative hermeneutics do not just expand perspectives within the author-to-reader connection. In fact, Bruner specifically depicts narratives as communal. Human societies pull multiple narratives into a larger assemblage of many narratives — a “narrative accrual” — that we share with others of our culture. (Bruner, 1991, p. 18-20) The history of a country, the “foundational” papers of an academic discipline, and the dinner-table stories that “everyone in the family knows” are all examples of narrative accruals. These narrative accruals are important enough that we legislate that children to learn national and world history in school, require graduate students to focus their first few years on reading a common core of “foundational” works, and make sure that prospective sons- or daughters-in-law learn certain family stories and traditions when they come to visit. Communities of practice and their narrative accruals therefore co-construct each other.
Learning the stories of one’s community — becoming a fluent reader of this narrative accrual — is a key part of enculturating into a community of practice. Without a common language, we are unable to communicate. Think about two kids on the playground bonding over a favorite TV show: “Did you see the episode where Superman did…?” “Yeah, but my favorite episode is where he…” Alternatively, think about the way researchers refer to common theories to get their ideas across; by invoking Wenger & Lave’s communities of practice theory in the preceding section, and Bruner’s narrative analysis work here, I draw my research into a web of ideas others have already thought and written about. Practitioners tell each other stories about their work all the time; telling the “right” kinds of stories about the “right” kinds of things (for instance, in a literature review) is a mark of belonging in its own right. “For newcomers,” say Lave and Wenger, “the purpose is not to learn from talk as a substitute for legitimate peripheral participation; it is to learn to talk as a key to legitimate peripheral participation.” (1991, p. 109)
However, it is not enough to become a passive reader of this narrative accrual; a full community member must contribute to the joint process of creating the collective story pool. “Our individual autobiographies… depend on being placed within a continuity provided by a constructed and shared social history in which we locate our Selves and individual continuities. It is a sense of belonging to this canonical past that permits us to form our own narratives of deviation while maintaining complicity with the canon.” (Bruner, 1991, p. 20) As we place and shape our own narratives within the narrative accrual of our community, we place and shape ourselves within and in relationship to our community. The transition from passive reader to active writer can be difficult. “She must learn again to speak,” says a poem by Marge Piercy, evoking the learning process of individual-yet-communal sensemaking that engaging in narration fosters. “starting with I / starting with We” — and yet it is only in this mutual engagement with the stories of “I” and “We” that sensemaking can begin its work of bridging and transforming.
Just as communities of practice overlap and bridge across each other, so do narrative accruals. A Japanese child my age may have shared my weekly viewing of the Pokemon TV show, but she may have watched the Japanese show Sailor Moon immediately afterwards, whereas I turned off the TV and read American novelists like Mark Twain. These overlaps can and do often interact to cause interesting shifts and merges in the “libraries” of individuals, and eventually in the narrative accruals of a broader culture itself. For instance, two teenagers may talk about their favorite band, then one may introduce the other to a new musician: “If you like Sara Bareilles, you should listen to Vienna Teng.” Eventually, if enough people in their social group come to enjoy Vienna Teng, that musician’s albums enter their narrative accrual and become a source of lyrics to be quoted, songs to be sung on road trips, and so forth. Similarly, a researcher may start writing from what she thinks will be common ground with her readership (“you’re probably already familiar with some cognitive apprenticeship literature and the idea of narrative analysis…”) and then branch out into what’s likely to be less familiar territory (“now let me introduce a fellow named Roland Barthes, and we’ll explore how his ideas tie in.”)
With that in mind, we now turn to a fellow named Roland Barthes.
(Still) writing my dissertation proposal. Apparently, I write non-linearly (no surprise to anyone who knows me), which means ideas coalesce in an ever-expanding fuzzy cloud for a long, long time — and then burst into a thunderstorm at the end. Right now I’m thunder-storming the section that talks about 3 different ways of thinking about faculty-as-learners: cognitive apprentices, narrators, and agents in a poststructural universe. Here’s the apprenticeship part, now that I think it’s world-readable.
Oh. Side note. Those who have heard me talk about cognitive apprenticeship in the past will notice the technique list is longer — in addition to modeling, coaching, scaffolding, and fading (originally called “exploration,” btw) there were also originally “articulation” and “reflection.” (I didn’t realize this until I dug back into the old literature after my last talk and went “WAIT, THERE’S MORE?”) So yeah, my next Hacker School talk is getting revised a bit, because it turns out those two are useful too.
One way of thinking about faculty-as-learners is to view them as participants in a cognitive apprenticeship (Collins et al, 1987). The cognitive apprenticeship framework was developed alongside theories of situated cognition and communities of practice (CoP) in the late 1980s and early 1990s. If situated learning says that all knowledge is contextual (Brown et al, 1989), and communities of practice are the domain-specific groups of practitioners with whom we share a fellowship (Wenger, 1999), then cognitive apprenticeships are how newcomers learn a contextually-situated intellectual craft by working with and observing others in a CoP. Faculty, especially novice faculty or those new to a particular school, can be thought of as apprentices who learn from watching more-seasoned faculty navigate the practice of teaching engineering.
The creators of cognitive apprenticeship theory were education researchers inspired by anthropological observations of traditional craft apprenticeships such as building furniture or delivering babies. They noticed that apprentices developed their skills in a meaningful context where their novice efforts clearly contributed to the “real practice” of their craft and the building of their skill in that craft (Brown et al, 1989). Reading or talking about designing engineering curricula is not the same thing as actually designing or teaching it, one possible reason the engineering education research-to-practice transfer problem is more difficult than the information dissemination perspective might make it sound. Apprenticeship-style learning is effective at modifying practice because it is modified practice, an deliberate experience of situated learning within a CoP.
Situated learning and CoPs are not new ideas in engineering education. In “Situated Engineering Learning: Bridging Engineering Education Research and the Learning Sciences,” Johri and Olds (2011) provide numerous examples of how situated learning is already embedded in engineering education by virtue of its emphasis on tangible, real-world, hands-on project work. CoP theory is even more widely used in engineering education, including usage specifically geared towards faculty development. For example, the NSF-funded Rigorous Research in Engineering Education (RREE) workshops were based on a CoP model (Streveler, Smith, & Miller, 2005). Engineering education conferences feature workshops and special sessions with titles such as “Feminist engineering education: building a community of practice” (Pawley et al, 2009) and “Communities in practice in engineering education: what are we learning?” (Adams et al, 2005). While not limited to engineering or technology faculty, the Faculty Learning Community (FLC) movement within faculty development has been described as a specific type of CoP (Cox, 2004). Finally, the American Society of Engineering Education (ASEE) is developing a NSF-funded virtual CoP model for faculty, citing familiar-sounding frustrations with the “inherent limitations” of the “develop-disseminate” model in which researchers develop new materials “and then try to convince others to use them… without any follow-up activity,” (Pimmel et al, 2013, p. 2).
Cognitive apprenticeships, then, provide an alternative perspective. How could the apprenticeship-style learning from traditional crafts be transferred to the development of cognitive skills such as teaching and curriculum development? One large divide needs to be bridged: the difference between cognitive and traditional apprenticeship is that cognitive apprenticeship focuses on cognitive and metacognitive, not physical, skills. Apprenticeships, argued Collins and his co-authors, exposed the process of creation to apprentices; a young man would see his teacher sanding a cabinet, a young woman would watch her teacher wrap a newborn child. It’s somewhat harder to “see” what goes on inside a faculty member’s head when (for instance) they are reconceptualizing what it means to teach design across the disciplines. Since cognitive activity is not visible by default, teachers of intellectual subjects would need to practice “making thinking visible,” or “the externalization of processes that are usually carried out internally… to bring these tacit processes into the open.” (Collins et al, 1991, p. 6) In effect, Collins and his coauthors were saying that facilitating cognitive apprenticeships is all about making one’s metacognition visible to learners in one’s CoP. They articulated several techniques for doing so:
- Modeling, where another practitioner performs the task in front of learners so they can see how it is done. Faculty-as-learners have extensive experience with this technique: namely, they have sat as a student in someone else’s classroom for years, and their experiences as a student have a significant impact on how they teach — although not as much as their experiences as teachers (Oleson and Hora, 2012). As faculty, they can engage in classroom observations to watch other faculty teach. In an ideal modeling situation, the practitioner who is modeling also thinks out loud, slows down, and explains intermediate steps: why was a particular decision made in designing this curriculum? What was the practitioner paying attention to while teaching?
- Coaching, where another practitioner watches the learner perform the task and gives them hints from the sidelines as they attempt it. Peer reviews of teaching, where classroom observations by a fellow faculty or staff member are followed by a feedback session, are one way some faculty already engage in this technique.
- Scaffolding, where another practitioner helps the learner perform the task, for example by starting it halfway and then letting the learner finish it once the task is at an easier point. Team-teaching with a more experienced faculty member is an example of this.
- Fading (or “Exploration”), where learners are encouraged to go out and tackle the process on their own with less and less help from the preceding practices. This is similar to the transition from teaching assistant to independent instructor.
Two other techniques were described by Collins et al in the original list, but have dropped out of usage over time:
- Articulation, where a practitioner asks learners to think out loud – an inversion of the “modeling” technique that helps learners become teachers to each other.
- Reflection, where learners compare their process to an expert’s process or their internal model of a “good” process.
Regardless of the specific techniques employed, the ultimate goal of cognitive apprenticeship is the development of metacognition and self-monitoring in students – or as Donald Schoen would put it, the ability of reflection-in-action (Schoen, 1983). Developing this ability enables practitioners to serve as “teachers” to one another; faculty can help other faculty develop without being faculty development specialists or even “expert” practitioners of teaching or curriculum design themselves. The only requirement is that the practitioner is self-aware enough to articulate their own performance, including their mistakes. For this reason, I have used the word “practitioner” rather than “teacher” in describing the cognitive apprenticeship techniques, unlike Collins et al, who were writing for an audience of K-12 teachers and education researchers.
It is here that we find one of the major limitations of the cognitive apprenticeship framework in thinking about faculty-as-learners: it was developed in a context where the learners were children, whereas engineering and technology faculty are adults. Agency is thus implicitly assumed to originate with the “teacher,” eventually flowing outward to the learner. This is evident not just in phrases such as “give students the opportunity” (Collins et al, 1987, p. 18) and “create a culture… for students” (p. 7), but in the techniques themselves — “modeling” is a predominantly passive act on the part of the learner, and “scaffolding” and “fading” are simply the deliberate and gradual transfer of agency to the learner. The end goal is for the student to have agency, to allow “the role of ‘expert’ and ‘student’ to be transformed,”(Collins et al, 1991, p. 17) — but it does not start out that way. However, Jane Vella’s 1997 book points out that adult learners must be seen as subjects rather than objects in learning from the very beginning (p. 129-148); they are already used to acting as independent agents, and bring a rich storehouse of past experiences to the table. In the next section, we will explore another viewpoint that takes these past experiences of agency into account.
This particular brainramble is edited from an IRC log with Seb Benthall, an old buddy of mine from the hacker world who’s now pursuing his own PhD in Informatics at UC Berkeley. Once again, half-baked thoughts that are scrambling rapidly as I make sense of this by throwing it into what hopefully will be my final(ish) prelim document.
I’m doing a poststructural narrative analysis dissertation on engineering/technology faculty storytelling. It’s poststructural because it destabilizes the centrality of the author (or in this case, the main researcher) and focuses on the sensemaking of the readers (in this case, primarily the narrators), and doesn’t expect their perspectives to converge or triangulate on an absolute truth or meaning.
The narrative analysis part means I work with stories. Specifically, I look at narrators retelling the same story over and over again in about 6 dialogic narrative episodes per narrator. I’m using Bruner’s work to say, “Hey stories are a thing, we can’t dismantle them, we need to treat them as stories.”
I’m also pulling in Bruner’s notions of how communities interact with their story corpus. As individuals, we make sense of our own narratives by shaping them with, against, within, <insert preposition here> a community’s story corpus (which is itself malleable). This means that there’s this whole community socializing, community-of-practice entry, apprenticeship-style dynamic to stories. I’m using narrative analysis to start poking at the edge of it. You can think of communities as narratively constructed, and their story corpus as socially constructed — they mutually co-construct each other.
Because of this sensemaking process, Bruner talks about all texts being hermeneutic. An author works to put meaning in; it’s an active process. A reader also works to draw meaning out; interpretation happens on both ends and is shaped by the context surrounding the interpretation. This thought — “all texts are hermeneutic” — comes from narrative analysis, but has a parallel in poststructuralism: “all texts are writerly.” The idea of “writerly” texts comes from Barthes, who contrasted them with “readerly” texts; the two terms refer to what role the text assigns its reader. A “readerly” text treats the reader as a passive consumer. In constrast, a “writerly” text demands the reader become actively engaged in wrestling with and coauthoring its material, bringing their own contexts and interpretations into play.
Another way of thinking about it that you’ll get, Seb, because we’ve worked together in the open source space: the hacker mindset is effectively to see the world in a writerly way. The writerly hacker.
You can see readerly/writerly as an epistemological view, in some sense. Readerly epistemology is the sort of epistemology that we think of for “stereotypical” school — what’s the role of the student? Brain-as-empty-bucket. What’s the role of the teacher? Garden hose that fills the bucket. Now, next step: if you don’t see your community’s stories as writerly — and your own story in that field as writerly — your future in that discipline looks like… it’s not much of a future.
(“How is this different from Constructivism?” Seb asked. “Or is it like a translating of that into poststructuralist language?” I had to think about this for a bit.) Constructivism is all about hands-on learning, and that hands-on learning is in order to support meaning-making. Whereas I’m concerned with meaning-making, whether or not the activities are hands-on. It’s a different angle.
Instead of focusing on students, I’ve decided I wanted to work with professors. Because the thing is, we keep telling professors “hey, you should teach your students with this hackerly/writerly epistemology,” but the professors themselves have to experience it first. If you look at a lot of the faculty development resources for STEM profs, they’re all like, “hey, we’re going to lecture you on why you shouldn’t lecture your students.” Which is to me sort of hypocritical and incredibly ironic. But because we’re used to efficiently converging on an answer in the STEM fields — converging on an answer and then transmitting it — we accept that and we think, “oh, okay, lecture on not-lecturing, cool, gotcha.”
That convergence is the sort of thing I challenge with a poststructuralist stance. Taking that stance means I’m refusing to converge on a single “we have the answer of the truth, we’re done done done!” point, and pointing out that the refusal to converge is a big part of what… I’m trying to say. For lack of a better way to say it.
I want to get professors out of their stuck narratives by having them tell their stories about designing technical curricula over and over and over and over. And every time they do a storytelling session — on the same story — the prompt isn’t from me. The prompt is either “here’s some verbatim phrases you said last time, let’s analyze your own story by retelling the story” — or those same sorts of phrases, but from another professor’s story. Maybe the prof down the hall you hardly speak to, or a prof from the same dept at a different uni who teaches the same class there. The narrators seem to think this is pretty cool. So far, anyway. They say things like — paraphrasing here — “zomg, did I say XYZ? that I meant ABC instead.” Or “Wait, actually, I really like how Dr. Foobar phrased it better than the way I said this before.”
I can pull this off in a single session because I use realtime transcription, so halfway through the “interview session” I stop the storytelling and flip the laptop screen around and say “here’s what you said, let’s read it and talk about it.” It’s an integrated member check. Also, part of the IRB is that they agree to release their transcripts with their name on it under an open license (CC-BY-SA right now), so the member check is also an editing session to make sure they’re ok with whatever is in there going public. It’s “Oh gosh take out what I said about my dean” time, just in case, but nobody’s really used that capability yet.
So we end up with: (1) an open dataset of (2) repeatedly told narratives that (3) intertwine and reference/edit/critique each other.
Seb pointed out that I’m “studying up,” meaning that I’m studying people of a higher status, which makes for an easier IRB proposal. He made me realize how important the deliberate lack of convergence was, and that I ought to point that out more. (“Hypothetically,” I said, “you could continue the process forever; there’s no ‘perfect’ version of the story, we keep rewriting our stories of the past based on what we think in the present anyway.”)
Seb said that I was designing a tool (the “interview” method — or to use Ileana’s term, the “dialogical narrative episode”) for exposing the messy hermenutical psychological underbelly of the engineering curriculum; emancipatory-reflexive work, but aimed at the people teaching the technical material. Since we’re both hackers ourselves, we like the idea that this may help create more writerly engineers (“All the engineers will then get trained as hackers,” Seb said, “because you’ve planted a poststructuralist idea into the minds of the STEM faculty.” “I’m not telling them it’s poststructuralist,” I countered. “I’m just saying hey, isn’t this interesting?”)
This is a (cleaned-for-grammar) transcript of a tape-recorded conversation with my classmate, Ileana Cortes Santiago, whom I begged to “sit and listen to me blab about my dissertation, and then help me figure out what the heck I’m saying.” This process was incredibly helpful, so I’m collecting my notes here so that I can remix useful sentences and paragraphs into my prelim… soon.
DISCLAIMER: These thoughts are very, very half-baked. As I continue to review, edit, and publish notes from similar conversations, you’ll see me editing these thoughts, rearranging them, throwing them out… (for instance, I no longer say I’m “developing a format for faculty development.” In fact, my research question has fundamentally shifted its wording at this point.) This is the sausage-making process, exposed.
Ok, thanks, Ileana. The recording’s on. So… here we go. My dissertation centers around developing and demonstrating a format for faculty development. This format will be created and tested specifically with and for engineering and technology faculty, and in the context of transforming their teaching and curriculum development practices, but is likely to generalize beyond these populations and contexts.
The traditional model of faculty development is an information dissemination model. We have to get information out to people. The problem is they’re not reading the right books or listening to the right talks. If more people read our work, our work will impact them.
The problem with that view is that it doesn’t solve the problem of research-to-practice transfer. That problem doesn’t exist solely because the information’s not available. Faculty do have access to papers and books; they simply prioritize other things. They don’t want to read these papers, and they’re not changing their practice when they do read them. We have literature on how engineering faculty change their practice, and the main finding is that hey, it’s not because they go hunt for papers on teaching and then read them. In order to have a transformation, we need something more than “let’s just get the information out to them.”
Think of the way we talk about the epistemology of teaching and learning for our undergraduate students. One common framing was articulated by Baxter-Magolda and King; they described how a lot of students enter college thinking of students as passive recipients of information and teachers as knowledge-containers who transfer that knowledge to students in a copy-paste sort of model. Engineering educators critique that model as being limiting to the student. Instead, we advocate an epistemology where we as teachers are not giving information, we’re helping them develop their identities as adults in our discipline. We need to move these students towards more agency — more self-authorship, more of a transformative space where they can see themselves as not just developing professionals, but professionals who develop themselves.
I find it ironic that when we look at the epistemology of faculty development in engineering education. When faculty members are in a student role, like when they attend a faculty workshop, how do we treat them? Exactly the same way we tell those faculty not to treat their 18-year-old students. So part of what I’m saying is: people, this is silly. If we want teachers to teach their students with a certain epistemological paradigm, we should teach them that way in their own professional development. We should take a self-authorship view of faculty development and be concerned with their identity formation as teachers.
You can’t just give someone a teaching identity. You can’t recite a bunch of facts and have them memorize them and then think, poof, magially they’ll have a teaching identity. A lot of that teaching identity development and expression comes out in other ways. The particular way I’m exploring it in my dissertation is through storytelling. When people tell stories about their teaching, they themselves are characters in their stories. By tracing the way they portray themselves in their stories, you can get at what their teaching identity is, and how it’s forming and transforming over time. These stories give you — and the faculty — a concrete thing to actually reflect on. For example, you could say “Oh, did you notice you portrayed yourself as an outsider?” (Or a pioneer, or a misunderstood rebel, or etc.) Now there’s something concrete — their words, recorded in a place where they can see and manipulate them — and they can go “Oh, gosh, you’re right, I did say that. Huh.”
Engineering and technology educators have pretty well developed identities as researchers, because we spend lots of time in grad school developing our research identity, topics, expertise. But when it comes to teaching identity, then — whoops, sorry, we haven’t really done that. There’s not that corresponding space for development. If you look at the lived experiences of faculty day to day, there’s no space for storytelling about their teaching practices. They might tell some stories to the students in their classes about content knowledge, either in stories of practice (“Let me tell you about the time we were designing this robot…”) or as explanations or analogies (“This physics concept is a lot like when you’re riding a bicycle…”).
However, teachers don’t have the space to tell stories about being teachers, only the stories about them doing engineering stuff. When students come up crying after the midterm, or when you’re trying to design a homework assignment that assesses certain things — those stories and that identity development, there’s no space in a faculty emmbers life for that. When would you do that? It sometimes comes up in grad school socializers when we’re drinking with our friends and complaining about all the grading TAs have to do. It sometimes comes up when professors meet up with their buddies at conference dinners and complain about their dean. But how often does that happen? Once a term? Every other year? And do they ever get repeated, or are they mostly one-offs? These interactions are usually so transient that it’s very difficult to learn from them.
The people that you could argue faculty need share these stories with the most — their colleagues that they see and work with every day — there’s no space for that at all. In faculty meetings, you don’t have time for teaching storytelling. It’s all stuff like, “Oh, we need someone to teach these courses next semester.” It’s very procedural and agenda-driven. This means we end up with people going and teaching in their little silos. Teachers don’t visit each other’s classes. There’s no ongoing required professional development like in K12 where teachers get together, get exposed to new ideas, and talk about those ideas and about what’s happening in their specific classrooms. Then we complain, “Hey, you’ve taught this class the same way for the past 30 years.” Of course you have. That’s what you’re rewarded for doing; it’s efficiency. Why do we not have engineeirng professors reflecting on their teaching? Well, we sort of penalize them for doing that.
Let me talk a little about the specific faculty I think this model would work with. I’ll start by talking about who I am not designing for. First, there are professors who don’t care about reflecting on their teaching process. They might not even like teaching. That’s fine. I’m not interested in spending energy here; I’m not trying to persuade these professors they should be interested.
Ironically, I’m also not designing for the opposite side of the spectrum. There are some faculty members who are super self-aware. They pratically have a 2nd PhD in education. They have very well developed and articulated teaching identities. We know these faculty are found both in small teaching colleges and large research universities and everywhere in between. We think they’re awesome. And quite frankly, they don’t need my help. So this is not for them either.
However, there’s this group of faculty in the middle. I think there’s a lot of them. These are the faculty who think about their teaching, but they know they don’t think about it enough, or in the way they’d like to. It’s not that they think it’s not important; it’s that they’re not quite able to do this critical reflection and identity articulation to the degree they want — at least not on their own. Maybe it’s never been modeled for them. They probably don’t have time set aside for it. There’s probably no support for it. But it is in their zone of proximal development (ZPD). That means that if someone helps them through that process, they’ll be able to do it.
And that process — and scaffolding them through that process — is what the faculty development model presented in dissertation does. It’s a model for faculty development that takes these faculty who have reflection in their ZPD, and gets them to actually do it.
So what does that model look like? It’s very simple. It’s repeated storytelling. For example, let’s say we have Dr. Jones. I’ll say, “Ok, Dr. Jones, let’s schedule 6 sessions over the next school year of 60-90 minutes each.” This is a grand total of 6-9 hours of total commitment over the course of 9-12 months. Is that a lot of time, or is that a very small amount of time? It’s both. Asking a faculty member for 6 meetings of any sort is a lot of time, but it’s far less than they’d give to a single-credit independent study student, for instance. It’s extremely doable. But my favorite point of comparison is to think about the lived experiences of faculty and how many minutes per year they usually spend in this talking-about-teaching storytelling space at all. Maybe it’s 5 minutes a week. If that’s the case, getting to an hour of storytelling time would take 12 weeks. 6 hours is 72 weeks. 9 hours is 108 weeks. So during this process, we’ve gone through the equivalent of approximately 2 years of storytelling in a normal faculty life in just a few deliberate meetings. This is massive, proportionally, compared to their usual lived experience.
Each session is a two-part process. The first part is the first half-hour. Let’s say you’re the faculty member. You’d tell me a story from when you designed a class, some sort of teaching story. And remember there’s that technique I used in class where it got transcribed in realtime and showed up on my laptop screen, we do that for the interview also. So after the first half hour, you basically have the story all written up. And then together we read through that story you just told, and now you’re reading your own words which you’ve just said, and you’re seeing patterns and you’re seeing things in your own words and that becomes the second half, the second half is recorded and transcribed discussion of us talking about the story you just told. So it’s almost like you’re starting to analyze your own words.
Well, actually, you are analyzing it already. The boundary between data collection and analysis gets blurry. It’s a reflective process, it starts already, so it ends up in some interesting things and the first one is sometimes faculty members will realize for the first time patterns in their own behavior. So they go, oh my gosh, right, I do talk about myself as an outsider, is that something I want to do? And also sometimes they go a lot deeper into something they said before. When I said the word “literacy” I didn’t, now I realize you could interpret that phrase differently. What I mean by “literacy” is actually XYZ, let me give you an example. And they go off into another story, so you get this — you get past their canned narratives because sometimes people go through this spiel that you can tell it’s something they’ve said thousands of times before. And this really gets you past that.
The next session — I don’t have a set list of questions. It’s open-ended. Your prompt is reading excerpts either from a story you’ve told me in the past, or from someone else’s story. So maybe it’s your colleagues in the office next door, but you’ve never heard their side of it. Or maybe it’s a professor who teaches the same sort of thing but at another university. Is there something that inspires your your own story? So they’re co-analyzing each other’s experiences. Their narratives start overlapping and intertwining and making meaning of each other. You end up with the side effect of this big corpus of interlinked narratives of faculty, and anyone else can use them for later studies also, but that’s sort of a side note.
My research question asks how faculty make sense of their teaching identities through public storytelling, and all 6 narrators for this run are talking specifically about a curriculum revision focused on integrating “design thinking” into all levels of a 4-year undergraduate program. We’ll end up with 36 stories — 6 stories — or 2 stories — or 1 story, depending on how you look at it. On one level, since each narrator tells the story 6 times, we have 36 stories. But each narrator is looping around the same narrative space every time, so you could also say there are 6 stories — one per person — and 6 revisions of each story. The narrators are also colleagues — 3 come from one school, 3 come from another, and each group of 3 from a school is talking about the same curriculum revision, so you could say there are 2 stories, one per school. Or you could say there’s one big story of this study as a whole.
I should note, off to the side, that we’re not looking for convergence on “the true story” through these various revisions/rounds of storytelling, as a constructivist approach might assume. Since this is a poststructural study, we take all the stories to be some version of truth even as we question what truth is — it might be contradictory, messy, and so on — and they don’t converge on any sort of “done” state; they are part of an ongoing process of constant growth, change, and rearticulation. We could continue the storytelling process indefinitely.
I skipped over the part where I compare this model of faculty development to other models of faculty development, with a bunch of radial graphs and such, because we need to go to class soon and there isn’t time.
In the theoretical space, the way I’m talking about this is a mix between Jerome Bruner and Roland Barthes. Bruner is the inventor of narrative analysis; his famour paper is “Narrative Construction of Reality.” That says things like stories need to be analyzed as stories and can’t be chopped up, you lose something vital. There’s something to them greater than the sum of their individual parts. All texts are hermeneutic. We put meaning into these texts, and other people take their own meaning out of those texts. It’s not a direct brain-to-brain transmission. Its a very active process on both sides. You and I could work through the same book and get very different things from it. The information dissemination model doesn’t account for that, it’s limited in that way.
Bruner also talks about the context of putting things into these artifacts and taking things out of these artifacts, there’s that stated dialogue through artifact that comes with the narration. He talks about community belonging as it relates to collections of narratives. How communities develop these connections of stories, so me and every other American kid my age would have things like Power Rangers or Pokemon and they are these stories that are part of our vocabulary. A Japanese kid my age would have an overlapping but slightly different set. My parents share part of my culture but grew up in a different time, so they have an overlapping but different set entirely. One of the ways we have this community belonging thing is sharing the same sets of narratives. We can refer to them, reference our norms and values and practices through this collection of stories. How our individual lives are personal narratives, these are also narratives in this connection. We make sense of that through finding ways to place them in that collection in relation to all the other stories in that collection. So I can see my childhood and say “it’s like when the Pink Power Ranger did this,” and another kid my age would say “oh, yeah, yeah.”
As part of human engagement, as part of it is learning to speak the spoken language, then there’s the disciplinary language, but there are also the stories. At an even broader level you share the same stories. That’s why at the grad student level they have us read these classic papers, books. Because these are foundational knowledge. That means you’ll have that common reference point. I can say “this is like Friere’s Pedagogy of the Oppressed,” and both of us know exactly what that means. You can make references to the same story, in this case Fiere’s story.
And this is where Barthes comes in. Barthes is a poststructuralist writer and talks about readerly versus writerly texts. Those words refer to the role of the reader. Writerly texts are very hermeneutically rich text, where as you’re reading you’re sort of co-constructing that meaning with the author, very active. A lot of self-help workbooks will have things like “can you think of an example in your life when…” or — it’s very much a book that’s only complete when I put my own words into it. Or like a workbook as opposed to a textbook. A readerly text is a text that takes that epistemological view of you are a passive recipient of meaning that the author has put into it. And the meaning the author puts into it is the meaning of the book. And the thing Barthes says is that all texts are actually writerly. Bruner’s version is saying all texts are hermeneutic. So all texts are writerly, all texts can have these very active hermeneutics…. but it’s just some texts pretend to be readerly. They make you forget you have that agency and they make you forget that you can question them and have that hermeneutics of suspicion and that you are also an author as a reader of the text.
If you are only exposed to readerly texts, you never get into coauthoring that collection of narratives. You never become an author in your community of practice. You never really take your own narrative and place it in the context of the rest of them and help modify that central corpus. It’s more like, “Oh, these classic authors are great, but they’re magical and I can never aspire to these heights.” As opposed to going “Oh, I can do that too, right now!”
Faculty development currently consists of throwing a lot of readerly texts at people. I want to broaden it to include the idea of making teachers conscious of how they are already writing the narratives of their teaching identities, and helping them recognize and actualize their agency to analyze and edit and shape not only their own stories, but each other’s stories. When we do this, we grow the shared corpus of language that engineering and technology faculty can use to talk about their teaching — a stronger language for their community of practice.
Ileana — a literacy education scholar — pointed out that she sees my methodology as poststructural because the narrator and I are purposefully deconstructing and reconstructing a personal story in the moment whenever we engage. She pointed out that I needed to be descriptive of my own story and positionality, because my history and perspective and story naturally gets enmeshed with that of the narrators. I groaned and said I probably could write a couple paragraphs on that, yes, yes, you’re right.
She agreed that what I was doing wasn’t “interviewing,” and suggested an alternate noun phrase for my data sources: “dialogical narrative episodes.” (“Episode of narrative construction” or “episode of narrative experience” are possible alternate noun phrases; she suggested staying away from “storytelling” for reasons I’m still puzzling out.) “Dialogical” was a new word for me: it means “going from one person to another.” (Roughly. I’ll need to look up a better definition.) This term allows me to incorporate the editing process into my data source, whereas “interview” would need to be distinct from the grounded indigenous coding.
Stephen recently asked for advice on how I’d teach programming using Python to fellow academics. Specifically, an English major and a Materials Science (Matsci) researcher — smart people deeply into their own disciplines… who happen to not have had programming experience. Here’s what I said; if you have more comments/advice for Stephen, leave them in the comments.
Showing them the fundamentals in a common way, then diverging into their disciplinary interests, sounds about right. If they’re both completely new to programming, you’ll have a little while before they really branch off.
If you want a common starter text, Think Python may be good for this specific case. Just skip the sections related to graphics (Turtle at the start, Tkinter at the end). I also enjoy (and under different circumstances, would recommend) Learn Python The Hard Way and Dive Into Python, but the former is more geared towards web development and the latter is for people who have programmed in another language before.
For your English major friend, one of the exercises gets you into Markov analysis/generation of texts. This should be a fun place to play with poetry. The Markov Bible is a hilarious example of the sorts of things that can be done, and people have written entire books on text processing with Python.
For your Matsci friend, who you said was interested in data analysis, Allen’s next book starts playing with things like census data — that exercise should start being doable around the same time as the Markov analysis, because they’re both fundamentally about “read from a file, do math, spit out to a file.” They’ll probably want to jump off into SciPy at some point to make plots and crunch more complex data.
For a fun change of pace and/or an intro session and/or while people are installing software on their machines, you can try CodingBat exercises. The Boston Python Workshop’s exercises for Friday and Saturday are a tiny manageable collection. This also gets them into the habit of test-driven development (which is also a good approach to curriculum design, although I need a new name for it because Test Driven Learning is already taken). CodingBat problems are very basic, so this only applies for the first few sessions before it’ll get too easy for them.
I would structure your learning sessions primarily as pair programming time. They’ll learn from each other’s approaches, debug/unstick each other naturally, and learn how to cleanly structure and communicate about code. If you have them pair-program their way through the book, you can spend a chunk of your time writing your own dissertation while being on-call, as in passive pair programming.
Whatever you do, teach them fundamentals of software engineering as you go along — commenting, testing, and version control specifically. Software Carpentry has good resources for this sort of thing. With the same rationale, take the first session and have them make and use github accounts while working through their starter exercises for the sake of everybody’s sanity. This gets them in the habit of working in public, which is important if you ever want to…
…introduce them to a broader community of programmers, which you should do as quickly as possible. Whether that’s “hey folks, join this Python mailing list” or “let’s go to a local Python meetup and get you asking questions — I’ll go to your first one with you and model this introducing-self and question-asking thing in programming-land” or whatever you have around in your neck of the woods, it’s basically the act of teaching them to learn from people other than you. And then… they’re off, and they don’t need you any more to keep learning and doing what they want to do. It’s a great job, making ourselves obsolete.
Hope this helps, and good luck.
Stacey asked me for a refresher on Test Driven Learning for Hacker School, so here we go.
Test Driven Learning is a software engineer’s articulation of Wiggin & McTighe’s Understanding by Design framework after being strongly influenced by Ruth Streveler’s ”Curriculum, Assessment, and Pedagogy” course at Purdue.
Many software engineers are familiar with the process of Test Driven Development (TDD).
- Decide on the goal.
- Write the test (“how will you know if it’s working, exactly?”)
- Make the code pass the test.
Test Driven Learning (TDL) simply says “it’s the same thing… for your brainnnnn!”
- Decide on the goal (“learning objective”).
- Design the assessment (“how will you know if you’ve learned it, exactly?”)
- Go through the experiences/etc. you need to pass your assessment.
That’s it. Really.
Step 2 is the part most people flub. With software tests, you have a compiler/interpreter forcing you to be precise. With learning assessments, you don’t — but you need exactly the same level of precision and external execution. If you asked a group of external people (with appropriate expertise) whether you’d passed the assessment you set for yourself, there should be no disagreement. If there’s disagreement, your assessment needs a redesign.
A good assessment is a goal that helps you stretch and reach it; sometimes it encourages you to do more. But sometimes it also gives you permission to stop doing stuff – you’ve written the code, you’ve delivered the talk, they met the criteria you set — and now you’re done. You can absolutely set a new goal up and keep on learning. However, you’re no longer allowed to say you Haven’t Learned X, because you’ve just proven that you have.
Here are some rough-draft quality TDL assessments you might start with, and a bit of how you might improve them.
I will learn Python. (What does that even mean? How will you know you’ve learned it?) I will complete and pass any 50 CodingBat exercises in Python. (But I could do that by solving 50 really easy problems.) Only 10 of those 50 problems can be warm-ups, and at least 20 of them must be Medium difficulty or greater. (Does it matter if you get help with the problems?) Nope, I can get as much help as I want from anyone, as long as I could explain the final solution to another programmer.
I will get better at testing. (What do you mean by “testing”?) I write a lot of code, but I’ve never written tests for any of it. I hear the nose framework is nice. (What do you mean by “better”?) Well, I’ve never written a test at all, so even going from 0 to 1 would be an improvement. I could use nose to write tests for 3 different pieces of working code I’ve already written. (Do these need to be big or exhaustive tests?) Nope, I’m just trying to learn what writing tests is like, not get full test coverage on my code… at least not yet. Even if I write a 3-line test that checks out one minor function, it counts as one of the 3 tests. (What does it mean for a test to be “done”?) When someone else can check out and successfully run my code and my test suite on their computer without needing to modify either bit of code, it’s done.
I will understand how databases work. (By “understand,” do you mean the mathematical theory behind their design? Or how to actually implement and use one?) Oh geez, the latter. I don’t care about the math so long as I know how to interface with a database. Any sort of database. (So you need to make a demo.) Yeah, but that’s not enough; I can blindly type in code from a tutorial, but that doesn’t mean I’d be able to field questions on it. (What could you do about that?) I will give a presentation to fellow Hacker Schoolers demonstrating a small database interaction in code I have written. That’s an easy binary to check; either I’ve given the presentation or I haven’t.
Thoughts, questions, ideas? Got your own example TDL assessment (at any stage of revision), or ways to improve the ones above? Holler in the comments.