Aug 31

Case Method — classroom catalysts, from story to discourse and back again

Dis′ • course
1. spoken or written language, including literary works; the four traditionally classified modes of discourse are description, exposition, narration, and persuasion.
2. a form of discourse analysis, focusing on power relationships in society as expressed through language and practices.

One of the more interesting graduate courses I ever took, by way of both content and teaching style, was Current Policy Issues in Ontario Schooling. It was designed by the late R. Patrick Solomon but due to his tragic and untimely demise from cancer it was taught by his Brave New Teachers co-author John P. Portelli, at York University in the winter of 2010. Every class began using another of John’s books, What To Do? Case Studies for Educators 3d. Edition. It’s a collection of true stories from the classroom, either with an unknown outcome, or maybe a controversial but open ended one. Our job was to place ourselves in the classroom and reflect on what we might do in the same situation. Each “study” comes with 2 discussion questions at the end. We had no problem contributing additional ones of our own, and there are appendices containing further reading and resources for critical inquiry.

Case method

…curriculum reform focused on the effective negotiation of learning experiences between students and teachers and centred on the former’s concerns affords the opportunity for students to reengage in a creative, meaningful education where they are co-constructors of knowledge with their teachers in a genuine learning organisation.
O’Grady, O’ Reilly, Portelli, and Beal (2014)

Image of the book cover
Case method is the use of case studies as catalysts for conversation. The case poses a dilemma or problem, and the group must collaborate finding solutions. There’s ample evidence they work in many different areas, for many different age groups. With the right preparation and delivery they can “serve as springboards” that “engage students and faculty in collaborative problem posing, problem solving, and persuasion.” In other words, discourse.

“Case method teaching brings together three components: an appropriate case, students who are prepared to engage with the case material in a discussion, and an instructor who knows the case, has a plan for the discussion and is ready to deal with the unexpected.” (more). There are two well known approaches (Desiraju and Gopinath, 2001), the traditional Harvard Case Model (HCM) and an alternative proposed in the early 70s in response to criticism of HCM, the  McAleer Interactive Case Analysis (MICA) method (quoting McAleer, 1976; McAleer & Hale, 1992; Siciliano & McAleer, 1997). Desiraju and Gopinath conclude, “…students in the MICA method section reported better preparation and participation benefits as compared with students in the HCM method. In addition, students in the MICA class were better able to identify the main focus of the cases discussed, showing that they were able to better recall the content issues involved in the case discussion. Thus, on both counts of content and process, the MICA method appears superior” (2001, p. 406), influencing my current proposal, which follows.

I’ve written earlier about literal and extended meanings of discourse, and at how it can be at once a tool or model that describes, defines, and delineates narrative, and the narrative itself (see Foucault, or Derrida, for example). As we’ve heard, “…students develop skills, abilities, knowledge, and approaches, as well practice and discipline in becoming more reflective and creative. Most of the major theories of learning developed over the years all point toward effective learning being rooted in experience through the use of collaborative inquiry, discovery, reflection, and critique” (Booth, Bowie, Jordan & Rippin, 2000).

Children and Issues of Fairness

Our lives are “a series of unrelenting power struggles” (Buckmire, 2014, p. 0). Shaw, DeScioli, and Olson (2012) expose an “…inherent tension between favoritism and fairness” leading to “two related questions about children’s developing social behavior. First, how do children make allocation decisions when favoritism and fairness conflict? Second, how do children judge other people’s decisions about tradeoffs between favoritism and fairness” (p. 737)? I propose that cases relating to favoritism and fairness be used within a case method framing to instigate classroom discussion.

“There are few discussions of case teaching in the context of increasing student diversity or numbers, or of the use of the method on undergraduate programmes generally,” say Booth, Bowie, Jordan & Rippin (2000, p. 64), and probably fewer still that study its use with children and adolescents. This presents opportunities for field work and projects that blend other exciting developments, such as Maker Education (“…a unique combination of artistry, circuitry, and old-fashioned craftsmanship…”), to situate learners in collaborative inquiry and project-based settings that may develop and challenge their critical thinking in truly transformative ways. 

Where to obtain content

If your interest is fairness and you’re looking for stories to spark conversations there are undoubtedly many sources, and I hope you’ll add your own suggestions in the comments. In the meantime, I invite you to take a look at the Ontario Human Rights Commission’s Teaching Human Rights in Ontario: A Guide for Ontario Schools, and the case studies available within. As it’s a public document, provided by the Government of Ontario, you’re free to do with it as you please, as long as you credit the source and you don’t remove the Queen’s Printer’s copyright.

These are actual cases, that set the precedent, that made the laws, that inform the Ontario Human Rights Code. The Commission says “The case studies in the Students’ handouts section can be approached in two ways.” Really? …only two? It’s clear Ontario’s students can imagine at least 3 general categories of 21st Century multi-modal literacy students themselves identify as meaningful: games, apps, and video.

All of these can take many forms, and if we educators lack the imagination or experience to think in so many forms, students certainly don’t. Take a look at what students put together with Mozilla Webmaker and the Canada Privacy Commission last year.

I’m volunteering to help

