A reading list for cognition
One of my ongoing projects is an open-educational resource for a survey course in cognitive psychology. The project currently includes a textbook, course website, slides, and assignment suggestions under a creative commons license (CC-BY-SA 4.0). The textbook has nine chapters, and at some point I plan to add a few more. As it stands, when I teach this course, we transition from textbook readings toward reading primary research articles. To supplement and encourage more reading of primary research, I’m considering adding a suggested reading list section to the textbook. The purpose of this blog post is to draft some reading lists, and think about how I would curate and present them.
I think I have two general problems to solve:
- Picking articles to go on the list (and considering why these/not those).
- Maintaining and publishing the list with preferred software tools, like zotero and quarto.
Ideally, I think I want a zotero folder with sub-folders for different topics in cognition, each full of recommended papers to read. I already use zotero, and it can generate .bib files for each folder, which I can pipe into quarto and print out somewhere. There’s wrinkles though.
Let me count the ways. Let’s say I have 10-25 recommended articles per chapter. I could put them all in a single .bib file, and then use [nocite](https://quarto.org/docs/authoring/footnotes-and-citations.html#including-uncited-items) to print them all to a reference list at the end of a chapter. This will be a long undifferentiated reference list in alphabetical order. I could probably sort it differently with CSL.
I remembered that I already started an “additional reading” section in the Eugenics and Psychology chapter. I don’t like how it is presently formatted on the page, but I do like that it appears as a section in the chapter. Hmmm.
Revisiting that chapter I see that I tried two things. First, I wrote a code chunk to automatically generate a reading list from selected .bib entries in a .bib file. But, I guess I didn’t like how that worked out, because I ended up typing out the references directly.
Here’s a version of the code chunk:
library(dplyr)
<- bib2df::bib2df(file="memory_timeline.bib")
load_bib
<- load_bib %>%
selected_bib filter(BIBTEXKEY %in% c(
"atkinsonHumanMemoryProposed1968",
"baddeleyWorkingMemory1974",
"craikLevelsProcessingFramework1972"))
::df2bib(selected_bib,file = "temp.bib")
bib2df
::print_refs("temp.bib",csl="apa-annotated-bibliography.csl") stevemisc
Atkinson, R. C., & Shiffrin, R. M. (1968). Human memory: A proposed system and its control processes. In Psychology of learning and motivation (Vol. 2, pp. 89–195). Elsevier.
Baddeley, A. D., & Hitch, G. J. (1974). Working memory. The Psychology of Learning and Motivation, 8, 47–89. https://doi.org/d4vgnk
Craik, F. I., & Lockhart, R. S. (1972). Levels of processing: A framework for memory research. Journal of Verbal Learning and Verbal Behavior, 11(6), 671–684. https://doi.org/cpcxr6
This is OK. What are some other options.
Cite the refs in text.
I guess the simplest option is to cite the references in text the normal way.
Additional Reading
(Eich 1982; Douglas L. Hintzman 1988, 1984; Douglas L. Hintzman 1986; Jacoby and Brooks 1984; Jacoby 1991; Jamieson et al. 2018; Kolers and Roediger 1984; MacLeod 2020; McClelland and Rumelhart 1985; Murdock 1982; Roediger and McDermott 1995; Roediger III and Karpicke 2006; Shiffrin and Steyvers 1997; Voss 2009; Whittlesea 1997).
This option isn’t great. It’s nice that quarto shows the full citation on hover, but in this case it shows a really long list because they are cited together within [].
Additional Reading #2
Eich (1982)
Douglas L. Hintzman (1988)
Douglas L. Hintzman (1984)
Douglas L. Hintzman (1986)
Jacoby and Brooks (1984)
Can’t say I really love this look and feel either. Maybe a table or something would be better?
Additional Reading #3
Citation | Year | Notes |
---|---|---|
Eich (1982) | 1982 | blah blah blah |
Douglas L. Hintzman (1988) | 1988 | blah blah |
Shiffrin and Steyvers (1997) | 1997 | blah blah |
This isn’t terrible. Could I make my life easier with knitr::kable
?
Additional Reading #4
library(dplyr)
<- bib2df::bib2df(file="memory_timeline.bib")
load_bib
<- load_bib %>%
selected_bib filter(BIBTEXKEY %in% c(
"atkinsonHumanMemoryProposed1968",
"baddeleyWorkingMemory1974",
"craikLevelsProcessingFramework1972")) %>%
select(BIBTEXKEY,
DATE,
TITLE,%>%
NOTE) rowwise() %>%
mutate(BIBTEXKEY = paste("[@",BIBTEXKEY,"]",sep="",collapse=""),
DATE = as.numeric(DATE),
TITLE = stringr::str_remove_all(TITLE,"[{}]"),
NOTE = case_when(is.na(NOTE) == TRUE ~ "",
is.na(NOTE) == FALSE ~ NOTE)
%>%
) rename(CITATION = BIBTEXKEY)
::kable(selected_bib) knitr
CITATION | DATE | TITLE | NOTE |
---|---|---|---|
(Atkinson and Shiffrin 1968) | 1968 | Human Memory: A Proposed System and Its Control Processes | This is a classic paper because… |
(Baddeley and Hitch 1974) | 1974 | Working Memory | |
(Craik and Lockhart 1972) | 1972 | Levels of Processing: A Framework for Memory Research |
I could live with a table like this I think.
More thoughts
I’m getting stuck too much worrying about ways to present a list of suggested readings. It feels sticky because I’m thinking about how content and style come together, but I haven’t totally sorted out what content options I want.
Minimally, I think I want the citation and the option to add notes about the reading. This is pretty much what I have in the above table. I can write any notes about a paper in zotero and have them included in the .bib file. This way the .bib file acts as a little database, which also offers opportunities for search and presentation. For example, the above table adds a date column read from the bib file.
Trying to get interactive tables that process markdown citations
Which, reminds me, I need to double-check if I can make the date column sortable. This should be possible with:
::datatable(selected_bib) DT
That works, but it doesn’t render the citations. I feel like I have been here before with the Semantic librarian project.
Sigh, looks like this is an open issue: https://github.com/rstudio/DT/issues/748.
Ok, let’s try https://glin.github.io/reactable/.
#reactable::reactable(selected_bib)
This doesn’t render the citations either. But, is there hope? Perhaps custom-rendering: https://glin.github.io/reactable/articles/custom-rendering.html. Tried some stuff, didn’t work.
Try stuff
None of thie stuff I tried here worked, deleting it. I’m also reminding myself that the .pdf version of the book chapters won’t be able to have interactive tables. So, I’m pausing this tangent.
Minimal Example
The goal for this example is to pick 10-20 readings from cognitive psychology that could appear in the first chapter, and then print the table here. I’m going to pick some papers that could be interesting for this chapter, and then print the table here to a sense of look and feel. Heads over to zotero to make another folder within a folder.
OK, I slammed together 13 papers. I can export them easily as a .bib file, load them in and print them as a table sorted by date. I’m less certain about how to add additional citation data to each entry, such as a note field. Let’s see.
I rarely use the notes feature in Zotero, so I just discovered that if I write notes for an entry, then I can export them as part of the bib file, and they appear as a note entry. That’s convenient. I could imagine having really long notes for the some of the paper, and that wouldn’t fit space-wise in the table very well. Could have notes as tooltips, or make the table scroll. Will come to that later. Let’s add some notes and print out the table.
I added some notes, some longer, some shorter. Curious to see what the table looks like.
<- bib2df::bib2df(file="C1_Cognition_reading.bib")
load_bib
<- load_bib %>%
selected_bib select(BIBTEXKEY,
DATE,
TITLE,%>%
NOTE) rowwise() %>%
mutate(BIBTEXKEY = paste("[@",BIBTEXKEY,"]",sep="",collapse=""),
DATE = as.numeric(DATE),
TITLE = stringr::str_remove_all(TITLE,"[{}]"),
NOTE = case_when(is.na(NOTE) == TRUE ~ "",
is.na(NOTE) == FALSE ~ NOTE)
%>%
) rename(CITATION = BIBTEXKEY) %>%
arrange(desc(DATE))
::kable(selected_bib) knitr
CITATION | DATE | TITLE | NOTE |
---|---|---|---|
(Jamieson et al. 2022) | 2022 | Instance Theory as a Domain-General Framework for Cognitive Psychology | An integrative review paper discussing how instance theories of cognition have been developed and applied across domains in cognition. |
(Prather et al. 2022) | 2022 | What Can Cognitive Science Do for People? | A short read raising important questions about how cognitive science should benefit people, with brief discussion of historical and present social justice issues. |
(Rayner et al. 2016) | 2016 | So Much to Read, So Little Time How Do We Read, and Can Speed Reading Help? | Discusses the cognitive psychology of reading processes and abilities and evaluates claims about speed-reading. A wonderful introduction to basic and applied cognitive research. |
(Cho, Tse, and Neely 2012) | 2012 | Citation Rates for Experimental Psychology Articles Published between 1950 and 2004: Top-cited Articles in Behavioral Cognitive Psychology | The appendix of this paper is worth knowing about. It lists many “classic” papers in cognitive psychology that have received numerous citations. |
(Reisberg 1997) | 1997 | Cognition: Exploring the Science of the Mind. | An introductory cognitive psychology textbook. |
(Douglas L. Hintzman 1993) | 1993 | Twenty-Five Years of Learning and Memory: Was the Cognitive Revolution a Mistake? | A critical evaluation of cumulative progress within the field of cognitive psychology, with a focus on learning and memory areas. |
(Jacoby and Brooks 1984) | 1984 | Nonanalytic Cognition: Memory, Perception, and Concept Learning | A personal favorite, describing how memory processes may be involved in many other cognitive abilities. |
(Anderson and Crawford 1980) | 1980 | Cognitive Psychology and Its Implications | A more advanced introduction to Cognitive Psychology textbook. |
(Douglas L. Hintzman 1978) | 1978 | The Psychology of Learning and Memory | A classic textbook on cognitive psychology that integrates research between associative learning and memory. |
(Newell 1973) | 1973 | You Can’t Play 20 Questions with Nature and Win: Projective Comments on the Papers of This Symposium | A critical perspective suggesting that cognitive psychology use computational modeling approaches to theory development. |
(Neisser 1967) | 1967 | Cognitive Psychology | A classic textbook in Cognitive Psychology. |
(F. Bartlett 1958) | 1958 | Thinking: An Experimental and Social Study | Imaginative and interesting. A classic book on how to go about doing research on big topics like “Thinking”. |
(F. C. Bartlett and Bartlett 1932) | 1932 | Remembering: A Study in Experimental and Social Psychology | A classic book on memory processes, and foundational to modern reconstructionist views. |
Not bad, pushing ball forward achieved.