CSCI 4490-6490 Algorithms for Computational Biology Spring 2016

Homework Assignment 1


Problems:

  1. Choose one of the following tasks to do:

    (1) Write a simple enumeration algorithm, either recursive or iterative, that prints all 4-mers consisting of 5 letters {-, A, C, G, T}, in the order of

    (2) Write a recursive algorithm that can search a list (array) for a key. The algorithm outputs the index of the array element that contains the key if it is found, and 0 otherwise. Code this algorithm using a programming language.

    (3) Code the recursive Fibonacci algorithm using a programming language. Add some instrucmentaional statements to the code so that it records the number of times the recursive algorithm is called. Can you also try to record the number of times the algorithm is called for every specific number k=1, 2, ..., n, where n is the input parameter to the algorithm?

  2. Code the exhaustive search algorithm BruteForceMotifSearch for the motif finding problem given in the book (no branch-and-bound is necessary) so that it runs correctly on computers.

  3. Design a new score strategy for Score(s, DNA) that is different from the strategy given in the book.

Requirements:

For problem 1, your algorithm can be written in pseudocode or some programming language (if you wish to run the program and test its correctness.

For problem 2, you may use any programming language to code the algorithm. Note that no built-in functions can be used if they can substantially accomplish any function or subroutine needed by the BruteForceMotifSearch algorithm. The code program should be tested to ensure it can output results correctly. The instructor will provide some data for you to test your program. You will be required to demo your program in his office.

Problem 3 can be completed as a team work (of at most two students). You will need to submit a report on how you solve this problem and demo your program.

Sequence data samples to test your program for problem 2.

General Guidelines to Homework Submission: You need to submit a written answer to every question even for a pure programming task. Specifically,

This homework is due on Tuesday February 2, 2016.