The goal of the course is to cover Advanced Software Development techniques such as aspect-oriented programming (AOP), Adaptive Programming (AP) and Scrap Your Boilerplate techniques and to use them to develop tools useful for Systems Biology. MAX-SAT plays an important role in Systems Biology (and other areas) and therefore we will develop tools for MAX-SAT. The Advanced Software Development techniques will also be applied to develop other tools of interest to Systems Biology and can be worked out in course projects. Examples of such tools are clustering tools ( biclustering ), tools using Galois lattices to structure probabilistic data, tools that combine logic, probability and machine learning (e.g. Brian Milch's BLOG from Berkeley or Pedro Domingos Alchemy from the University of Washington). Carolyn Cho at Novartis recommended to extend SBML with a high level layout language and Mathis Thoma also at Novartis would like to have a tool for drawing hypergraphs.
Why the focus on Systems Biology? | More on aspect-oriented software development. | Useful Course Links
Prerequisites from the course description: CSG 111 or CSG 711. No background in biology and modeling techniques in biology is expected. Students taking this course should have had an undergraduate course in algorithms. Having taken CS G113 or CS G713 is beneficial but is not expected.
Qualified students are encouraged to produce a publishable paper as part of this course. A good example is an OOPSLA 2003 publication in the 3D track produced by students in this course. You are encouraged to read this paper early in the course: XAspects: Winter 2003 Quarter OOPSLA 2003 Publication .
Mailinglist (archive, sign-up, etc.) | Local CSP wiki | Ahmed's wiki