What is Analytical Chemistry 3.0? If Analytical Chemistry 1.0 is a print-only textbook and Analytical Chemistry 2.0 is a digitally reformatted version of a print textbook—what we might call a proto-digital textbook—then a logical progression suggests that Analytical Chemistry 3.0 is a digital-first resource that does not have a corresponding print version.
This is, of course, an easy statement to make, but, by itself, it does not get us any close to a clear sense of what a digitally-first or digitally-native "textbook" might look like. What is intuitive, however, is that a digitally-native textbook cannot take as its starting point an existing print textbook; instead, it must begin with a suite of digital tools and consider how to use those tools in pedagogically interesting ways. As Brian O'Leary suggests, print is limited by the two-dimensional surface of paper and its static content, both of which ignore "that which cannot or does not fit." O'Leary also notes that "[m]any current audiences (and all future ones) live in an open and accessible environment...[and] expect to be able to look under the hood, mix and match chunks of content and create, seamlessly, something of their own."
As an initial exploration of the possibilities for Analytical Chemistry 3.0, we might begin by using the following digital tools:
R
: R
is a software language and programming environment for statistical computing and for the graphical analysis of data. It is available for use as “Free Software”" under the terms of the Free Software Foundation’s GNU General Public License.Rmarkdown
: Rmarkdown
is a package for R
that combines simple markdown
authoring tools for formatting text with chunks of R
code; when compiled using knitr
the resulting output is a formatted document that contains the results of executing the embedded R
code. Although Rmarkdown
can produce files in a variety of formats, the two of particular interest for this project are html
and pdf
formats.RStudio
: RStudio
is an integrated development environment that, among other features, provides a console for running R
, a window for editing files, a window for managing files, a window for viewing plots, a window for viewing help files, and an internal browser window for viewing dynamic content. RStudio
also provides tools for automating many tasks. Although RStudio
is a convenient way to manage this project, it is not a requirement as it simply provides a way to work with R
and Rmarkdown
.R Packages
: One of the strengths of R
is the availability of packages of R
functions that are designed to work with data. The materials in this project, for example, use the plotly
package to create interactive graphics, the DT
and the magrittr
packages to create interactive data tables, and the animation
package to create video animations.Using these tools we can write a set of .Rmd
files using Rmarkdown
and .R
script files that contain functions to simulate, plot, and otherwise manipulate data. We then can render the .Rmd
files were into a website whose structure is defined by a user-written _site.yml
file. As a student works through the material, s/he can edit any of the .Rmd
files by adding text and chunks of R
code, perhaps to answer a problem, to annotate existing text with comments, to make lists of questions to explore; and s/he also can create new .Rmd
files and add them to the _site.yml
file, and then render the files to update the website. Although each student begins with the same set of files (that is, with the same "textbook"), because students host the files on their personal computer and view them through a local browser only, each student creates and maintains a personalized version of the website that is "something of their own."
The link below serves as an initial example of what is possible. Although voltammetry serves as a topic for this exploration, the materials here are not intended to be complete, nor are they designed for any particular level of instruction.
This website is, of course, static; a copy of the complete set of files, which you can use to explore this concept on your own, is available through Github. To build the website, download the files to a folder on your computer, openR
, navigate to the folder and set it as your working directory, and then enter
rmarkdown::render_site()
in the console; when complete, you should see a _site
folder in your working directory.