Month: February 2017 (Page 1 of 2)

Digital Note-taking in the History Classroom, part 2

Lately I have been working on a web project called Spanish Borderlands with Raphael Folsom. The basic idea for the project is that students in Raphael’s upper division history course on the Spanish colonial borderlands will read primary sources and take notes into an online web database. Rather than each student creating their own stack of 3×5 note cards on their readings, their notes will collectively pool in a Drupal system that can then be searched by bibliographic or thematic content. Raphael can model good note-taking for his students and the students can share their notes when it comes time to write their analytical papers. For more information on this project, see my earlier post, Digital Note-taking in the History Classroom.

Adding Related Cards to Our Displays

One of the fun parts of working on this project with Raphael is brainstorming desired features for the site and then figuring out whether or not I can actually build them.

One of Raphael’s ideas was that every notecard in our database would include lists of related notecards at the bottom of the screen. Thus all notecards related to the same primary source would be listed. In a second list, all notecards related to the same author of the primary source would be listed. Additional lists might include all notecards by the same notetaker or all notecards related to the same place.

Screen shot of the related cards tab on SpanishBorderlands

As students are entering notes, they will be able to see what other notecards exist. When it comes time to write their papers, they can either do searches across the database or crawl through the database based on these lists of matching cards.

Technical Process

Drupal Views Contextual Filtering by Field Value

I wanted to document how this works technically, because I couldn’t find a straight-forward statement of how to do this anywhere online. The payoff is two lines of PHP, so if you’re not a Drupal user or a complete nerd, I’d suggest stopping here.

Technically speaking, we wanted to embed a table of nodes on each note-card content display. I’m using Drupal 7, so the Views module is great for generating tables. The challenge was how to filter the table to only show those nodes that match the pertinent field from whatever card I happen to be viewing. Thus I needed to set up a system that would pass the value for the field from the node when I call it, to a filter to produce the desired view table.

Drupal Views has filters that are fairly easy to set up. You can use this to make sure you’re only looking at one type of content, only published records, or only records that match certain criteria. You can then publish these views as a web page or a Drupal block that can be part of a web page. You can also expose a filter so that a visitor to that web page table can filter across a field for their desired results.

Screen shot of a Drupal View highlighting the filter section.

The limitation on filters is that you need to set the value of a field or allow the user to set the value of a field. It cannot be used to filter dynamically according to the value of a field in a node. For this functionality, you need to use contextual filters. The common uses of contextual filters are to build a block that can be added into a page including all nodes in a similar taxonomic category or all nodes by the same user. Drupal handles taxonomies and users very well and has these functionalities built into contextual filters in a fairly straight forward way.

Contextual filters does not have similar functionalities for dynamically filtering by a field value. In order to do this, you need to use PHP to generate the value for the filter. In the example below, I have told my view to filter by the field Source Author. If I wanted this to always filter for the value “John Doe,” I could simply type in “John Doe” and the filter would work. But I wanted the table to pull the “Source Author” from the piece of content currently being viewed and filter the table for that value. To do this, I use the following two lines of PHP:

$node = menu_get_object();
return $node->field_author[LANGUAGE_NONE][0][‘value’];

The first line of this code tells the system to pull the information for the current node. The second line “returns” the first value of the field “field_author.” The code thus pulls the value of the “field_author” to the contextual filter, which then filters the table to show all matching results. If I wanted to filter by another field, for example to show all cards related to the same bibliographic source, I could change “field_author”  to “field_source.”

Screen shot of the contextual filter by php menu in Drupal Views

Using this contextual filter, I produced a view that shows me a table of all nodes that share the given field with the node currently being viewed.

I repeated this process to produce several of these views producing tables matching different fields. Next I used the QuickTabs module to produce something called a QuickTabs block. This allows me to tab between my multiple table views of related cards.

A third module called Display Suite allows me to add my QuickTab block to the content display as a custom dynamic field.

Screen shot of the Drupal content display panel depicting Display Suites custom fields

Having built my contextually filtered views, compiled them into a tabbed display, and embedded those tabs into my content display, I now have my Related Cards tables viewable on each note-card in the system:

Screen shot of the related cards tab on SpanishBorderlands

Paying the Price

In reading chapter three of Sara Goldrick-Rab’s Paying the Price, I was struck by the deep resentment that the Pell Grant garners. Like every other form of welfare promoting social mobility, the Pell Grant has been weaponized as a redistributive, unearned, golden ticket that allows people to skip to the front of the line while carelessly spending the hard-earned dollars of the working class. Obviously this is a straw man characterization, but I think it accurately echoes the core narrative identified by Arlie Hochschild in her study of Tea Party Republicans.

