Books to Read Before Starting Graduate School

Reading for graduate students

These recommendations are sorted from general to specific: from resources for any kind of graduate educatee to resources for graduate students in my own field, static analysis.

My criteria for inclusion in this list are readability, self-containment, brevity and coverage.

If you're a grad student at Utah, feel free to come by my function and borrow anything beneath for a day or ii.


Update: Computer scientists, you might as well be interested in my post on what every CS major should know.

Spring to

  • Resource for any graduate student.
  • Resource for nigh-terminal graduate students.
  • Resources for scientific discipline, engineering or mathematics.
  • Resources for estimator scientific discipline.
  • Resource for programming languages.
  • Resources for compilers.
  • Resource for static assay.

For grad students in whatever field

Resources for writing

Writing is the default activity in graduate school.

A discovery isn't a discovery unless you tin can communicate that discovery.

A lot of academic writing is horrible, and it tends to be horrible in multiple ways: presentation, ordering, clarity, style, and sometimes even grammar and punctuation. I've written my fair share of unreadable papers, but writing better is something I've begun to take seriously.

Better writing makes peer reviewers inclined to invest time in information technology.

On writing fashion, Style: Lessons in Clarity and Grace just nails it.

The Chicago Manual of Style is an indispensable reference:

I didn't notice A Manual for Writers of Research Papers, Theses and Dissertations until after my defense, but information technology is relevant to whatsoever kind of academic or technical writing. Information technology answered long-held questions I had about issues like the utilize of the passive voice and the use of first-person pronouns in bookish writing.

Similar the Chicago volume, it's a superb reference tome.

Resource for presenting (yourself)

Graduate students can't avoid giving presentations.

Once again, nigh academics give atrocious presentations. When it comes to giving presentations on technical topics, Even a Geek Can Speak will make every presentation yous give better at the price of just one afternoon'southward reading.

This book covers every aspect of a presentation, from purpose and audition to structuring and slides. It fifty-fifty contains effective techniques for dealing with nervousness about public speaking. I bought this book after I botched my first job talk, and information technology really turned things effectually for me.

Simon Peyton Jones, in addition to existence a brilliant scientist, is as well a gifted public speaker. Simon's communication on how to give a skilful inquiry talk (co-offered by John Hughes and John Launchbury) should be required reading for all graduate students. Simon offers advice on the other not-technical research skills as well.

Robert Cialdini'due south Influence is a modern archetype in the art of persuasion, with lots of testify and amusing anecdotes from psychology to back information technology up. I read this book over my wife'south shoulder while she was reading information technology for her M.B.A.

Information technology'south a fun read, and it will brand yous reconsider how you're conveying your message to your audience. Small tweaks can make a big difference.

A good remote

Though non a text, I highly recommend a good presentation remote. It'southward aggravating to have to requite a talk no more than arm's length from your laptop. It merely reinforces bad presentation body language. From extensive field testing, my recommendation on remotes is the Kensington.

It's small and well-designed; and information technology runs on easy-to-find AAA batteries.

This remote has actually won industrial design awards from IDSA.

It deserves them.

Exercise

Ultimately, if yous want to get expert at public speaking, yous have to exercise. In my feel, it gets easier every time you do information technology. And then, sign upwards for classes or seminars which will force you to give a presentation. And, don't but requite the bare minimum: use the resource above and commit to giving the all-time presentation that y'all tin can. Your public reputation equally a scientist is determined to a large degree by the quality of your talks.

For nigh-last grad students

The academic job hunt is a brutal process. Your offset year as an banana professor is busy. Beingness prepared helps. Fortunately, at that place are some books.

Tomorrow'due south Professor should be in every grad student's hands at to the lowest degree three years before they graduate. It explains the graduate-student-to-junior-kinesthesia metamorphosis with a lot of examples and details.

Most importantly, it covers structure of the standard materials required to perform an academic task search (cover letter, curriculum vitæ, research statement and teaching statement).

Equally a Ph.D. student, it feels at times like getting your Ph.D. volition exist the pinnacle of your existence; the closer you get finishing your Ph.D., the more a Ph.D. seems akin to acquiring mutant powers.

In fact, later on you go your Ph.D., nothing changes. And still, everything changes. A PhD Is Non Plenty!: A Guide to Survival in Science is well-titled. It explains why getting your Ph.D. is only the start of your career.

It also contains cautionary tales of how not to begin your scientific career.

For graduate students in the sciences

If y'all're a graduate student in science, math or engineering, yous will be writing technical papers with a lot of formal mathematics.

The lingua franca of the academic publishing community is LaTeX. LaTeX makes it possible for the motivated scientist to typeset technical documents so beautifully that I would call them art.

(Possible is the key word. There is some ugly LaTeX out there.)

When you're starting out with LaTeX, Leslie Lamport'due south LaTeX book covers all the nuts, and it makes a good reference for all of the common things you'd like to do in LaTeX.

