I have been a student at Duke since the Fall of 2000 (as an undergraduate and since Fall 2004 as a graduate student), and during that time I have had the opportunity to take many interesting classes; additionally, I have had the chance to TA for many computer science classes.
coursework
fall 2005
- CPS 271 - Numerical Artificial Intelligence (Machine Learning) (Parr) - This course provided an overview to many machine learning techniques: unsupervised learning (clustering and EM); supervised learning (regression, boosting, SVMs, neural networks, decision trees, density estimation, nearest neighbor techniques, and Gaussian discriminant analysis); and reinforcement learning (policy search, least squares policy iteration).
- STAT 213 - Introduction to Statistical Methods (Lavine) - This was the standard graduate introductory statistics course; it covered the basic elements of statistical methods and inference. We also discussed computational approaches using R.
- BGT 203 - Genome Informatics and Sequence Analysis (Lin) - This class is being taught in an interesting way this semster. The first half of the semester, the class is split into two groups and each group is working on a real genome informatics research problem. I am still not sure what the second half of the semester entails.
- BGT 207 - Computational Structural Biology (Schmidler) - This course will provide an introduction to the theory and computation for studying macromolecular structure and function.
- BGT 210 - Bioinformatics and Genome Technology Seminar Series - This is a series of weekly lectures often given by visiting and invited faculty designed to keep students up to date with the current issues in computational biology.
- STAT 293.2 - Statistical Learning: Algorithms and Theory (Mukherjee) - This is a very heavy theory class about statistical learning theory. It goes into detail and theory of two classifiers which fall into the realm of regularization algorithms (Support Vector Machines) and voting algorithms (AdaBoost).
- STAT 293.3 - Data Mining and Machine Learning (Liang) - This course will introduce the fundemental concepts and problems associated with data mining and provide and overview of recent discoveries in the area. Many examples will be specific to Computational Biology as well.
- CPS 230 - The Design and Analysis of Algorithms (Reif) - This was the standard graduate algorithms course. We covered most of CLRS in a semester, even most of the Appendices. My final project for the course was Pseudo-Local Alignment of Continuous Time Signals.
- CPS 270 - Artificial Intelligence (Parr) - This was the standard graduate AI course. We had two interesting projects in the class, one was to implement alpha beta search in an ad hoc southpark themed game with a branching factor starting around 40. I used reinforcement learning with a single hidden layer neural network to construct an evaluation function to use in the alpha-beta search. The second project was to implement a particle filter for use in a simple robot localization task.
- CPS 300 - Introduction to Graduate Studies (Chase) - This was the introduction to graduate studies class that all first year students in the department take. We discussed topics from how to research and how to pick and advisor to the ethics of research.
- BGT 200 - Statistical Methods for Computational Biology (Iverson) - This class provided an introduction to statistical inference and stochastic modelling underlying many problems in computational biology. Most of the homework assignments were in R, which is an interesting and useful statistical programming language.
- CPS 262 - Computational Functional Genomics (Hartemink) - This class discussed the computational aspects of compuational biology at the level of gene expression. We read many interesting papers and covered gene expression analysis in some detail, from the low level processing of the actual microarray data to the higher level unsupervised and supervised learning applications. My final project tried to reduce the eventual effect of unsyncrhonized cell populations that plague time-series cell cycle data. After creating a detailed model of cell populations at each stage in the cell cycle, the lack of complete synchronization could be compensated for by extracting out (via deconvolution) the expression levels of the unsynchronized cells.
- CPS 220 - Advanced Computer Architecture (Sorin) - This was the standard graduate level computer architecture class. We read many of the important milestone papers of the field and covered topics from simple pipelining to multiscalar architectures and a survey of parallel architectures. This is the first class in a two class graduate architecture series. The second class goes into depth about parallel and distributed systems. Our final projects involved extending the SimpleScalar simulator to include a new architectural optimization. My final project was A Comparison of FIFO-Based Scheduling Policies on a Clustered Version of the MIPS R10K.
previous courses
My undergraduate education was in Electrical and Computer Engineering and Computer Science, so in addition to taking the standard engineering mathematics classes such as Linear Algebra and Differential Equations, I also have some proficiency with circuit design and analysis as well as some VHDL experience in digital system design. My areas of concentration within ECE were Computer Architecture and Signal Processing, so I have taken some additional classes in those fields. As an undergraduate I also took a Pattern Classification and Recognition class.
In Computer Science I took the standard programming classes and learned Java, C++, C, and some MIPS Assembly. Additionally, I took an Introduction to Computational Biology course in which I learned Perl. It was this class that got me interested in Computational Biology.
courses as a ta
cps160 - spring 05 (Hartemink)
This class was officially called "Introduction to Computational Genomics." Students explored topics including global and local sequence alignment (pairwise and multiple), BLAST and FASTA, Markov models and HMMs, Viterbi and posterior decoding, and a bit about microarrays, gene expression, and clustering. The class nicely tied together different aspects of algorithms and statistics through the lectures and several interesting assignments. The students gained proficiency in progamming in Perl from the problem sets and through two tutorial session I gave at the beginning of the semester.
My responsibilities in this class were to hold office hours as well as provide guidance to questions on an online discussion board. I was responsible for grading the homework assignemnts and I played a large role in modifying and updating each problem set. Some guides I wrote up for getting Eclipse working with Perl and brief descriptions of breadth and depth first searches.
Using Eclipse to make your first Perl program
Overview of breadth first search and depth first search
cps006g - fall 04 (Astrachan)
This class was part of a FOCUS program at Duke. The FOCUS program defines a set of classes for freshmen which are about the same general subject material. The particular FOCUS set of classes that CPS 6G was a part of were about genomics; so there was a biology class, an ethical genomics class, as well as a computer science class. In CPS 6G, the students learned how to develop simple algorithms and how to program in Java, with all of the assignments having a computational biology flavor to them.
My responsibilities in this class were to hold office hours as well as provide guidance to questions on an online discussion board. In addtion, Prof. Astrachan was out of town for two of the class periods, during which time I gave lectures to the students in his place.
cps108 - fall 02 (Duvall), spring 04 (Astrachan)
will add morecps110 - fall 03 (Ellis)
will add more. the bulletin board.