Course description | Essential information | Schedule | Assignments | Fine Print

HIST697-001: Creating History in New Media. Spring 2017. Department of History and Art History, George Mason University. 3 credits. Meets Mondays, 7:20 p.m. to 10:00 p.m., at RRCHNM, Research Hall fourth floor.

Instructor: Lincoln Mullen <>. Office: Research Hall 457. Office hours on Tuesdays, 1:30 p.m to 2:30 p.m.; Thursdays, 2:00 p.m. to 3:00 p.m.; and by appointment.

Course description

In this methods course you will be introduced to data analysis and visualization for historians. You will learn to work with historical data, including finding, gathering, manipulating, analyzing, visualizing, and arguing from data, with special attention to geospatial, textual, and network data. These methods will be taught primarily through scripting in the R programming language, using other command line tools as appropriate. You will also learn how to present history on the web with HTML and CSS. While historical methods can be applied to many topics and time periods, they cannot be understood separate from how the discipline forms meaningful questions and interpretations, nor divorced from the particularities of the sources and histories of some specific topic. Therefore, in this course we will examine the historiographical tradition to see how historians have used data and visualization to understand the past. And we will work together to apply these methods to a series of datasets in the history of the nineteenth-century United States, with a focus on religion.

After taking this course, you will be able to

Essential information

You are always welcome to come to my office hours or to arrange an appointment. All other communication for this course will happen in our Slack group. Read this getting started guide if you need help.

Please obtain copies of the following books. All other readings are available online or through the GMU libraries.

Bring a computer to each class meeting. You will need the following software.


For any assignment, you are more than welcome to work on your own research topic, provided that you check with me first. Ideally your work in this course will advance your dissertation or other research project. Talk to me early in the course and we will figure out together what would work best for you. Please upload all assignments to this Dropbox folder.

Be prepared. Preparation and participation are expected as a matter of course in a graduate class. Complete all readings and assignments before class. If the readings include sample code or questions at the end, work through them as part of doing the readings. By noon on the day of class, please post a brief message to the course Slack group about one thing you learned and one thing you want to see better explained. I will use your messages to tailor my explanations in class.

Worksheets and weekly assignments (45%). Most classes will have an assignment due before class begins. Some will require you to do library research; others will be data analysis worksheets. The worksheets are for you to practice what we have gone over in class. They will also serve as a helpful reference sheet when you need to remember how to perform some kind of analysis. Some of the questions on the worksheet will be easy; most will be difficult; some you may find nearly impossible. The aim is to practice. We will go over the worksheets in class each week. Unless otherwise specified, ask for help in the Slack channel but try not to just give the answers away. Each student must turn in his or her own worksheet. If you attempt a problem and can’t solve it, you should still turn in whatever work you did on it. Here is how I will grade these worksheets. Each question will receive a 2 for a correct answer correctly solved; a 1 for an incorrect answer with a good attempt at solving the problem; and otherwise a 0. I will multiply the score for the question by a number for the difficulty of the question, so that more difficult questions are worth more. I will total up your scores as we go, and grade them on a curve at the end of the semester. Students who complete all the easy and moderate difficulty questions, attempt the very difficult questions, and ask me for help as needed will do just fine.

Visualization essays (3 essays @ 15% each). You will write three brief visualization essays, each demonstrating a specific skill in data analysis. At a minimum these essays should include the following: (1) explanatory text written for a scholarly but non-technical audience that frames the visualizations in both historical and historiographical terms and argues some worthwhile point; (2) as many well-crafted visualizations or data tables as are necessary to argue that point; (3) access to the code through GitHub (though the code should not be visible in the essay itself) which can be successfully re-run by me; and (4) citations. These essays should be submitted as R Markdown documents via GitHub, each as its own repository. Ideally you will write these essays using some historical data of interest to you, but I will provide data if you don’t have any of your own. Students who wish to attempt some more ambitious project (which must still meet those requirements) are welcome to talk with me about combining two or three of the visualization essays into a single format.