LaTeX, as information technology turns out, is a deep rabbit hole. (It's Turing-complete.) When y'all're prepare for your black chugalug in TeX-fu, Donald Knuth's TeXbook is how you get there.

This is not an introductory book. This is for difficult-core TeX users.

Donald Knuth once taught a course on mathematical writing, the result of which has been distilled in book form [pdf].

The first section of the volume is a curtailed listing of the major dos and don'ts.

For graduate students in computer science

Justin Zobel'southward Writing for Figurer Science is the "missing chapter" for estimator scientists in Kate Turabian'due south Manual for Writers of Research Papers.

For computer science more than more often than not, refer to my post on what every CS major should know.

For graduate students in programming languages

It'south hard to find a good book to get started in programming languages. Part of the problem is that the field has become and then vast that no text can cover the entire field. The other part of the problem is that very few texts and papers are written for the introductory reader.

Benjamin Pierce's Types and Programming Languages really stands out.

It'south a comprehensive, readable introduction to both λ-calculus and type theory. At the aforementioned time, the book holds up well as a reference for avant-garde research in the field.

The Nielsons' book Semantics with Applications [ps] [pdf] [course notes] is almost a perfect introduction to formal semantics. (From looking at the tabular array of contents on amazon, the newer edition looks much meliorate than the edition I have.) It gives a detailed account of the 3 major semantic paradigms: denotational, evident and operational. A section on applying semantics to static assay provides a nice gateway to the field. The principal forcefulness of this volume is its coverage of semantics for imperative languages due to its apply and extension of the same While-based language throughout.

The exact aforementioned semantic techniques can model functional languages, but this is not covered by the book.

Shriram Krishnamurthi'due south Programming Languages: Application and Estimation is also a solid introduction to the field, and it's costless! This book works well for introducing new students to programming languages in role because it uses Scheme and S-Expression notation, which prevents syntax from distracting away from the core result of semantics. Perhaps more importantly, S-Expression annotation ways it's very like shooting fish in a barrel to fire upward an interpreter and just try things out.

Mitch Wand and Dan Friedman's Essentials of Programming Languages is also a good introduction to programming languages and a great reference for formal semantics. Like Shriram's, this book also uses Scheme, so it inherits the same advantages.

In addition to being great scientists, Mitch and Dan are all-around adept people, and in their writing, that comes across as precise however friendly and outgoing prose. I become the sense they actually desire the reader to understand the material.

Barendregt's classic The Lambda Calculus is an encyclopedia of the type-gratuitous λ-calculus. At that place's a lot in here on long-forgotten aspects of the λ-calculus, including its role in logic and foundations and its relationship to topology. It's almost hard to believe the λ-calculus was and then well studied earlier it was foundational to the theory of modern programming languages.

The book makes for dense reading. I would not recommend information technology equally an introductory text, only as a handbook during inquiry, it is indispensible. Information technology's a superb complement to Benjamin Pierce'south Types and Programming Languages.

If writing loftier-performance, correct compilers for functional languages is a goal of yours, Greg Morrisett'southward Ph.D. thesis is a skillful read. Greg has done and continues to do a lot of corking work, then I would actually recommend any of his papers to more avant-garde graduate students in programming languages. Greg tends to develop powerful machinery as a byproduct of reaching his underlying goal; I've found that machinery tin can often exist adapted to other research bug.

Much research in programming languages gets implemented in (and for) Standard ML, OCaml and Haskell. One of the major challenges (and eventual joys) of using these languages for those more accepted to imperative languages is learning to employ functional data structures finer. Chris Okasaki's Purely Functional Information Structures provides a total handling of frequently used information structures in their purely functional form.

For graduate students in compilers

The recently revamped classic, "the dragon book," is a great reference for implementors that want to implement the standard analyses and optimizations that an industrial-strength compiler like GCC has:

In the 1980's, advanced compilers used continuation-passing-way (CPS) every bit their internal representation. In the 1990's and early 2000's, administrative-normal form (ANF) was in vogue, in part because it didn't require compiler writers to understand continuations. Lately, however, I run into more and more rediscovering the unmatched power and simplicity of CPS. Andrew Appel'southward Compiling with Continuations was written at the zenith of the commencement CPS epoch, which makes it an unbeatable reference on CPS-based compilation even today:

For graduate students in static analysis

Patrick and Rhadia Cousots' original paper on abstract interpretation, which gear up an entire prototype in motion, is a good read even subsequently condign acquainted with the field. Patrick and Rhadia take shown themselves to be great minds of our time in static analyis, which means that their writing is excellent, but it is often unapproachable to casual readers given its level of sophistication. Their original newspaper is different: because they're starting a field, they cannot and practice not assume any groundwork knowledge.

My kickoff in programming languages came from reading the first three chapters of my advisor's dissertation. Olin Shivers is a gifted author, and it'south always a pleasure to read his work. His dissertation covers thousand-CFA, an analytic platform from which a number of Ph.D.'s can be launched. In his dissertation, you get to see concepts similar domain theory, denotational semantics and abstract interpretation in utilise. It'southward probably one of the last major works of that era to use denotational semantics.

This dissertation is best read after or during an intro-level programming languages grade which covers formal semantics, simply it is withal a remarkably self-contained piece of work.

There are not a lot of books written on static analysis. The Nielsons/Hankin volume Principles of Program Analysis is fairly comprehensive.

Those with some background in formal semantics should be able to apply this volume as a reference during their research.

In my static analysis seminar, I employ a reading list of classic papers:

  1. A lattice-theoretical fixpoint theorem and its applications. Tarski. 1955.
  2. Assigning meaning to programs. Floyd. 1967.
  3. A unified approach to global programme optimization. Kildall. 1973.
  4. Abstract estimation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. Cousot and Cousot. 1977.
  5. Systematic Pattern of Programme Analysis Frameworks. Cousot and Cousot. 1979.
  6. Control-flow analysis in Scheme. Shivers. 1988.
  7. Efficiently computing static single assignment form and the control dependence graph. Cytron, Ferrante, Rosen, Wegman, Zadeck. 1991.
  8. Points-to analysis in well-nigh linear time. Steensgaard. 1996.
  9. Parametric shape analysis via three-valued logic. Sagiv, Reps and Wilhelm. 2002.

Related posts


albrittonshase1964.blogspot.com

Source: https://matt.might.net/articles/books-papers-materials-for-graduate-students/

0 Response to "Books to Read Before Starting Graduate School"

Publicar un comentario

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel