Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using Molecular Biology to Teach Computer Science

Similar presentations


Presentation on theme: "Using Molecular Biology to Teach Computer Science"— Presentation transcript:

1 Using Molecular Biology to Teach Computer Science
Runtime Complexity Measuring the Efficiency of Algorthms MARC: Developing Bioinformatics Programs Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist: Learning with Python

2 Essential Computing for Bioinformatics

3 Runtime Complexity - 'Big O' Notation
def fact(n): if (n==0): return 1 else: return n * fact(n - 1) How 'fast' is this function? Can we come up with a more efficient version? How can we measure 'efficiency' Can we compare algorithms independently from a specific implementation, software or hardware? These materials were developed with funding from the US National Institutes of Health grant #2T36 GM to the Pittsburgh Supercomputing Center

4 How about Comparing Actual Runtimes?
Idea: Run each algorithm on same input and compare execution times Must account for differences such as: Hardware Computing Capacity and Efficiency Operating System Efficiency Compiler Optimization and othe PL issues Computer Loads Programmer Skill Want to compare algorithms even before they are implemented!

5 Runtime Complexity - 'Big O' Notation
Big Idea Measure the number of steps taken by the algorithm as an asymptotic function of the size of its input What is a step? How can we measure the size of an input? Answer in both cases: YOU CAN DEFINE THESE! These materials were developed with funding from the US National Institutes of Health grant #2T36 GM to the Pittsburgh Supercomputing Center

6 'Big O' Notation - Factorial Example
A 'step' is a function call to fact The size of an input value n is n itself def fact(n): if (n==0): return 1 else: return n * fact(n - 1) Step 1: Count the number of steps for input n T(0) = 0 T(n) = T(n-1) + 1 = (T(n-2) + 1) + 1 = … = T(n-n) + n = T(0) + n = 0 + n = n Step 2: Find the asymptotic function A.K.A Linear Function T(n) = O(n) These materials were developed with funding from the US National Institutes of Health grant #2T36 GM to the Pittsburgh Supercomputing Center

7 Various Asymptotic Runtimes

8 Some Famous Algorithms and their Runtimes
Sequentially searching a list of n objects O(n) comparisons Binary search within sorted array of n objects O(logn) comparisons QuickSort an array of n objects using comparisons O(nlogn) comparisons Aligning two sequences of length n and m: BLAST, NW, SW, FASTA O(nm) matrix Traveling Salesman Problem O(2n)


Download ppt "Using Molecular Biology to Teach Computer Science"

Similar presentations


Ads by Google