Wednesday, August 22, 2012

Intro Bioinfo Theory Course Example Release 1


What is the purpose of this release?

It illustrates the kind of content I am releasing as open source course materials, to bootstrap an open source bioinformatics teaching materials consortium where instructors can selectively use, modify and share materials for their own teaching. If you're interested in using these materials or participating in such a consortium, I invite you to contribute your thoughts or feedback in the Comments section below, or by email to

What is this?

This is a snapshot of the reading, lectures, homework, projects, practice exams, and exams from my 2011 Bioinformatics Theory course offered separately as a CS undergrad course and Bioinformatics graduate course (different exams; separate graduate term project). The course uses a core set of simple genetics, sequence analysis and phylogeny problems to teach fundamental principles that arise in virtually all bioinformatics problems. This course is not for students who want to learn to use existing methods (e.g. BLAST) but rather for students who might in the future want to invent new bioinformatics analyses. It emphasizes statistical inference, graph models and computational complexity.

Note: this is not a standard lecture course; approximately half the class time was devoted to in-class concept tests, where the class was presented with a question that tests conceptual understanding. Students answered concept tests using an open-response (i.e. not multiple choice) in-class response system by typing answers on their laptops or smartphones. We then discussed our answers using Peer Instruction methods, and I analyzed all the individual students' answers in detail; at the subsequent class, I went through each of conceptual errors the students made for each question. I have written approximately 200 concept tests for a wide range of statistical and computational concepts relevant to bioinformatics, and a wide variety of "problems-to-work" (i.e. more conventional homework problems) covering the same material. I am making all of these materials and software available as open source; this is the first step in that release process.

What does this initial release lack?
Note that this is "just a taste" of the full release (planned for March - April 2012), in that this initial release does not contain the full infrastructure for flexible content sharing and reuse planned for the full release. Specifically it does not include:
  • my tools for automatic compilation of different outputs (traditional latex "textbook" output; beamer-style slides; concept-tests for the in-class response system, etc.) from user-specified selections of the content database; the in-class response system (lets students answer the concept tests by typing text and equations on their laptops or smartphones); etc. These will be released separately from the course material repository, because they are generic tools that could be used for many other projects. If anyone wants to access these now, contact me; I can release the current versions immediately.
  • a more extensive set of course materials will be released as a Distributed Version Control repository (i.e. Git) enabling any number of people to alter, add to, and share these materials in a secure way. That is, a public repository will be established containing only textbook materials (i.e. explanations of concepts); and separately, a private "instructors' repository" that also contains concept tests, homework / exam problems and answers. Anyone will be able to access or contribute to the public repository; only course instructors will be given access to the private repository. Instructors will be asked to follow common-sense guidelines to protect the test database against irresponsible internet distribution, so that the test questions retain their value as test instruments on graded homework or exams.
  • the full release content will be extensively annotated with metadata that explicitly represent the dependencies and relations of each individual concept in the material. For example, all concepts will be tagged with their corresponding entry in Wikipedia (so if a student has a question about the explanation of a concept in this text, they can see what Wikipedia has to say about that same concept). The goal is to enable easy and sophisticated re-use and customization of user-specified selections of content, and direct integration with other resources such as Wikipedia.

The Course Materials

The course materials are linked as PDF documents below (requires a password, for access contact The editable document sources are in reStructured Text, a flexible open document standard with LaTeX equation support.
Reading and Lectures

Reading was assigned as a prerequisite for each class, defining the basic concepts for that class. Students were required to have read this material before coming to class (otherwise they couldn't possibly answer the in-class concept tests), by having random quizes on these basic definitions at the beginning of class. Each class was 2 hours, approximately half lecture and half concept-tests / peer instruction. Note that for some concept tests in the lectures, I then worked through the answer on the projector, so there is no "answer slide" for those concept tests in the PDF file.


Standard Tools Used For These Materials

I have based my work on completely standard tools and formats that can be automatically converted to a wide variety of outputs or other standard formats. A short list:
  • reStructured Text, a flexible open document standard with LaTeX equation support.
  • The Sphinx documentation system, which can convert rst to standard "textbook format" LaTeX output.
  • rst2beamer rst-to-latex slides converter, modified (by me) to support LaTeX equations.
  • beamer LaTeX slide presentation class.
  • pdflatex
  • All work on this project has been tracked in the Git distributed version control system. The public repository will most likely be hosted on Github; the private repository could either be at UCLA or possibly Github.

No comments:

Post a Comment