Course Announcement
- Advanced Statistical Computing
- Stat 8054
- Spring 2024
- MWF 12:20am–1:10pm
- Ford Hall 155
Instructor: | Charles Geyer (Ford 356, 5-8511, geyer@umn.edu) |
---|---|
Office Hours: | Monday, Wednesday 1:25am–2:15pm |
Tao of Programming
Tao is a Chinese character
道 that is often translated way
.
Its modern pinyin
romanization is dào, but we will use
the older romanization tao
because that is more familiar to western readers, having appeared in
the titles of many books.
Like the English word way
it has many shades of meaning but it usually
means a way of doing things, particularly a way that is
the Right Thing
in someone's opinion.
Zhuangzi (莊子), an ancient sage, told a story about a cook who carved oxen following tao so cleanly that his knife never got dull. We would like to program like that, to be a wizard or a guru in hacker jargon.
But that takes much time and practice and also insight into taos of programming. That is why good books on the practice of programming, such as,
- The Art of UNIX Programming, which is also available on the web,
- The Pragmatic Programmer,
- the
debugging rules
book (Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems), and - Tao Te Programming.
Laozi (老子), the perhaps legendary author of the Tao Te Ching (道德經) wrote
Those who know do not talk.
Those who talk do not know.
知者不言
言者不知
What this says about teaching I will leave to you to figure out. It's really true about computing. All of the most important stuff you have to learn for yourself by doing computing. All I can do is raise consciousness. Nevertheless, the course may degenerate into lecture at some points because we don't know what else to do.
For the last two years I have been forcing students to ask questions. On each reading, we have one or two rounds of questions from students: every student asks one question per round (follow-up questions are allowed but not required). Questions do not have to be about specifics of the reading. They can be anything about statistics and computing.
Tao of R
There is a tao of R. There is also a tao of SAS. They are very different.
Because we are interested in research in statistics, we are interested in research programming, which these days means R. The amazing number of packages on CRAN and BioConductor show the research importance of R.
The best books about the Tao of R are
- the official manuals written by the R core team at CRAN under Manuals and
- the book Advanced R by Hadley Wickham, which is also available on the web.
- the book The R Inferno by Pat Burns.
At the end of this course, each student should be proficient at writing R packages, a lot more proficient than some faculty members of the School of Statistics.
Projects
Perhaps the most important part of the course, will be class projects. Each student will do a moderately large, but not too large, project, producing an R package to do something of interest to the student.
Start thinking about what you want to do for your project now. If you don't have any ideas, talk to the instructor.