In the coming weeks I’ll provide tentative lesson plans for a few of my own ideas. I’ll work with any teacher anywhere (via the comments section) to customize the plan(s) for your own learning situation. They include…

  1. #HourOfCode (or 2 or 3) building a web app, with teacher and class versions so you can learn together
  2. More web app stuff using online resources from THRiO (Human Rights Temperature and Glossary)
  3. Digital Storytelling using green screen and 3d techniques (this video goes with OHRC Case Study #9, “Tawney” the BC Firefighter… do you have a student that might be called “too short?” Do you think the person is invalid, or the standard?).
  4. More digital storytelling and games using such digital literacy supporting as Twine, Vine and ;

I’m ramping up to share these ideas and techniques in detail. Please watch this space!

§

Reference, further reading

Boehrer, John and Marty Linsky, “Teaching with Cases: Learning to Question,” in M.D. Svinicki (ed.), The Changing Face of College Teaching, New Directions for Teaching and Learning, no. 42 (San Francisco, CA: Jossey-Bass, 1990), p. 42.

Booth, Charles; Bowie, Stuart; Jordan, Judith; Rippin, Ann (2000), The Use of the Case Method in Large and Diverse Undergraduate Business Programmes: Problems and Issues, The International Journal of Management Education

Buckmire, Mark J. (2014), Human Fairness: An Evolutionary Approach,

Crone, E. A. (2013), Considerations of Fairness in the Adolescent Brain. Child Development Perspectives, 7: 97–103.

Desiraju, Ramarao and Gopinath, C. (2001), Encouraging Participation in Case Discussions: A Comparison of the Mica and the Harvard Case Methods, Journal of Management Education 2001 25: 394, pp. 394-408.

Foucault, M. (1990) The History of Sexuality Vol. 1: An Introduction New York: Vintage.

Minks, Larry C. (1998), The Comprehensive Case Study Method: Insights Into The Course Journey,

McAleer, G. (1976). Listening as away to teach marketing policy. In H. Nash & D. Robin, (Eds. ), Proceedings: Southern marketing association 1976 conference (pp. 106-108). Atlanta, GA: Southern Marketing Association and Mississippi State University.

McAleer, G. M. , & Hale, J. R. (1992, October). Want to increase student participation in marketing case courses? Try the MICA method. Paper presented at the American Marketing Association Annual Meeting, Chicago, IL.

O’Grady, Emmanuel; O’ Reilly, John; Portelli, John P.; Beal, Candy (2014) Putting the Learner into the Curriculum, not the Curriculum into the Learner: A Case for Negotiated Integrated Curriculum, International Journal of Pedagogical Innovations, 2, No. 2 (July 2014) [Read online]

Shaw, Alex; DeScioli, Peter; and Olson, Kristina R. (2012), Fairness versus favoritism in children, Evolution and Human Behavior 33 (2012) 736–745.

Siciliano, J. , & McAleer, G. M. (1997). Increasing student participation in case discussions: Using the MICA method in strategic management courses. Journal of Management Education, 21(2), 209-220.

Recommended

How the Maker Movement Is Moving Into Classrooms – Vicki Davis, July 18, 2014 [Blog post]

Government of Ontario, Ministry of Education (2007-2015), Capacity Building Series

Government of Ontario, Ontario Human Rights Commission (2013), Teaching Human Rights in Ontario: A Guide for Ontario Schools also available as PDF

Student Voice in Ontario Schools SpeakUp Video

  1. Full disclosure: I work there. Neither this idea, nor any activity that may result from it, has anything to do with my position or duties, and this is not sanctioned or promoted by the organization, and I do not stand to benefit financially as a result of outside interest. I will benefit in self satisfaction, and perhaps in other ways no one can predict.
Mar 29

Instant gratification as intrinsic motivation.

“I learned HTML CSS and JavaScript exactly the same way I learned guitar—by stealing other people licks.” chord diagram, E major, first position.
I’ve said this a few times, but I’m coming to believe my point is largely being missed. I think if the point’s worth anything at all it’s incumbent on me—the communicator—to give it another try.

Continue reading

Mar 13

On Webmasters and PluginMonkeys (reprise)

I’m very fond of saying I first learned web design—HTML, JavaScript and CSS—the same way I learned guitar: by “stealing” other people’s best licks. When I took music in Pennsylvania public schools in the 60s we had an itinerant music teacher once or twice each week, and classroom teacher-led music once or twice more. We learned every good boy deserves fudge and we sang songs “by note,” and songs “by rote.” We were taught musicianship. But there was never any suggestion the goal was for any of us to become professional musicians. I’ve been thinking about that ever since I learned “entrepreneurship” is receiving top billing local curriculum as a universal 21st Century competency (e.g., C21, P21). Not that there’s anything wrong with that!

Informal learning is valid and important

Graphic, reads I learned html same way as guitar, by stealing other people's licks

Part 1 of this series was written over a year ago when I first heard the man I considered my Jimmy Page of the JavaScript world, Douglas Crocker, refer to my kind dismissively as “Webmasters…Generally they weren’t very smart.” Dion Almaer suggested the term “jQuery Plugin Monkeys,” to much laughter. To summarize, I’ve embraced the term in much the way U.S. Democrats embraced “Obamacare.” To continue, then as now I’ve always approached the WWW as an educator asking, “How can this help me share what I know?” I learned, informally, what I needed to know, when I needed to know it. Dedicated CompSci folks always did much more, and way cooler stuff in much less time (and their stuff scales!). Yet I think knowing their language gives my ideas a better chance of being realized. Continue reading

Feb 19

Design Learning, Learning Design

In 1981 “cognitive apprenticeship” was a nascent framework proposed by early researchers with an eye on computer-assisted design of computer-enhanced learning environments that are “situated.” This means “authentic”

The research on the tailors did not result immediately or even very soon in an alternative to the theory for which it offered a critique. It did impel me to go looking for ways to conceptualize learning differently, encouraged by those three interconnected transformations that resulted from the project: (1) a reversal of the polar values assumed to reflect differing educational power for schooling and “other” forms of education; (2) a reversal in perspective so that the vital focus of research on learning shifted from transmitters, teachers or care givers, to learners; and (3) a view of learning as socially situated activity. This work couldn’t replace existing theories, but it provided incentives to ask new questions about learning.
—Jean Lave (1996:155)

activities taking place in the context of, and with the full support of, a “community of practice.” In general the other participants are—for the time being—more proficient than the learner at the given craft or activity. Learners and practitioners interact in a wide variety of ways, often over considerable time, that can be characterized as strategies or phases—observing and practising, receiving scaffolded (progressively adapted by the practitioners) coaching until working independently. The overly-theoretical sounding name has mostly gone by the wayside, but the concepts and application have matured. Still employing ethnography to gather thick qualitative descriptions, there’s now stronger input from the fields of design and architecture. The new name is “Design Learning.” I see parallels in research into tool redesign conducted at Open University NE and Open University UK.

“computers … can make the invisible visible … they can make tacit knowledge explicit … to the degree that we can develop good process models of expert performance, we can embed these in technology, where they can be observed over and over for different details” (p. 125).
Allan Collins, 1991:125

In 1992 Allan Collins and Ann Brown built on their earlier research (e.g., Collins, Brown, and Newman, 1989; Collins, Brown, Holum, Duguid, 1989; Collins, Brown, Holum, 1991) and conducted what they dubbed design experiments.; “Design experiments were developed as a way to carry out formative research to test and refine educational designs based on principles derived from prior research,” i.e., cognitive apprenticeship. There is a direct line from the Cognitive Apprenticeship Framework to Design Learning, (Collins et al., 2004) and recent experiments in the redesign of learning design tools (Conole et al., 2007) (LAMS, 2008) (OULDI-JISC, 2012).

They built on the work of Herbert Simon (1969) who regarded the “design sciences,” such as architecture, engineering, computer science, medicine, and education, as the “sciences of the artificial,” that have been neglected because of the lack of rigorous theories. John Seely Brown and and David Kearns co-founded the Institute for Research on Learning (IRL) in 1986 and adopted ethnography—the description of peoples’ customs and cultures—as its main research method. The Institute forged new understandings of how individuals enter and join learning communities, achieve acceptance, then themselves grow and evolve as vessels of community knowledge. As they do so they often increase interaction and engagement—i.e., collaboration—with secondary networks outside their primary one (Lave & Wenger, 1991) (Lave, 1996). Does it sound just a bit like joining Twitter?

Ethnography attempts “thick descriptions” in the style of Geertz. One of the more fundamental truths of pedagogy spotlighted by this approach is its “messy” and iterative nature. The motto of instructors and learners alike may be “If at first you don’t succeed, try, try again,” but it’s always with an eye toward improving on previous attempts.

Case studies are touted by a wide assortment of education stakeholders. They are used up front in planning, as course content, or as summary program assessment. A good case study can be a thick, descriptive ethnography of a situation.

By studying a design in practice with an eye toward progressive refinement, it is possible to develop more robust designs over time. […] Ethnography provides qualitative methods for looking carefully at how a design plays out in practice, and how social and contextual variables interact with cognitive variables. […] Design experiments are contextualized in educational settings, but with a focus on generalizing from those settings to guide the design process”
(Collins, Joseph, & Bielaczyc, 2004).

The Open University Learning Design Initiative have been working across several OU faculties and with 4 other universities to pilot curriculum design activities, identify and develop tools, and otherwise contribute to academic and practitioner research. If you’ve followed my Tweets or blog the past several weeks you’ve already heard of CompendiumLD. Follow the link to see more tools and other output from this prolific group.

All told these and associated authors (see also Conole, 2007, Conole et al., 2008) consulted close to 50 case studies, but they did not fall into a common pitfall of well-read academics: the automatic presumption of expertise. On the contrary, they embrace the messiness as evidence of authenticity and opportunity for iterative improvement. “The concept of a ‘learning design methodology’ has been integral …however, different readings of the term could, and were, made. …resisting a single definition has enabled us to connect more readily with diverse literatures and to orientate resources and tools towards user needs.” (OULDI-JISC, 2012)

I think that’s academic for, “There are no mistakes, only opportunities.” (—Tina Fey?)

Case studies and design experiments allowed these and other researchers to, among other things, map tools and strategies to the six instructional methods of cognitive apprenticeship and to develop a Scaffolding Design Framework to focus its use.

 

§


Reference

Brown, J. S., Collins, A., & Duguid, P. (1989). Situated cognition and the culture of learning. Educational Researcher, 18 (1), 32-41.

Collins, A., Brown, J. S., & Newman, S.E. (1989). Cognitive apprenticeship: Teaching the crafts of reading, writing, and mathematics. In L. B. Resnick (Ed.), Knowing, Learning and Instruction: Essays in Honor of Robert Glaser (pp.453- 494). Hillsdale, NJ: Lawrence Erlbaum Associates.

Collins, Allan; Brown, John Seely; and Holum, Ann (1991). Cognitive apprenticeship: Making thinking visible. American Educator: The Professional Journal of the American Federation of Teachers, 15(3), 6-11, 38-46, [reprint available on line at http://elc.fhda.edu/transform/resources/collins_brown_holum_1991.pdf (PDF) accessed 2012-09-17] or from The 21st Century Learning Initiative http://www.21learn.org/archive/cognitive-apprenticeship-making-thinking-visible/ (HTML), accessed 2013-02-19.

Collins, Allan; Joseph, Diana and Bielaczyc, Katerine (2004). Design Research: Theoretical and Methodological Issues, The Journal of the Learning Sciences, 13(1), 15-42.

Conole, G. (2007), ‘Describing learning activities: tools and resources to guide practice’ in Rethinking pedagogy for a digital age, H. Beetham and R. Sharpe (Eds), Oxford: RoutledgeFalmer.

Conole, G. (2008), ‘Capturing practice: the role of mediating artefacts in learning design’, in L. Lockyer, S. Bennett, S. Agostinho, and B. Harper (Eds), Handbook of Research on Learning Design and Learning Objects: Issues, Applications and Technologies.

Ghefaili, Aziz (2003). Cognitive Apprenticeship, Technology, and the Contextualization of Learning Environments, Journal of Educational Computing, Design & Online learning Volume 4, Fall, pp 1-27.

Geertz, Clifford (1973) Thick Description: Toward an Interpretive Theory of Culture, pp. 3-30, in The Interpretation of Cultures: Selected Essays, NY: Basic Books, 470 pages.

OULDI-JISC (2012) Cross, Simon; Galley, Rebecca; Brasher, Andrew & Weller, Martin, Final Project Report of the OULDI-JISC Project: Challenge and Change in Curriculum Design Process, Communities, Visualisation and Practice, Institute of Educational Technology The Open University, July 2012, www.jisc.ac.uk/media/documents/programmes/curriculumdesign/OULDI_Final_Report_instit%20story.pdf.

Simon, H. A. (1969) The sciences of the artificial. Cambridge, MA: MIT Press.

Nov 04

Cognitive Apprenticeship and the 21st Century Web Application

In my previous post I (literally) talked about a long historical need to provide more information than a written document can physically hold. I pointed out how footnotes have accomplished this, how these and such familiar devices as front-page headlines and teasers have evolved, and continue to evolve in the modern web-browser. I’m doing this to demonstrate how Web browsers and the three main (and open) technologies—HTML, CSS and JavaScript—can support Cognitive Apprenticeship’s goal of “making thinking visible.” Ultimately I hope to encourage classroom teachers to leverage this generation’s immersion in technology in new ways that lead not only to their own empowerment but that of all who become involved in 21st century learning environments that can stretch past boundaries of space and time.

I began to show some actual code1 [to see my “footnotes,” press the number; to close them, click or press Esc] which creates a style that can be applied at the paragraph or section level to assign an icon signalling its content or relevance to the document. I used narration, in the form of recorded audio, with pictures timed to coincide with words—a concept that is the basis of almost all elearning software, TV advertising, documentary film, even political propaganda—to explain and demonstrate what I was thinking about the topic and the technology. If you’ve followed this Cognitive Apprenticeship from the beginning I hope you can start to see now how I’ve intentionally set out to contrast a traditional academic style with an increasingly Web-enhanced one.

In so doing I used technology to solve some problems—and predictably introduced several more, demonstrating another potential technology holds, one I suspect we all have experienced. Software often contains bugs; preparing a lesson plan using pen and paper, or presenting using a comfortable and familiar paradigm such as a slide show with handouts one often feels more in control. It’s often too easy for the technology to become the focus, and not in a good way. But while many classroom teachers tell me anecdotes that conclude with a student fixing something, far fewer tell me they’ve learned to embrace that as a strategy, and are willing to jump in the deep end head first, with ample faith that together they’ll tackle whatever obstacles arise. It’s my personal goal to foster that confidence and empower educators to create such environments. Indeed, I feel there’s a certain urgency, not just for individual teachers or the profession, but for the future of public education itself.

Ursula Franklin, in her famous 1989 Massey Series lecture, noted the changing role of technology and important ways it was changing the role of technologists, distribution of labour, and the balance of power, while in her view shrinking the public sphere.

The situation in the classroom at the interface between the biosphere and the bitsphere is but one facet of the situation in the workplace within the same realm. In fact, often even the designation of workplace is no longer appropriate. Not only do new technologies, new ways of doing things, eliminate specific tasks and workplaces… but the remaining work is frequently done asynchronously in terms of both time and space.
— Ursula Franklin (1992:172)

Her distinction between what she identified as prescriptive approaches2 versus holistic3 ones led to a concern that not working together in the same space causes “opportunities for social interactions, for social learning and community building [to] disappear.” (Franklin, 1992:172). A neoliberal market model of education is paired with a neoconservative social model that work together to “change people’s understanding of themselves as members of collective groups” (Apple, 2009), a course at odds with public education’s heritage of citizenship-, character-, and democracy-building. An aggressive and well-funded movement is under way that “supports marketisation through its clear preference for incentive systems in which people are motivated by personal, not collective, gain rather than by the encouragement of social altruism. Yet, the tradition of social altruism and collective sensibilities has roots just as deep in our nations, and its expression needs to be expanded, not contracted.” (Apple, 2004; Apple, 2009).

Neither of the above authors in the works cited alludes to what I believe can only be described as a new literacy for the 21st century: fluency in coding and code. At Occupy Wall St. the techies “[built] websites, put out messages, manage[d] the ebb and flow of information about the occupation on the Internet.” (Judd, 2011) A year later “TechOps,” as the New York contingent of web-developing occupiers call themselves, built and maintained the website for the Sept. 17 anniversary events. They put together a whole host of other underlying technical infrastructure… TechOps-built database software sits behind a system to match people who needed a place to stay during the demonstrations with people who had space to offer […and built…] what has become a broad suite of web tools built specifically for Occupy activists. Using their own flavor of WordPress’ multi-site functionality, TechOps can facilitate sites like S17NYC.org and allow individual movement groups to maintain their own web presences themselves.” Those who code may have a special understanding of the saying “free as in beer, but not free as in speech” (Judd, 2012).

Franklin, in 1989, was perhaps just a bit too early to fully anticipate the complex socio-politico-economic forces that would result in Twitter, a commercial start-up, empowering the Arab Spring. But Apple’s 2009 essay describes in full the motives and methods we see manifesting in high-stakes testing and redistribution of public resources to private concerns that are part of many ed “reform” efforts. I believe there’s a need for further research into the roles of social networking within emerging communities of practice, but also its influence on communities of practices’ emerging. In the meantime, code literacy is something that’s fun and beneficial to pursue, which you can leverage within many learning environments to help create the kinds of authentic, situated opportunities for discovery and knowledge construction project- and inquiry-based learning models are touted for. And while you probably don’t have the next Dimitri Gaskin in your class, you almost certainly have more expertise available than you’ve imagine or tapped.

All of the jQuery JavaScript scripts I’ve used so far are my own—and all of them contain flaws that were part of my learning process. Currently my Footnotes script works with this WordPress theme (or any theme that uses <article> elements for posts), I simply hit the HTML tab on my WordPress editor and create a <sup> element of class=”footnote” and down below a numbered (“organized”) list of class <ol class=”footnotes”></ol> and it automatically creates a rollover/keypress on the number. In this version I have to hard code the numbers in the <sup> tags… so if I move a list item or add one in between I have to manually renumber. One of the first tasks for a group could be to improve on that. If a classroom or school has a blog or web page, and they use it for student writing, and they encourage using such common conventions as footnotes, then it might be an intrinsically motivating project to design and implement something that facilitates and modernizes the process in a way students can own.

My footnotes script is part-way to becoming a jQuery plugin. You may or may not know what that is, but I’ll wager you know someone who does. It’s only part-way done because I’m  trying to think more like a programmer so I’m learning about design patterns and building in stages. The Smashing Magazine article in that link contains links to all the information one needs to finish it. In my next and hopefully final instalment I’ll talk about a project I have in mind that I think holds benefits for classroom teachers who are still tentative about technology and/or looking for creative ways to include it, one that demystifies programming and the coding culture, and hopefully creates space in the classroom for activities and knowledge that may already be taking place informally outside, extending access and creating new opportunities.

§


    Notes:

  1. For example, if you provide the path to a 36×36 pixel image representing a rubric or video:
    .bg-rubric {
    background: transparent url(“..path_to/rubric.png”) no-repeat 3px 3px; padding:3px 9px 3px 36px;
    }
    .bg-video {
    background: transparent url(“..path_to/video.png”) no-repeat 3px 3px; padding:3px 9px 3px 36px; }
  2. See for example, Harvard Business School’s aggressively disruptive, top down, market-model for education reform in Christensen et al., 2009
  3. See for example, Harvard Graduate School of Education’s “Beyond the Bake Sale: A Community- Based Relational Approach to Parent Engagement in Schools,” (Warren et al., 2009), PDF available from The Logan Square Neighborhood Association http://bit.ly/nYwbjK accessed 2012-11-03

References

Apple, Michael W. (2004). Ideology and curriculum (3rd ed.). New York: Routledge.

Apple, Michael W. (2006), Understanding and Interrupting Neoliberalism and Neoconservatism in Education, Pedagogies: An International
Journal
, 1:1, 21-26

Christensen, Clayton; Johnson, Curtis W.; Horn, Michael B. (2008), Disrupting Class: How disruptive innovation will change the way the world learns. New York: McGraw Hill, 288 pages.

Judd, Nick (2011). #OWS: Tech-Savvy Occupiers Hope to Open-Source a Movement, http://techpresident.com/blog-entry/ows-tech-savvy-occupiers-hope-open-source-movement, accessed 2012-11-03

Judd, Nick (2012). How Free Software Activists are Hacking Occupy’s Source Code, accessed at http://techpresident.com/news/22867/how-free-software-activists-are-hacking-occupys-source-code 2012-10-23

Osmani, Addy (2011). Essential jQuery Plugin Patterns, http://coding.smashingmagazine.com/2011/10/11/essential-jquery-plugin-patterns/, accessed 2012-11-03

Franklin, Ursula. (1992, rev ed. 1999) The Real World of Technology. (CBC Massey lectures series.) Concord, ON: House of Anansi Press Limited, 206 pages.

Kreiss, Daniel and Tufekci, Zeynep (2012). Occupying the Political: Occupy Wall Street, Collective Action, and the Rediscovery of Pragmatic Politics (September 17, 2012). Cultural Studies – Critical Methodologies, 13:3 (Forthcoming). Available at SSRN: http://ssrn.com/abstract=2147711

Warren, Mark R.; Hong, Soo; Rubin Leung, Carolyn; Uy, Phitsamay Sychitkokhong (2009). Beyond the Bake Sale: A Community- Based Relational Approach to Parent Engagement in Schools, Teachers College Record Volume 111, Number 9, September 2009, pp. 2209–2254

Sep 02

Audacity files are just XML documents, sooo…

I know it’s unlikely this particular solution—in which I use Audacity’s Labels Track interface to help me auto-generate HTML code I find tedious to write manually—will receive many “Wow! Just what I was looking for!” comments. It’s more about connecting dots. XML is like the universal translator on StarTrek, so if you have data in XML format it means you can easily get at that data and do anything else with it your heart desires. While I have access to leading proprietary audio applications that are appropriate for recording music, I use Audacity for all elearning narrations and voice-overs—the fact that it generates a valid XML document containing all the information about a project is one of the reasons.

I think the first time I intentionally opened a binary file with a text editor was probably using Notepad on Windows 3.0. “Gibberish” or “garbage characters” are ways most people I knew described what they saw there. But my curiosity to look further had the result that later, as a help desk assistant in the computer lab, I used the technique with one plain text editor or another to identify what program a file had been created with or to recover the essential text from a document that had become corrupted. Opening files with text editors was something that started as a curiosity but occasionally yielded other fruit… it became something I just do. By the time I first opened an Audacity *.aup file to find it contains not binary “gibberish” but well-formed XML I had received a training course in XML and had used XSLT to write a library catalogue management tool that was in use at the same lab, so I knew the discovery would come in handy.

When it was decided a 53 slide module I made was to be translated into 13 additional languages I found two very helpful applications for this bit of knowledge. The first, because I keep my projects in a MySQL database and identify every item on the storyboard by module, section, subsection, and slide, is that once the translations were loaded I was able to loop through a query and create a blank, properly tagged and labelled Audacity .aup file for every slide. The second is much more fun, so I’ll get the first one out of the way… I’m best with ColdFusion (CFML = ColdFusion Markup Language), but you can do this with PHP or any other language, just include or require the right libraries for parsing XML.

Create a new project in Audacity and save it as blank_project.aup. Open the file in any plain text editor (I like EditPadLite) What you do next will vary depending on what application server you’re using and how , but in ColdFusion my first go at it was pretty lazy. I put the entire file inside a cfsavecontent block, looped through a database query to get my information, plugged it in, and write it to the server’s hard drive. Of course that’s most practical if it’s also your laptop or desktop’s hard drive—I’ve done this with both Adobe’s wonderful (and free) ColdFusion developer version, and just recently with Railo, the open source CFML engine.(for PHP I’d use XAMPP, EZPHP or similar).

Your SQL will be your own, but it probably still helps to see mine…

SELECT * FROM allslides
 WHERE module = 'thisMod' AND lang = 'th-is'
 ORDER BY module_id, section_id, subsection_id, slide_id;

Loop through the query. n.b.: in XML it’s crucial to have no characters of any kind before the <?xml version="1.0" standalone="no" ?>When I said lazy, I meant it… to avoid trimming I just put it right after the opening cfsavecontent tag without a space or hard return (but if my source formatter tries to make it prettier I have to put it back). The variable “descript,” by the way, is a short human readable description I keep in the database so I don’t have to remember what slide hr101-B30 is, it comes out hr101-B30-keyconcepts. #SPEECH# is the word for “speech” in whatever language.

<cfloop query="myQuery"><!--- create a unique name for project,
                              file and data directory --->
<cfset thisProjectId = "#module_id#-#section_id##subsection_id##slide_id#-#descript#">
<!--- store the file in a variable --->
 <cfsavecontent variable="aup_file_contents"><?xml version="1.0" standalone="no" ?>
<!DOCTYPE project PUBLIC "-//audacityproject-1.3.0//DTD//EN"
 "http://audacity.sourceforge.net/xml/audacityproject-1.3.0.dtd" >
<project xmlns="http://audacity.sourceforge.net/xml/" projname="#thisProjectId#_data"
 version="1.3.0" audacityversion="2.0.1" sel0="0.0000000000" sel1="0.0000000000"
 vpos="0" h="0.0000000000" zoom="86.1328125000" rate="44100.0">
    <tags><!--- Replace #variables# with data from database --->
      <tag name="GENRE" value="#SPEECH#"/>
      <tag name="ARTIST" value="#MY_ORG#"/>
      <tag name="TRACKNUMBER" value="#currentRow#"/>
      <tag name="TITLE" value="#SECTION_TITLE# #SUBSECTION_TITLE# #SLIDE_TITLE# "/>
      <tag name="YEAR" value="#year(now())#"/>
      <tag name="ALBUM" value="#MODULE_TITLE#"/>
      <tag name="COMMENTS" value="(C) #year(now())#"/>
    </tags>
</project>
</cfsavecontent>
<!--- to save space, try/catch error-handling not shown --->
<cffile action="write" file="#DRIVE:\path\to\#thisProjectId#.aup"
        output="#aup_file_contents#">
<cfdirectory action="create" directory="DRIVE:\path\to\#thisProjectId#_data">
</cfloop>

That writes 53 files and creates 53 directories in about 3 seconds, well under a minute for all 13 languages if I place this loop in a loop of the languages. It saves me a lot of time.

My jSyncWithMedia plugin was a learning exercise for me, and I learned a lot. With jQuery it was easy for me to attach an “event-listener” to an HTML5 audio or video element’s timeupdate event, and create callbacks to change classes or run simple css animations depending on currentTime, even to enhance the display to show 1/10ths of seconds and get my timings more precise. But I knew all along no rational human would go through the tedious job of syncing all those items. It needs an interface, and while ideally that would be in JavaScript and built into the plugin—and perhaps one day it will be—the knowledge that an .aup is really just another a .xml brings out the laziness in me. You see, Audacity already has the exact interface I need… it’s the Labels track. I figure why not just borrow it?

The image shows the narration for a guitar lesson I’m doing in my own jSyncWithMedia-Alpha-1.0 plugin just because I want to. On the track labels I supply key:value pairs, where the key is always a valid html element (the “off:” key is ignored, but serves as a visual aid).

Showing Audacity's Labels track, spanning sections of audio, with values filled in

Audacity’s Labels track, spanning sections of audio, with values filled in that declare an element and its content.

When you add a label track and labels in Audacity you add <labeltrack> and <label></label> elements to the XML structure, with attributes for title, start time t and end time t1.

    <labeltrack name="Label Track" numlabels="11" height="253" minimized="0">
        <label t="1.69726544" t1="11.83946136" title="li:woodshed"/>
        <label t="11.92225480" t1="27.32183391" title="li:busting"/>
        <label t="20.79346939" t1="62.46764754" title="li:turntable"/>
        <label t="34.31787926" t1="43.54934739" title="li:changes the pitch"/>
        <label t="50.00723540" t1="62.46764754" title="a:audacity.soundforge.net"/>
        <label t="53.85713018" t1="62.50904425" title="img:audacity_logo.png"/>
        <label t="62.46764754" t1="62.55044097" title="off:ALL"/>
        <label t="76.70811855" t1="91.03138299" title="img:copy-paste.png"/>
        <label t="91.11417643" t1="109.90828642" title="li:copy menu item"/>
        <label t="110.15666673" t1="114.79309915" title="li:easily practice"/>
        <label t="114.79309915" t1="123.81758369"
               title="li:Choose File-&gt;Save Project As..."/>
    </labeltrack>

That’s all I need to create all the code to put my syncItems in a <div id=”jSWM”></div> and run my plugin on it to create a presentation.

Here’s the CFML

<cffile action="read" file="#request.pathToXml#\bust_a_solo.aup" variable="myFile">
<cfscript>
    // a debug tool
    dumpIt = request.dumpIt; // default request.dumpIt;

    // validate audacity
    scndLine = listGetAt(myFile,2,chr(10));
    isAudacityFile = REFind('^<!DOCTYPE project PUBLIC "-//audacityproject', scndLine );

    // Initialize strings to hold list and image content.
    contentSyncItemsList = '';
    contentImgDiv = '';

    // a function to display html on the page
    public string function printHTML( html ){
        var theHtml = arguments.html;
        var theHtmlFormatted = replaceList(theHtml,'<,>','&lt;,&gt;');
        return theHtmlFormatted;
    }

    // a function because I'm anal about pluralization'
    public string function pluralizeOn(required numeric n, boolean endsInY="false" ){
        var number = arguments.n;
        var y = arguments.endsInY;
        var plural = '';
        if(not number is 1) {
            plural = IIf( y, DE('ies'), DE('s') );
        } else  {
            plural = IIf( y, DE('y'), DE('') );
        }
        return plural;
    }
</cfscript>
<cfif isAudacityFile>
<cfscript>
 myXML = xmlParse(myFile);
 myLabels = xmlSearch(myXML, "//*[name()='label']");  
 myNamespace = "jswm"; // ohrc etc.
 n = arrayLen(myLabels);
 public string function getWord(required numeric index)  {
   return  myLabels[index].XmlAttributes['title'];
 };
 public string function getOnTime(required numeric index)  {
   return  numberFormat(myLabels[index].XmlAttributes['t'],'9.9');
 };
 public string function getOffTime(required numeric index)  {
   return  numberFormat(myLabels[index].XmlAttributes['t1'],'9.9');
 };
 elements = structNew();
</cfscript>
<cfoutput>
<h3>There are #n# labels in the Audacity file     .</h3>
<cfloop from="1" to="#n#" index="i">
<cfscript> // get the key:value pair that describes the item, then split into key and value
    thisItem = getWord(i);
    thisItemType = listFirst(thisItem,":");
    thisItemValue = listLast(thisItem,":");
    elements.elementType[i] = thisItemType; // FTR, I'm not yet using these 4 structures
    elements.elementContent[i] = thisItemValue; //  
    elements.elementOn[i] = getOnTime(i); //
    elements.elementOff[i] = getOffTime(i); //
    switch (thisItemType){ // format this into the HTML used by jSyncWithMedia
         case "a" : // NOTE: I BROKE VARIABLES ACROSS LINES to fit
          elements[i] = '<li data-#myNamespace#-on="#getOnTime(i)#"
           data-#myNamespace#-off="#getOffTime(i)#"><#thisItemType# 
           href="#thisItemValue#">#thisItemValue#</#thisItemType#></li>';
         break;
         case "img" :  // NOTE: I BROKE VARIABLES ACROSS LINES to fit
          elements[i] = '<#thisItemType# data-#myNamespace#-on="#getOnTime(i)#" 
          data-#myNamespace#-off="#getOffTime(i)#" 
          src="#request.pathToImgFolder##thisItemValue#" />';
         break;
         case "off" :
          elements[i] = 'offList="#thisItemValue#"';
         break;
         default: // li  // NOTE: I BROKE VARIABLES ACROSS LINES to fit
          elements[i] = '<#thisItemType# data-#myNamespace#-on="#getOnTime(i)#" 
          data-#myNamespace#-off="#getOffTime(i)#">#thisItemValue#</#thisItemType#>';
         break;
    }

</cfscript>
<cfif not thisItemType is "off">
<p><code>#thisItemType#</code> element "#thisItemValue#" shown at #getOnTime(i)#, 
           off at #getOffTime(i)# <br>
   </p><cfelseif thisItemType is "off"><!--- OFF post-processed here
                         Pass 'ALL' or comma-list of ordinal element indeces    --->
<cfif thisItemValue is 'ALL'><!--- loop through everything  
           // NOTE: I BROKE VARIABLES ACROSS LINES to fit  --->
<cfloop from="1" to="#i#" index="x">
    <cfset elements[x] = replace(elements[x],'data-#myNamespace#-off="99"',
              'data-#myNamespace#-off="#elements.elementOn[i]#"')></cfloop>
    <cfelse><cfset myArray = listToArray(thisItemValue)><!--- TODO: if keeping 
           deprecated off type must change to regexp --->
    <cfloop from="1" to ="#ArrayLen(myArray)#" index="i"><cfset thisElementNo = 
 myArray[i]><cfset elements[thisElementNo] = replace(elements[thisElementNo],
'data-#myNamespace#-off="99"',
'data-#myNamespace#-off="#getOnTime((structcount(elements) - 4))#"')></cfloop>
</cfif>
</cfif>
</cfloop>
</cfoutput>

<cfscript>
    elCount = (structcount(elements) - 4); //  <!--- Remove number of extra keys --->
    liCount = arrayLen(structFindValue(elements,'li','ALL'));
    imgCount = arrayLen(structFindValue(elements,'img','ALL'));
    aCount = arrayLen(structFindValue(elements,'a','ALL'));
</cfscript>
<cftry>
<cfsavecontent variable="contentSyncItemsList">
<cfoutput><!-- #liCount# li element#pluralizeOn(liCount)#, 
               containing #aCount# link#pluralizeOn(aCount)# -->
<ul id="syncItems">
<cfloop from="1" to="#elCount#" index="i"><cfif elements.elementType[i] is "li">
       &nbsp; &nbsp; #elements[i]#</cfif>
    </cfloop>
</ul></cfoutput>
</cfsavecontent>

<cfsavecontent variable="contentImgDiv">
<cfoutput><!-- #imgCount# img element#pluralizeOn(imgCount)# -->
<div id="syncImages">
<cfloop from="1" to="#elCount#" index="i">
    <cfif elements.elementType[i] is "img">&nbsp; &nbsp; #elements[i]#</cfif>
</cfloop>
</div></cfoutput>
</cfsavecontent>
<cfcatch>
    <cfif structKeyexists(cfcatch,"Detail")><cfset d=cfcatch.Detail>
      <cfelse><cfset d=""></cfif><cfoutput>
    <div><h3>#replace(cfcatch.Type,left(cfcatch.Type,1),ucase(left(cfcatch.Type,1)))#
              type error.</h3>
    <h4>#cfcatch.Message# #d#</h4>
    <p>Sometimes an error here means the variable 
       <code><strong>elCount</strong></code> is wrong. Did you change the number of 
        <code>elements["elementName"][i]</code> keys and not alter 
<code><strong>line 79</strong></code>?</p></div>
</cfoutput></cfcatch>
</cftry>

<!--- and here's the fruit of all that hard work --->
<cfoutput>
<div>
#printHtml(contentSyncItemsList)#

#printHtml(contentImgDiv)#
</div>
</cfoutput>

<cfif dumpIt><cfset findLIValues = structFindValue(elements.elementType,'li')>
<cfoutput>
    <p>#liCount#</p>
</cfoutput>
<cfdump var="#findLIValues#" expand="no" label="findLIValues">
    <cfdump var="#elements#" expand="no" label="ELEMENTS">    
</cfif>

<!--- DEBUGGING stuff... drag it up into the dumpIt area as needed
<cfdump var="#elements#" expand="no" label="elements">
<cfdump var="#getLabels[2]#" expand="no" label="getLabels[2]">
 <cfset myLabels = XMLSearch(myXML, "//*[name()='label']")>   
<cfoutput>#myLabels[1].XmlAttributes['t']#</cfoutput>
<cfdump var="#labels#" label="labels">  --->

<cfelse>
    <h3>Fatal error</h3>
    <h4>This does not appear to be a valid Audacity file.</h4>
</cfif>

If I add jQuery and my plugin to the page and place the CFML in a div, call jSWM() on it, I’ve got a presentation ready to go, and I can tweak the timings or add and remove events in Audacity. I only need the ColdFusion or Railo server on my own computer, copy/paste the generated code anywhere.

Image of output, jSWM generated dynamically from Audacity XML

jSWM generated dynamically from Audacity XML

For me this approach has the added benefit of forcing me to visualize my scenes more thoroughly and in advance, to organize my storyboards according to my design and vision (not just make things up as I go along) and then to stay true to the design and vision.

May 29

Ownership of Learning 2.0

While writing this I became aware — rather serendipitously I might say — of a soon-to-be-released mobile app that seems to have some similar thinking behind it. Tappestry‘s interface has very creative representations of the types of relationships between events, resources, people and ideas that make up an experience. Float Mobile Learning will reveal Tappestry at their Mobile Learning Symposium, so I’ll say no more!


Opportunity + support + resources + access

When it comes to the guitar, I’ve been in charge of my own learning since I was 9 years old. I remember what intrigued or engaged me, where I got “stuck,” and what I did to get unstuck. Reflecting on those things and taking stock of them has become a huge part of my pedagogy, both overtly and subconsciously. As an “electronic education specialist” I now spend a lot of time thinking about learning activities that are to be delivered electronically, so the questions often include, “Sure, but what does that look like as a Web page?” I quickly conclude that “page” is an inadequate description of what we’re doing. ELearning is an application; more and more, whether consciously or not, we’re thinking of lesson plans and units as “apps.” Continue reading

Apr 16

What would a good PBL planner look like …on the Internet?

That’s the question that started to form in my head as I watched one 21st-Century teacher’s project take shape and grow over the past few weeks. She used at least 3 or 4 “Web 2.0” applications, gathered relevant resources from diverse sources, and tied it together with a Google doc. She used social media to engage parents and experts. It’s an impressive and organically evolving body of work, and I can’t help but think a mashup? of easily obtainable freely available open source tools could make it even easier for more educators to design and execute such rich and engaging learning experiences.

So what have I got?

Continue reading

Mar 20

Just an idea I’ve been getting

UPDATED 2012-03-27: What’s with all the icons and rollover pop-ups? They’re based on Compendium, which I’ve written about before. While they may not be appropriate for every everyday blog post, I’m asking you to have a look and leave a comment. Do you see a role for them within other web-based contexts you may be familiar with? If so, which? Leave a comment!

I’m trying to get experience design into my thinking about online learning, using the simple technologies I know and love: computers and various digital mobile devices, web browsers, HTML, CSS, JavaScript. For some time I’ve been headed towards the position  that documents are becoming obsolete. While I was thinking about that a teacher who is part of my Twitter PLN was putting together a wonderful Project-Based Learning experience with her grade 6 class, their parents and many others from the PLN. This led me to have an idea .

Continue reading

Mar 04

Wicked Problems

Horst Willhelm Jakob Rittel taught design and architecture for over 30 years but never designed a building. Horst Rittel matters because he saw a connection between science and design and was able to articulate it to designers. He recognized that the definition of a problem is subjective and comes with a point of view. When you think this through it reminds us all “stake-holders” hold a stake in any problem’s outcome. The more diverse the stakes, the more fluid definitions become, and ultimately the harder it becomes to define the problem. It’s a problem of moving goal posts and answers that lead to further questions. Rittel named such problems wicked problems, problems that are not so much “solved” as they are “tamed” (Rith & Dubberly, 2006). Continue reading