Computational Biology and Informatics
As part of the retargetting of this grant to address courses and
research in bioinformatics we developed two courses for non-majors: Compsci 4g and
Compsci 6g.
The former is the most recent version of the course, it's not intended
as an introduction to a computer science major. Although the materials
from those courses offer information about the content, we highlight the
most useful and portable assignments here.
Shotgun Materials
As an introduction to the whole-genome shotgun algorithm, we assign
this
text reconstruction project. Students use this in understanding the
basic idea and algorithm before proceeding to the programming final
project based on the algorithm. The text-reconstruction has been
tested in many Duke courses, including courses for non-majors, with
reasonable success in all environments. The final project
builds on
this
project that everyone does (whereas the final project is one of
several, and typically is chosen by students with
previous programming experience.
For the final project, we want to convey a sense of efficiency, and why
this matters. We also want students to understand regular expressions
since they form not only a grammar that is simple to understand and use
(and which is relevant to understanding programming)
Regex
After reading the assignment (see above) students are given a simple
implementatation of merging strands as part of shotgun reconstruction.
The code is below and relies on pattern matching using the
java.util.regex package. Students
have pratice with regexes based
on this regex java tool and a series of
exercises from the 4G website linked above.
Shotgun Redux
Based on this inefficient, but simple code:
public IStrand merge(IStrand other, int threshold) {
String xx = mySeq + "XXX" + other.strandToString();
Matcher m = ourPattern.matcher(xx);
boolean found = m.find();
if (found){
String s = m.group(1);
if (s.length() < threshold) return null;
s = m.replaceFirst(s);
return new SlowStrand(s,getName()+":"+other.getName());
}
return null;
}
Students must design a more efficient implementation. The write-up from
a student presentation
showing what kind of work
students can do with this problem is accessible here.
Student View
One of the students in the first offering of the course was the TA for
the second course. He worked to put together a
scope and sequence for
assignments and materials.
Owen L. Astrachan
Last modified: Sun Mar 26 14:25:26 EST 2006