BIOL4417/5517:OrganicEvolution Fall2018
DueFridayOctober12,2018at5:00PM
Mid-TermExam
This is a take-home exam: use your text, notes and other materials to prepare your answers. You may discuss
questions with classmates but must write your answers independently. Although factual, accurate answers are
expected, much of your grade will depend upon the thoughtfulness and creativity of your answers. Concise,
complete & grammatically correct sentences are essential; references are allowed but not required. Please
number your answers using the question numbers (otherwise, your grader will get confused).
The exam is due Friday October 12 at 5:00 PM, submitted on the Moodle website.
Part 1. The following problems require quick calculations and short answers (a couple of sen-
tences). Solve BOTH of the problems. 5 points each. Read each question carefully.
1. Due to the small population size, the coat color in Yellowstone National Park’s gray wolves (Canis lupus) is
largely determined at the K-locus by the alleles A1 and A2. Yellowstone wolves with genotype A1A1 have the
black coat beneficial for hunting in forested ecosystems; fitness of W11 = 0.80. Wolves with the genotype
A2A2 have the gray coat normally found in open tundra ecosystems; W22 = 0.75. Wolves A1A2 are interme-
diate for coat color; W12 = 1.0. At equilibrium, what will be the frequencies of the A1 allele and the three
genotypes? Show all work and fully justify your answer.
2. At another wolf locus, wild-type individuals have genotype T1T1 and very white teeth. Now consider an an-
cient mutation that introduced a neutral allele, T2: individuals with T1T2 have somewhat less white teeth
and those with T2T2 have substantially less white teeth. Although initially only found in one individual, after
100 generations T2 increased to a frequency of q = 0.01. After 500 generations, q = 0.1. Today, after 1000
generations, q = 0.55. What is the probability today that the neutral T2 will eventually become fixed in
the population? Show all work and justify your answer.
Part 2. The following questions require concise answers, about 1 paragraph. Answer only FOUR
of the questions. Read the questions carefully. 15 points each.
3. A small group of vampire ground finches (Geospiza septentrionalis) were flying between islands in the Ga-
lapagos and on their way to a Halloween party. A storm blew in and redirected the birds to an island that
had never previously been inhabited by vampire ground finches. After a few years, the birds have happily
made the new island their home and they are visited by an ornithologist. The ornithologist bands the finch-
es, collects feathers for a genetic analysis, and finds that this isolated population of vampire ground finches
is not in Hardy-Weinberg equilibrium. Why is this, and what is the potential long-term significance?
4. It has been said, "Natural selection does not work as an engineer works. It works like a tinkerer." What
might thi.
1. BIOL4417/5517:OrganicEvolution Fall2018
DueFridayOctober12,2018at5:00PM
Mid-TermExam
This is a take-home exam: use your text, notes and other
materials to prepare your answers. You may discuss
questions with classmates but must write your answers
independently. Although factual, accurate answers are
expected, much of your grade will depend upon the
thoughtfulness and creativity of your answers. Concise,
complete & grammatically correct sentences are essential;
references are allowed but not required. Please
number your answers using the question numbers (otherwise,
your grader will get confused).
The exam is due Friday October 12 at 5:00 PM, submitted on
the Moodle website.
Part 1. The following problems require quick calculations and
short answers (a couple of sen-
tences). Solve BOTH of the problems. 5 points each. Read each
question carefully.
1. Due to the small population size, the coat color in
Yellowstone National Park’s gray wolves (Canis lupus) is
largely determined at the K-locus by the alleles A1 and A2.
Yellowstone wolves with genotype A1A1 have the
black coat beneficial for hunting in forested ecosystems; fitness
of W11 = 0.80. Wolves with the genotype
A2A2 have the gray coat normally found in open tundra
ecosystems; W22 = 0.75. Wolves A1A2 are interme-
diate for coat color; W12 = 1.0. At equilibrium, what will be the
frequencies of the A1 allele and the three
2. genotypes? Show all work and fully justify your answer.
2. At another wolf locus, wild-type individuals have genotype
T1T1 and very white teeth. Now consider an an-
cient mutation that introduced a neutral allele, T2: individuals
with T1T2 have somewhat less white teeth
and those with T2T2 have substantially less white teeth.
Although initially only found in one individual, after
100 generations T2 increased to a frequency of q = 0.01. After
500 generations, q = 0.1. Today, after 1000
generations, q = 0.55. What is the probability today that the
neutral T2 will eventually become fixed in
the population? Show all work and justify your answer.
Part 2. The following questions require concise answers, about
1 paragraph. Answer only FOUR
of the questions. Read the questions carefully. 15 points each.
3. A small group of vampire ground finches (Geospiza
septentrionalis) were flying between islands in the Ga-
lapagos and on their way to a Halloween party. A storm blew in
and redirected the birds to an island that
had never previously been inhabited by vampire ground finches.
After a few years, the birds have happily
made the new island their home and they are visited by an
ornithologist. The ornithologist bands the finch-
es, collects feathers for a genetic analysis, and finds that this
isolated population of vampire ground finches
is not in Hardy-Weinberg equilibrium. Why is this, and what is
the potential long-term significance?
4. It has been said, "Natural selection does not work as an
engineer works. It works like a tinkerer." What
might this mean? In what ways is natural selection more like a
tinkerer than a biological engineer?
3. 5. Southern red-backed voles (Myodes gapperi) are a small
rodent native to most of Canada and south into
our local Mink Creek area. The red-backed voles get their name
from the red/brown streak of fur that can
extend from the nape of their neck to their rump. The length of
the red/brown streak has a strong genetic
component (1 gene, 2 alleles). These voles prefer to live in
forests and don’t like to leave the forest or travel
between forests. Jonathan has been conducting small mammal
trapping in Mink Creek and (amazingly!)
has captured every single southern red-backed vole in the area.
Jonathan has counted 502 voles with very
long streaks (probably homozygous for allele 1), 601 voles with
mid-length streaks (probably heterozy-
gotes), and 397 voles with small streaks (probably homozygous
for allele 2). Is the population in Hardy-
Weinberg equilibrium? If not, offer a hypothesis for why it
might be out of HWE, and briefly justify your
hypothesis. Does the population survey data support your
hypothesis?
6. Since it is not possible for evolutionary biologists to go back
in time, phylogenetic relationships are hypoth-
esized and described in phylogenetic trees. Briefly describe one
of the approaches used to infer phylogeny.
What types of criteria are used for that approach? How can the
suitability a tree be evaluated?
7. When a beneficial mutation occurs in an individual (e.g. from
A1 to A2), what proportion of the population
has the mutated allele (A2)? What are the potential fates of the
mutated allele? What might be the conse-
quences for a population with this mutation?
4. BIOL4417/5517:OrganicEvolution Fall2018
DueFridayOctober12,2018at5:00PM
8. The evolution of antibacterial resistance frequently involves
a resistance allele that initially exists in the
population at very low frequencies even though that allele is
slightly deleterious under normal conditions
(when no antibiotics are present). What processes might work to
maintain the deleterious allele in the bac-
terial population under those conditions? How does this process
maintain the deleterious allele in the
population?
Part 3. The following question requires a more extensive
answer, about 1 page. Provide exam-
ples to illustrate your points and define all your terms. 30
points.
9. The Russian olive (Elaeagnus angustifolia) was introduced to
central and western North America in the
late 1800’s as an ornamental tree and a windbreak. The trees
soon escaped cultivation and began reproduc-
ing into the wild. Since then, Russian olive has become
invasive, displaced countless native cottonwood for-
ests (Populus sp.), and become naturalized across the western
US. Studies of population genetics show that
Russian olive populations in North America are NOT in Hardy-
Weinberg equilibrium. What does this
mean? Propose two hypotheses that explain HW disequilibrium
in Russian olive and describe the ra-
tionale for both hypotheses. Briefly outline a possible test for
one of those hypotheses.
Part 4. Extra credit (up to 5 points each!). Each question
requires concise answers (a couple of
5. sentences). Read each question carefully.
10. The average mutation rate across the human genome is
4.8x10-9 per base pair per generation. Statistically,
each humane zygote should have 317 mutations. Why don’t we
observe more humans with obvious muta-
tions in society? What types of mutations do we most commonly
observe?
11. The root of the phylogeny of primates represents the
common ancestor to all primates (see cladogram, Fig.
19.4 in your text, p. 681). Based only on this tree, which
primate species has changed most (in genotype,
phenotype, or both) since diverging from this common ancestor?
a. Lemur
b. Chimpanzee
c. Both primate lineages have experienced the same amount of
change
d. It is not possible to determine an answer from this tree
Choose the best answer from the 4 possibilities and justify your
answer.
12. If humans evolved from great apes, why are there still great
apes? Explain.
Remove or Replace: Header Is Not Doc Title
Name:
Date:
Class: IT2249
Unit:
6. Insert here a copy of your zip file of all of your NetBeans
project files so that it could be unzipped, loaded and run in
another NetBeans:
Insert here a copy of your *.java source code text that you used
here (copy and paste source code here, do not simply insert
*.java files):
Insert here a screenshot showing the result of testing your
application as directed by the assignment:
Explain your approach you took to complete this assignment
and the major decisions you made:
1
2
1
7. Complete the Programming of an Object-Oriented
Console Application
In this assessment, you will complete the programming of two
Java class methods in a console
application that registers students for courses in a term of study.
The application is written using
the Object-Oriented features of the Java programming language.
The application does compile
and does run, but it does not produce the expected result as
stated in its requirements. You can
use either the Toolwire environment or your local Java
development environment to complete
this assignment.
You have been hired to complete the source code of these two
methods such that the
application meets its stated requirements. Specifically, your
added code should:
• In one method, prints out a list of courses available for
registration and prompt the user
to select a course for which to register
• In the second method, prints out a current list of registered
courses and their total credit
hours
The requirements of this application are as follows: The
application is register students for
courses in a term of study.
The assumptions used by the application are:
• Student enter only integers to select courses for registration
from a menu. No data type
validation of the user menu selection is checked or required
8. • The program terminates only when the student closes it
The program must follow these registration business rules:
• No registration of other courses not displayed by the program
• No registration more than once for the same course
• No registration for more than 9 credit hours (e.g. no more than
3 courses)
The application uses Java Object-Oriented features for its
implementation. Students select from
a menu of courses for which they wish to register. The program
then validates the user
selection against the registration business rules. If the selection
is valid, the program prints out
a confirmation message. Otherwise, the program prints out the
current list of registered classes
along with total registered credit hours. The program terminates
when the user does not want to
register for classes any more.
There are two Java classes of this application:
1. Course.java. This Java class is complete and does not need
any modification
2. U10A1_OOConsoleRegisterForCourse.java. This is the class
with the two methods that
need to be completed
The two methods that need to be completed of the
U10A1_OOConsoleRegisterForCourse.java
9. are:
1. getChoice() method. This method loops over an array of
course objects and prints out
their attributes, one per line according to this format:
2
[selection number]Course Code (Course Credit Hours)
2. WriteCurrentRegistration() method. This method also loops
over the array of course
objects and prints out a list of registered courses thus far. The
list current registered
courses are enclosed inside a { } and separated by a ,. The
methods also prints out the
total credit hours thus far
Use these course codes, in this order, to test your application:
• T2230
• IT2249 IT2230 IT3345
Successful completion of this assignment will display a menu of
courses from which to select to
register in the format of
[selection number]Course Code (Course Credit Hours)
10. In addition, the application should display and update current
list of registered courses and their
total credit hours. Your program interaction should look like the
sample interaction video, “OO
Console Register for Course”
Follow these steps to complete this assignment:
1. Unzip the NetBeans project zip file available in the resources
(U10A1_OOConsoleRegisterForCourse.zip) and load it into
your NetBeans IDE.
2. Complete the application programming (the getChoice() and
the
WriteCurrentRegistration() method) to meet the stated
requirements.
3. Compile and test your application using the provided input
data. Make sure to document
the result of your testing by taking screenshots of the result of
running your application
similar to the provided sample output. Four screenshots are
required for this assignment
(one for each course code of the provided input data).
4. Explain the approach you took to complete this assignment
and the major decisions you
made. As part of your explanation, be sure to identify the
fundamental Java constructs
you used that were specific and relevant to your submitted
program.
Deliverables
Use the submission template available in the
resources(WeekX
11. Solution
SubmissionTemplate.docx) to complete and submit your
deliverables.
Your deliverables in the submission template should include:
1. Your work (Netbeans project zip file + copy of *.java source
code)
2. Screenshots of the result of testing your application. See the
examples in the interaction
video.
3. Explain the approach you took to complete this assignment
and the major decisions you
made. As part of your explanation, be sure to identify the
fundamental Java constructs
you used that were specific and relevant to your submitted
program.
Complete the Programming of an Object-Oriented Console
ApplicationDeliverables
12. U10A1_OOConsoleRegisterForCourse/build.xml
Builds, tests, and runs the project
U10A1_OOConsoleRegisterForCourse.
U10A1_OOConsoleRegisterForCourse/build/classes/.netbeans_a
utomatic_build
U10A1_OOConsoleRegisterForCourse/build/classes/.netbeans_u
pdate_resources
U10A1_OOConsoleRegisterForCourse/build/classes/u10a1_ooco
nsoleregisterforcourse/Course.classpackage
u10a1_ooconsoleregisterforcourse;
publicsynchronizedclass Course {
private String code;
private int creditHour;
private boolean isRegisterdFor;
public void Course(String, int);
public void setCode(String);
public String getCode();
public void setCrditHour(int);
13. public int getCreditHour();
public void setIsRegisteredFor(boolean);
public boolean getIsRegisteredFor();
}
U10A1_OOConsoleRegisterForCourse/build/classes/u10a1_ooco
nsoleregisterforcourse/U10A1_OOConsoleRegisterForCourse.cl
asspackage u10a1_ooconsoleregisterforcourse;
publicsynchronizedclass U10A1_OOConsoleRegisterForCourse
{
public void U10A1_OOConsoleRegisterForCourse();
publicstatic void main(String[]);
publicstatic int getChoice(Course[], java.util.Scanner);
publicstatic int ValidateChoice(int, int, Course[]);
publicstatic boolean IsRegisteredBefore(int, Course[]);
publicstatic void WriteCurrentRegistration(Course[], int);
}
U10A1_OOConsoleRegisterForCourse/manifest.mf
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
54. To run this application from the command line without
Ant, try:
java -jar "${dist.jar.resolved}"
55.
56. Must select one file in the IDE or set run.class
Must select one file in the IDE or set run.class
57. Must select one file in the IDE or set debug.class
Must select one file in the IDE or set debug.class
Must set fix.includes
58. This target only works when run from inside the NetBeans
IDE.
Must select one file in the IDE or set profile.class
This target only works when run from inside the NetBeans
IDE.
59. This target only works when run from inside the NetBeans
IDE.
This target only works when run from inside the NetBeans
IDE.
60.
61. Must select one file in the IDE or set run.class
Must select some files in the IDE or set test.includes
Must select one file in the IDE or set run.class
Must select one file in the IDE or set applet.url
66. Must select some files in the IDE or set test.includes
Some tests failed; see details above.
Must select some files in the IDE or set test.class
Must select some method in the IDE or set test.method
Some tests failed; see details above.
Must select one file in the IDE or set test.class
Must select one file in the IDE or set test.class
Must select some method in the IDE or set test.method
67. Must select one file in the IDE or set applet.url
Must select one file in the IDE or set applet.url
77. # You may also define separate properties like run-sys-
prop.name=value instead of -Dname=value.
# To set system properties for unit tests define test-sys-
prop.name=value:
run.jvmargs=
run.test.classpath=
${javac.test.classpath}:
${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test
U10A1_OOConsoleRegisterForCourse/nbproject/project.xml
org.netbeans.modules.java.j2seproject
80. publicint getCreditHour(){
returnthis.creditHour;
}
publicvoid setIsRegisteredFor(boolean trueOrFalse){
this.isRegisterdFor = trueOrFalse;
}
publicboolean getIsRegisteredFor(){
returnthis.isRegisterdFor;
}
}
U10A1_OOConsoleRegisterForCourse/src/u10a1_ooconsoleregi
sterforcourse/U10A1_OOConsoleRegisterForCourse.javaU10A1
_OOConsoleRegisterForCourse/src/u10a1_ooconsoleregisterforc
ourse/U10A1_OOConsoleRegisterForCourse.java/*
* To change this license header, choose License Headers in Pro
ject Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
81. package u10a1_ooconsoleregisterforcourse;
import java.util.Scanner;
/**
*
* @author omora
*/
publicclassU10A1_OOConsoleRegisterForCourse{
/**
* @param args the command line arguments
*/
publicstaticvoid main(String[] args){
// TODO code application logic here
System.out.println("Teacher's Copy");
Scanner input =newScanner(System.in);
//Courses is an array of course objects
//see the Course.java source code for members of Course
Course[] courses ={
newCourse("IT1006",6),
83. System.out.println("**Invalid** -
You have already registerd for this "+
courses[choice-1].getCode()+" course.");
break;
case-3:
System.out.println("**Invalid** -
You can not register for more than 9 credit hours.");
break;
case0:
System.out.println("Registration Confirmed for course "+
courses[choice-1].getCode());
totalCredit += courses[choice-1].getCreditHour();
courses[choice-1].setIsRegisteredFor(true);
break;
}
WriteCurrentRegistration(courses, totalCredit);
System.out.print("nDo you want to try again? (Y|N)? : ");
yesOrNo = input.next().toUpperCase();
}while(yesOrNo.equals("Y"));
System.out.println("Thank you for registering with us");
84. }
//This method prints out the selection menu to the user in the fo
rm of
//[selection number]Course Code (Course Credit Hours)
//from the courses array one per line
//and then prompts the user to make a number selection
publicstaticint getChoice(Course[] courses,Scanner input){
System.out.println("Please type the number inside the [] to regis
ter for a course");
System.out.println("The number inside the () is the credit hours
for the course");
// TO DO
// loop over the courses array and print out the attributes of its
//objects in the format of
//[selection number]Course Code (Course Credit Hours)
//one per line
System.out.print("Enter your choice : ");
return(input.nextInt());
}
//This method validates the user menu selection
85. //against the given registration business rules
//it returns the following code based on the validation result
// -1 = invalid, unrecognized menu selection
// -2 = invalid, alredy registered for the course
// -3 = invalid, No more than 9 credit hours allowed
// 0 = menu selection is valid
publicstaticintValidateChoice(int choice,int totalCredit,Course[]
courses){
if(choice <1|| choice >7)
return-1;
elseif(IsRegisteredBefore(choice, courses))
return-2;
elseif((totalCredit + courses[choice-1].getCreditHour())>9)
return-3;
return0;
}
//This method checks the courses array of course object to
//see if the course has already been registered for or not
publicstaticbooleanIsRegisteredBefore(int choice,Course[] cour
ses){
for(int i =0; i < courses.length; i++)
if(courses[choice-1].getIsRegisteredFor()==true)
returntrue;
86. returnfalse;
}
//This method prints the current list of registered courses thus fa
r
//from the courses array separated by , and enclosed inside { }
//It also prints the total credit registered for thus far
publicstaticvoidWriteCurrentRegistration(Course[] courses,int t
otalCredit){
System.out.print("Current course registration: { ");
// TO DO
// loop over the courses array, determine which courses are regis
tered
//for thus and print them out in the format of
//{ list of courses separated by , }
System.out.println(" }");
System.out.println("Current registration total credit = "+ totalCr
edit);
}