My habit has long been to dismiss such a characterization as the critique of mean-spirited, irredeemable people, but this is extremely counterproductive. I still don’t agree that we should do away with the Pell Grant or other forms of welfare, but I need to and can do a better job engaging in respectful conversation around this narrative. Until we can find common ground with those who feel left behind and cheated by the system, there can be little progress. As an educator, I need to be able to engage with people and convincingly argue for several fundamental points that I can no longer take for granted:

  1. That the highest quality public education is an inalienable birthright of every person
  2. That public education is an obligation of the government
  3. That government investment in education is economically productive. That is, for every dollar spent, more than a dollar is generated
  4. That a student has a right to maintain dignity while receiving welfare and shouldn’t be asked to pass drug tests or justify food expenses
  5. That teachers should be respected as important contributors to society and paid accordingly
  6. That education is about growth for each student rather than arbitrary standards of proficiency
  7. That education is allowed to be fun and actually works better when it is
  8. That enabling students to flourish requires asking them their goals

These eight headings are not defitive or exclusive. They are simply a managable starting point. If I can effectively articulate these points and engage people on them, we may be able to find common ground on student aide and educational policy more broadly. If not, states like mine may continue to defund education at all levels.

In an editorial in the Oklahoman this morning, OU Provost Kyle Harper provided hard numbers for the relative lack of support for OU from the state:

The University of Connecticut, a public flagship very similar in size to OU, receives about $16,500 per undergraduate student from the state, whereas OU receives around $6,200 per undergraduate from state appropriations. Our tuition and fees are also 22 percent lower, yet we offer an equally high-quality educational experience and achieve nearly equal rates of student retention.

As Kyle notes, “We have been doing a lot with a little,” but we need to reach out to Oklahomans and talk with them about why education is important. We cannot take it for granted that people already want to have the best schools; rather, we have to help restore that esteem for and pride in educational systems.

Through chapter three, Sara Goldrick-Rab has been particularly effective in her treatment of the first four points. Thus far the book seems like a really useful reference for both quantitative and qualitative evidence on the simultaneous importance and insufficiency of student aide. I hope that it will also provide a proscriptive argument for how we can move forward.

Digital Note-taking in the History Classroom

One of the projects I’ve been most excited about this semester revolves around an effort to teach history students how to take notes using an online database. The central point of my own digital history project, Situating Chemistry, is that we as historians should be sharing notes, both to accelerate historical research and to model our practices for students. For this course project, I have built a Drupal database specifically for upper level undergraduates to take notes on primary sources related to Spanish colonial history.

I posted a while back about the original conceptualization of this project. Now, we have an operating site:

Screenshot of Spanish Borderlands

The students in Raphael Folsom’s Spanish Borderlands course read primary sources on a weekly basis. Rather than taking notes on 3×5 index cards as we did when I was a kid, the students take the same type of note in the Drupal system. They fill out some basic bibliographic information about the source, write a short summary of the source, and then take a note about an interesting facet of the text.

Screenshot of the Add Note Card form.

Once the student has completed their note card, they can duplicate it and take a new note on the same source without having to reenter the bibliographic information.

There are several reasons why I like this project. The first is that it puts primary sources and note taking at the center of the course. Rather than focusing on lecture or textbooks, students are doing the practice of history.

Secondly, it teaches students how to take notes. Raphael can give formative feedback on the note cards themselves and share best practices. Class time can also be used to discuss the ontology of historical evidence and the epistemology of critical reading and constructing valuable notes.

Screen shot of the CardStack in Spanish Borderlands

Finally, when it comes time to draw on the notes, students can draw on the total Card Stack: the pool of notes for a given source, a set of sources, or even all the sources in the system. They cite each other as the originator of a thought about a source, emphasizing the communal construction of understanding about a historical event. They also cite the original source itself preserving the bibliographic practices at the center of traditional historical practice.

Developing skills is a key part of upper-division courses, but one that can be a bit opaque for history and other humanities courses. We have students read, but actually modeling note-taking and the synthesis of source material can be difficult. This project centers students in the making of a digital resource and the remolding of history into an open and collaborative practice.

Please note: For more information on some of the technical crafting of the site, please read Digital note-taking, part 2. Currently, the course site is behind a login wall to give the students some time to get comfortable, and give us, the designers, some time to work out the kinks. It will be made public later in the semester. 

Page 1 of 2

Powered by WordPress & Theme by Anders Norén