Tutorial (10%). At our second meeting, you will pick from a list of analytical techniques, R packages, and other software not covered in this class. Beginning at week 6, you will be assigned a week to teach the class for 25 minutes about the topic you selected. As part of that teaching, you will prepare a handout with an explanation of why the package or method is useful, some suggested applications to history, and sample code and results. The Programming Historian tutorials are a helpful model. Submit the human-readable form of the tutorial to the course Slack the day before class, so everyone can read it before class. Submit the GitHub repository with your handout to me.


Week 1 (Jan. 23): Introduction

Assignment: Join the Slack group. Install R and other necessary software.


In class: HTML, CSS, HTML 5 Boilerplate.

Week 2 (Jan. 30): Data used by historical actors

Assignment: Find visualizations, data tables, datasets, or corpora from the nineteenth-century United States. Post full citations and URLs in the Slack group, along with a sentence or two explaining what you’ve found. Examine the links that other people post before class.


In class: More HTML and CSS; Bootstrap; web servers.

Week 3 (Feb. 6): Data used by historians

Assignment: Find at least one instance of how data analysis has been used by historians, either from your own area of specialization or from nineteenth-century U.S. religion. Post a scan or photo of at least one visualization or data table and write one paragraph explaining how the historian made use of data.


In class: Basics of R and R Markdown; basics of Git and GitHub.

Week 4 (Feb. 13): Basics of R

Assignment: Getting familiar with R worksheet.


Week 5 (Feb. 20): Visualization with the grammar of graphics

Assignment: Data structures worksheet and functions worksheet.


Week 6 (Feb. 27): Data manipulation

Assignment: Basics of ggplot2 worksheet.


In class: plotly tutorial (Dayna)

Week 7 (Mar. 6): Exploratory data analysis

Assignment: Basic data manipulation worksheet; more data manipulation worksheet.


In class: forcats tutorial (Laura)

Week 8 (Mar. 20): Craftsmanship



In class: Bookdown tutorial (Leanne)

Week 9 (Mar. 27): Mapping

Assignment: Exploratory data analysis visualization essay (New Nation Votes dataset).


Week 10 (Apr. 3): Mapping


In class: gdal tutorial (Justin)

Week 11 (Apr. 10): Text analysis

Assignment: Mapping visualization essay (WPA former slave narratives dataset).


In class: basic statistical models tutorial (Amber)

Week 12 (Apr. 17): Text analysis


In class: text2vec tutorial (Robert); wordVectors tutorial (Jessica).

Week 13 (Apr. 24): Network analysis

Assignment: Text analysis visualization essay (American Tract Society dataset; WPA former slave narratives dataset).


In class: interactive network graphs tutorial (Tony)

Week 14 (May 1): Conclusion

Assignment: Create a hand-coded portfolio of your work for this class and publish it to the web.

Readings: Shiny tutorial (Josh), D3.js tutorial (Eric).

Fine print

This syllabus may be updated online as necessary. The online version of this syllabus is the only authoritative version.

Students must satisfactorily complete all assignments (including participation assignments) in order to pass this course. Your attendance is expected at every meeting. If you must be absent, I request that you notify me in advance of the class meeting. I am sometimes willing to grant extensions for cause, but you must request an extension before the assignment’s due date. For every day or part of a day that an assignment is late without an extension, I may reduce your grade. No work (other than final exams and final projects) will be accepted later than the last day that the class meets unless I have agreed otherwise. I will discuss grades only in person during office hours.

See the George Mason University catalog for general policies, as well as the university statement on diversity. You are expected to know and follow George Mason’s policies on academic integrity and the honor code. If you are a student with a disability and you need academic accommodations, please see me and contact the Office of Disability Services at 703-993-2474 or through their website. You are responsible for verifying your enrollment status. All academic accommodations must be arranged through that office. Please note these dates from the academic calendar.