diff options
| -rw-r--r-- | bibliography.bib | 16 | ||||
| -rw-r--r-- | dissertation.tex | 32 | ||||
| -rw-r--r-- | software/chapter.tex | 31 | 
3 files changed, 53 insertions, 26 deletions
| diff --git a/bibliography.bib b/bibliography.bib index 0859f66..b633eae 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -843,7 +843,6 @@ year = {1998}    publisher =    {{AIP} Publishing},
  }
 -
  @article{HammPeter1999a,
    author =       {Hamm, Peter and Lim, Manho and DeGrado, W. F. and Hochstrasser, Robin M},
    title =        {{The two-dimensional IR nonlinear spectroscopy of a cyclic penta-peptide in
 @@ -858,6 +857,7 @@ year = {1998}    month =        {mar},
  }
 +
  @article{HammPeter2000a,
    author =       {Hamm, Peter and Lim, Manho and DeGrado, William F. and Hochstrasser, Robin M},
    title =        {{Pump/probe self heterodyned 2D spectroscopy of vibrational transitions of a
 @@ -1003,6 +1003,20 @@ year = {1998}  }
  @article{JoppaLucasN2013a,
 +  author =       {L. N. Joppa and G. McInerny and R. Harper and L. Salido and K. Takeda and K.
 +                  O{\textquotesingle}Hara and D. Gavaghan and S. Emmott},
 +  title =        {Troubling Trends in Scientific Software Use},
 +  journal =      {Science},
 +  volume =       340,
 +  number =       6134,
 +  pages =        {814--815},
 +  year =         2013,
 +  doi =          {10.1126/science.1231535},
 +  month =        {may},
 +  publisher =    {American Association for the Advancement of Science ({AAAS})},
 +}
 +
 +@article{JoppaLucasN2013a,
    author =       {Joppa, Lucas N. and McInerny, Greg and Harper, Richard and Salido, Lara and
                    Takeda, Kenji and O{\textquoteright}Hara, Kenton and Gavaghan, David and Emmott,
                    Stephen},
 diff --git a/dissertation.tex b/dissertation.tex index 29d1821..b2aa572 100644 --- a/dissertation.tex +++ b/dissertation.tex @@ -68,16 +68,16 @@ This dissertation is approved by the following members of the Final Oral Committ  \include{software/chapter}
  \part{Development} \label{prt:development}
 -%\include{processing/chapter}
 -%\include{acquisition/chapter}
 -%\include{active_correction/chapter}
 -%\include{opa/chapter}
 -%\include{mixed_domain/chapter}
 +\include{processing/chapter}
 +\include{acquisition/chapter}
 +\include{active_correction/chapter}
 +\include{opa/chapter}
 +\include{mixed_domain/chapter}
  \part{Applications} \label{prt:applications}
 -%\include{PbSe/chapter}
 -%\include{MX2/chapter}
 -%\include{PEDOT_PSS/chapter}
 +\include{PbSe/chapter}
 +\include{MX2/chapter}
 +\include{PEDOT_PSS/chapter}
  % appendix -----------------------------------------------------------------------------------------
 @@ -85,15 +85,15 @@ This dissertation is approved by the following members of the Final Oral Committ  \part{Appendix} \label{prt:appendix}
  \begin{appendix}
 -%\include{public/chapter}
 -%\include{procedures/chapter}
 -%\include{hardware/chapter}
 +\include{public/chapter}
 +\include{procedures/chapter}
 +\include{hardware/chapter}
  % TODO: consider inserting WrightTools documentation as PDF
 -%\include{irf/chapter}
 -%\include{quantitative_ta/chapter}
 -%\include{tg/chapter}
 -%\include{errata/chapter}
 -%\include{colophon/chapter}
 +\include{irf/chapter}
 +\include{quantitative_ta/chapter}
 +\include{tg/chapter}
 +\include{errata/chapter}
 +\include{colophon/chapter}
  \end{appendix}
  % post --------------------------------------------------------------------------------------------
 diff --git a/software/chapter.tex b/software/chapter.tex index 26636f1..14693ee 100644 --- a/software/chapter.tex +++ b/software/chapter.tex @@ -158,17 +158,30 @@ written by generation upon generation of student.  %  Worse, software is sometimes abandoned or left untouched to become a crucial but arcane component
  of a scientific research project.  %
 -\textbf{Testing.} \cite{SandersRebecca2008a, PrabhuPrakash2011a}
 +\textbf{Lack of testing.} \cite{SandersRebecca2008a, PrabhuPrakash2011a, JoppaLucasN2013a}
  Testing is a huge part of software development practices, but many researchers do not engage in
 -sufficient testing of their software...  %
 -The issue of testing is also consistent with the system of peer review...
 -Software is not typically peer reviewed...
 +sufficient testing of their software.  %
 +Without testing, even small software projects can rapidly ``get out of hand''---they can become
 +unsustainable and unmaintainable.  %
  Especially for domain-specific computational software, determining the ``correct outcome'' to test
  against is often infeasible.  %
 -
 -\textbf{Optimization.} \cite{PrabhuPrakash2011a}
 -Scientists do not optimize for the common case.  %
 -Scientists are unaware of parallelization paradigms.  %
 +Software is not typically peer reviewed, so a lack of software testing is often a weak link in the
 +loop of critical self assessment that science depends upon.  %
 +On the positive side, testing can be an easy-to-add development practice with huge rewards.  %
 +Well written tests can be a programmers best friend: helping her to ensure that her code has met
 +all of the given requirements.  %
 +Well written tests allow programmers to optimize without worrying about breaking crucial components
 +of their software.  %
 +
 +\textbf{Struggles with optimization.} \cite{PrabhuPrakash2011a}
 +Sometimes, a scientific application requires performant code.  %
 +Scientists typically struggle to write such code.  %
 +They may struggle with parallelization paradigms, or they may not understand what is limiting the
 +speed of their software.  %
 +They may not have good intuitions about how long certain operations should take, or what patterns
 +could be used to speed up execution.  %
 +Scientists typically do not use profiling tools which help them see which parts of their program
 +would benefit most from optimization.  %
  \section{Good-enough practices}  % ================================================================
 @@ -274,7 +287,7 @@ Don't be afraid to be verbose, most programming environments have tab completion  not all that hard to type.  %
  Try to follow the recommended style for your language, but don't obsess about it.  %
 -\textbf{Avoid premature optimization.} \cite{WilsonGreg2017a}
 +\textbf{Avoid premature optimization.} \cite{WilsonGreg2014a, WilsonGreg2017a}
  Don't get pulled into the trap of trying to make things perfect the first time.  %
  Software design is typically a very iterative process, and for good reason.  %
  Write for correctness first, and if it works, consider optimization.  %
 | 
