H I S T O R Y O F M E D I C I N E I N U K R A I N E .

What is the effect of executing the class Main above?

class Main

{

public static void main( String args[] )

{

String mesg = "Answer is ";

int sum = 1 + 2;

System.out.println( mesg + sum );

}

}

· Prints mesg + sum

· Prints “mesg+sum”

· Prints 3

· Prints Answer is 3

· Prints Answer is 1 + 2

Consider the following code snippet

String river = new String(“Columbia”);

System.out.println(river.length());

What is printed?

· 8

· Columbia

· 6

· 7

· river

After the following code fragment, what is the value in a?

String s;

int a;

s = "Foolish boy.";

a = s.indexOf("fool");

· -1

· random value

· 0

· 4

· fool

What is an infinite loop?

· A loop that functions infinitely well

· A loop that will never function

· An incorrect loop

· A loop that runs forever

· A loop that never starts

The sequence \n does what?

· Makes a link

· Starts a new line

· Finishes text

· Prints a backslash followed by a n

· Adds 5 spaces

Given the following code fragment:

int A[];

int i = 0;

A = new int A[4];

while (i < 4)

{

A[i] = 10;

i = i + 1;

}

What is the value of A[3]?

· 10 (if A = new int[4];)

· 4

· 0

· 3

· Integer.MAX_VALUE

What is the value of the variable a3 after execution of the following code:

String a1, a2, a3;

a1 = “45”;

a2 = ”31”;

a3 = a2 + a1;

· “4531”

· “3145”

· 45

· 31

· 76

Assume that x, y, and z are all ints equal to 50, 20, and 6 respectively. What is the result of x / y / z?

· 0

· A syntax error as this is syntactically invalid

· A run-time error because this is a division by 0

· 12

· 16

Given that x is a double variable and num is an int variable containing the value 5, what will x contain after execution of the following statement:

x = num / 2;

· 2.5

· 5.0

· a compile-time error occurs

· 2

· 2.0

After execution of the following code, what will be the value of item if its initial value is 10?

if (item > 5)

item = item + 5;

if (item < 10)

item = item + 10;

else if (item < 20)

item = item + 10;

· 15

· 25

· 0

· 5

· 10

Consider the following switch statement where x is an int,

switch (x)

{

case 3 : y = x + 1;

case 4 : x = x + 2;

y = ++x;

case 5 : x = y + 3;

y = x++;

break;

case 6 : x++; y = x;

}

If x is currently equal to 4, what will the value of y be after the switch statement executes?

· 8

· 10

· 6

· 7

· 11

If x is an int where x = 0, what will x be after the following loop terminates?

while (x < 100)

x = x*2;

· 100

· 128

· 2

· 64

· this is an infinite loop

Given the following code, where x = 0, what is the resulting value of x after the for-loop terminates?

for (int i = 0; i < 3; i++)

x = x + i;

· 3

· 5

· 0

· 1

· 10

The do–while loop differs from the while loop in that

· the do–while loop will continue to loop while condition in the while statement is false and the while loop will continue to loop while the condition in the while statement is true

· the while loop will continue to loop while condition in the while statement is false and the do–while loop will continue to loop while the condition in the while statement is true

· the while loop will always execute the body of the loop at least once

· the do–while loop will always execute the body of the loop at least once

· none of the above, there is absolutely no difference between the two types of loops

What is the value of someInt after control exits the following loop?

someInt = 3;

for (k = 0; k < 3; k++)

someInt = someInt * k;

· 5

· 6

· 0

· 2

· 7

Using De Morgan’s law, how would you rewrite the following conditional statement

(i.e. is rewrite the statement using && instead of ||) ( c!='n' && z+2<=5 )

· !(c=='n' || z+2>5)

· !(c=='n' || z+2<5)

· !(c!='n' || z+2<=5)

· !(c=='n' || z+2>=5)

· !(c!='n' || z+2<=5)

What will the following program fragment output?

Integer i = new Integer(5);

Integer j = new Integer(5);

if (i==j)

System.out.println(“Equal”);

else

System.out.println(“Not equal”);

· The program doesn't compile because == can't be used with references

· The program doesn’t execute because i and j are not correctly initialized

· Equal

· Not equal

· Equal Not equal

Given the following method (you may assume it has all compiled correctly so there are no syntax errors), what will be output?

public void printloop()

{

int i;

for (i=1; i<9; i++)

if (i%2 == 0)

System.out.print(i + " ");

System.out.println();

}

· 2 4 6 8

· 9

· 2 4 6

· 8

· 1 3 5 7

What will the method call mystery(1230) return, if the method is defined as follows:

public int mystery(int n) {

int m = 0;

while (n > 0) {

m = 10*m + n%10;

n = n/10;

}

return m;

}

· .123

· .0321

· 0321

· 321

· 0

What will be printed by the code fragment below?

double height = 5.5;

if(height-- >= 5.0)

System.out.print("tall ");

if(--height >= 4.0)

System.out.print("average ");

if(height-- >= 3.0)

System.out.print("short ");

else

System.out.print("very short ");

· short

· tall

· very short

· average short

· tall short

What is the output of loop(8), where loop is defined as follows?

public void loop(int n) {

for (int i=0; i<n; i++) {

System.out.print(i*(i-1)/2);

System.out.print(" ");

}

System.out.println();

}

· 0 3 4 10 12 21 24 36

· 0 0 3 4 10 12 21 24

· 0 0 0 3 4 10 12 21

· 0 1 3 6 10 15 21 28

· 0 0 1 3 6 10 15 21

An array with more than one index is called:

· partially filled array

· one dimensional array

· there are no such arrays

· multidimensional array

· bidirectional array

Which of the following methods will correctly calculate the maximum value in an array? All of these methods compile correctly, so you are only looking for logic errors, not syntax errors. (The method Math.max() is a library method from the API and returns the maximum of its two arguments.)

public int max1(int[] a) {

int maxPos = 0;

for (int i=1; i<a.length; i++) {

if (a[i] > a[maxPos]) {

. maxPos = i;

}

}

return maxPos;

}

public int max2(int[] a) {

int max = a[0];

for (int i=0; i<a.length; i++) {

if (a[i] > max) {

. max = a[i];

}

}

return max;

}

public int max3(int[] a) {

for (int i=1; i<a.length; i++) {

a[i] = Math.max(a[i],a[i-1]);

}

return a[a.length-1];

}

· max1 and max2 only

· max2 and max3 only

· max1 and max3 only

· None of them

· All of them

Consider

public class MyClass{

public MyClass(){/*code*/}

// more code...

}

To instantiate MyClass, you would write?

· MyClass mc = new MyClass();

· MyClass mc = new MyClass;

· It can't be done. The constructor of MyClass should be defined as public void MyClass(){/*code*/}

· MyClass mc = MyClass();

· MyClass mc = MyClass;

In the class Car, you want to create an instance method isSpeeding to check whether an object to type Car is speeding or not. One of the instance fields of the Car class is a double variable speed equal to the current speed of the Car object. The class also lists a constant static double field SPEED_LIMIT, equal to the legal speed limit for the driving conditions of the Car object. What method signature would be best for isSpeeding?

· public void isSpeeding(double speed)

· public isSpeeding()

· public boolean isSpeeding(speed,SPEED_LIMIT)

· public boolean isSpeeding()

· public boolean isSpeeding(double speed,double SPEED_LIMIT)

Consider the two methods (within the same class)

public int foo(int a, String s)

{

s = "Yellow";

a=a+2;

return a;

}

public void bar()

{

int a=3;

String s = "Blue";

a = foo(a,s);

System.out.println("a="+a+" s="+s);

}

What is printed if method bar() is called?

· a=3 s=Yellow

· a=5 s=Blue

· a=3 s=Blue

· a=5 s=Yellow

· The code doesn't compile

Consider the following class definition:

public class MyClass{

private int value;

public void setValue(int i){ /* code */ }

// Other methods...

}

The method setValue assigns the value of i to the instance field value. What could you write for the implementation of setValue?

· value == i;

· both “value = i;” and “this.value = i;” are correct

· value = i;

· this.value = i;

· All of the answers are correct

The behavior of an object is defined by the object's

· visibility modifiers

· methods

· classes

· instance data

· constructor

Which reserved word is used to create an instance of a class?

· public or private, either could be used

· import

· new

· class

· public

What is GUI?

· uses buttons, menus, and icons

· uses buttons, menus, and icons for user and computer interaction

· for user and computer interaction

· stands for Graphic Use Interaction

· all of the above

What does IDE stand for?

· Interior Development Environment

· Interior Design Environment

· Integrated Development Environment

· Integrated Design Environment

· Infrared Digital Environment

Consider the following class with a single method

public class Doubler {

public void doubleIt(int n) {

n = 2*n;

}

public void doubleIt(int [] n) {

n[n.length-1] = 2*n[n.length-1];

}

}

What happens when the class is compiled, and the following sequence of statements (which is part of a method of another class) is compiled and executed?

int x = 20;

int [] y = {1, 5, 10};

Doubler d = new Doubler();

d.doubleIt(x);

d.doubleIt(y);

System.out.println(x + " " + y[y.length-1]);

· The values 40 20 will be printed to the terminal window.

· The values 20 10 will be printed to the terminal window.

· The values 20 2 10 20 will be printed to the terminal window.

· The values 40 10 will be printed to the terminal window.

· The values 20 20 will be printed to the terminal window.

Consider the following code fragment

Rectangle r1 = new Rectangle();

r1.setColor(Color.blue);

Rectangle r2 = r1;

r2.setColor(Color.red);

After the above piece of code is executed, what are the colors of r1and r2 (in this order)?

· Color.blue and Color.red

· Color.red and Color.blue

· Color.blue and Color.blue

· Color.red and Color.red

· Not enough information

If result = 2 + 3 * 5, what is the value of result?

· 25

· 17

· 30

· 14

· 10

What is data type of numbers such as 3.14159?

· long

· double

· int

· real

· string

What is function?

· An entity that receives inputs and outputs

· An output

· A way of storing values

· A sequence of characters enclosed by quotes

· A kind of computer

5 bits can be used to represent ___ distinct items or values.

· 20

· 24

· 32

· 64

· 6

If the int variables int1 and int2 contain the values 5 and 2, respectively, then the value of the expression (double)(int1) / int2 is:

· 2.0

· 2.5

· 0.25

· 0

· 2

Mae's accounting service helps each customer figure their tax owed. The customer's first name, middle initial and last name go on the form. The number of dependents is needed, along with the total income for the year. Mae charges a fee of 1.5% of total income for the service. Which one of the following would be the best suitable type for a variable that stores the number of dependents of the customer?

· int

· char

· String

· boolean

· double

What is the type and value of the following expression? (notice the integer division)

-4 + 1/2 + 2*-3 + 5.0

· int; -4

· double; -5.0

· int; -5

· double; -4.5

· not correct expression

You are programming a game of dice. You need to generate a random integer that can be 1, 2, 3, 4, 5, or 6. Which of the following expression would you select? Recall that Math.random() returns a random double >=0 and <1

· (int)(Math.random()*6)+1

· (int)(Math.random()+6)

· (int)(Math.random()*6)

· Math.random()*6

· ((int)Math.random())*6+1

What will be the value of x after the following statement?

int x = 73/5%3;

· 2

· 36

· 0

· 1

· 35

What does the method call fib(7) return if fib is defined as follows?

public int fib(int n) {

int[] a = new int[n];

a[0] = 1;

a[1] = 1;

for (int i=2; i<n; i++) {

a[i] = a[i-1] + a[i-2];

}

return a[n-1];

}

· 13

· 21

· 6

· 8

· 55

If a and b are variables of type boolean then select such an expression(by use of AND,OR, NOT), where it is true when exactly one of a and b is true, and false under all other circumstances?

· (a && !b) && (!a && b)

· (a || b) && (!a || !b)

· (a || b) || (!a || !b)

· a || b

· a && b

What values do c and d respectively have after the following sequence of statements?

boolean a = true;

boolean b = false;

boolean c = (a || b) && !(a && b);

boolean d = c || (a && b || !(a && b || (a && !b)));

· false, true

· false, false

· true, 0

· true, true

· true, false

What is the value of y when the code below is executed?

int x = 4;

int y = (int)Math.ceil(x % 5 + x / 5.0);

· 4

· 3

· 1

· 6

· 5

What is the range of the random number r generated by the code below?

int r = (int)(Math.floor(Math.random() * 8)) + 2;

· 2 <= r <= 9

· 3 <= r <= 8

· 3 <= r <= 10

· 3 <= r <= 9

· 2 <= r <= 10

What is Polymorphism?

· Ability to store objects of Subclass in references of Superclass.

· Technique to execute method with object’s implementation instead of reference’s.

· Ability to change form of appearance.

· The way to define relative and absolute position in object pool.

· Ability to change form of appearance and the way to define relative and absolute position in object pool.

What is Multithreading?

· Ability to connect to multiple programs and download great amount of data at same time.

· Very powerful technology of programming to create programs that run fast.

· Very thick string with multiple tiny threads.

· Ability to execute multiple code segments simultaneously.

· None of above.

What is Encapsulation?

· Ability to inherit multiple interfaces to provide powerful functionality of objects.

· Using GUI to interact with user when some input data is needed.

· Using private fields to protect data and supplying safe methods to manipulate them

· Creating capsules to store data.

· Separate data to small fragments, so that they easily accessed from memory.

Consider the graph G where V(G)={A,B,C,D} and E(G)=[{A,B},{B,C},{B,D},{C,D}]. The degree of each vertices A,B,C,D respectively in G are…..

· 1,2,2,3

· 2,3,2,2

· 1,2,3,2

· 1,3,2,2

· 1,1,1,1

The maximum number of edges in a n-node undirected graph without self loops is….......

· n^{2}

· n * (n-1) / 2

· n * log(n)

· n * (n+1) / 2

· n - 1

let G be a graph with 100 vertices numbered 1 to 100. Two vertices i and j are adjacent if |i-j|=8 or |i-j|=12. The number of connected components in G is…......

· 25

· 4

· 8

· 12

· 6

A graph in which all nodes are of equal degree is known as…....

· non-regular graph

· regular graph

· single graph

· complete graph

· multi graph

The minimum number of spanning trees in a connected graph with “n” nodes is…..

· 2

· 1

· log n

· n - 1

· n / 2

The minimum number of edges in a connected cyclic graph on ‘n’ vertices is…....

· n^{2}

· n-1

· n

· n+1

· none of these

The minimum number of colours required to colour the vertices of a cycle with “n” nodes in such a way that no two adjacent nodes have the same colour is….......

· 3

· 2

· 1

· n – 2*[n/2] + 2

· n / 2

A graph is planar if and only if it does not contain …..

· sub graphs isomorpic to k_{5} or k(3,3)

· sub graphs isomorpic to k_{3} or k(3,3)

· sub graphs homomorpic to k_{3} or k(3,3)

· a sub graph homomorpic to k_{3} or k(3,3)

· any of these

Given a graph G=(V,E) and a vertex u∈V, the __________ of u is the number of vertices adjacent to u.

· degree

· path

· walk

· trial

· euler

The graph given below is bipartite?

· false

· true

· false but not for all cases

· true but not for all cases

· true for some cases and false for the rest cases

The number of spanning trees in the complete graph K_{8}:

· 6^{8}

· 8^{6}

· 48

· 64

· none of the above

If graph G is defined by an adjacency matrix below, what is the degree of G:

· (3, 2, 3, 2, 2)

· (1, 2, 3, 2, 3)

· (2, 2, 3, 3, 4)

· (0, 1, 1, 2, 0)

· (0, 0, 1, 1, 2)

The first iteration of Bubble Sort over the sequence 7, 3, 4, 1, 5, 2, 6 would give the following result:

· 1, 7, 3, 4, 2, 5, 6

· 3, 7, 1, 4, 2, 5, 6

· 2, 3, 4, 5, 6, 7

· 3, 7, 4, 1, 5, 2, 6

· 1, 7, 4, 3, 5, 2, 6

A sorting algorithm is stable if elements with equal keys are left in the same order as they occur in the input. Which of the following sorting algorithms is NOT stable?

· Quick sort

· Bubble sort

· Merge sort

· Insertion sort

· All of the above

When the input is already sorted, which of the following sorting algorithms has the Best running time?

· Merge sort

· Selection sort

· Insertion sort

· Quick sort

· All above have the same time

An in-place algorithm is an algorithm that transforms input using a data structure with a small, constant amount of extra storage space. Which of the following sorting algorithms is NOT in-place?

· Quick sort

· Insertion sort

· Bubble sort

· Heap sort

· All of the above

What is the Worst-case performance of Quick sort?

· O( N log N)

· O( N ^ 2 )

· O( 1 )

· O( log N )

· O( N )

What is the Best-case performance of Selection sort?

· O( N )

· O( N log N)

· O( 1 )

· O( log N )

· O( N ^ 2 )

Which of the following is NOT true about Heap sort?

· It is a comparison-based sorting algorithm

· Its average case performance is O( N log N )

· It has a better worst-case runtime than that of Quick sort

· It is a stable sort

· It is an in-place algorithm

The second iteration of Radix Sort over the sequence 70, 3, 114, 10, 63, 2, 12 would give the following result:

· 2, 3, 10, 12, 63, 70, 114

· 2, 3, 114, 10, 63, 70, 12

· 10, 70, 2, 12, 3, 63, 114

· 2, 3, 10, 12, 114, 63, 70

· 3, 2, 70, 10, 63, 12, 114

Which of the following would NOT be a good choice for a pivot of Quick sort?

· Middle element

· Median of the first, middle, and last elements

· Random element

· The minimum element in the partition (this causes worst-case behavior on already sorted arrays, which is a rather common use-case)

· All choices are good

Which of the following sorting algorithms is the most efficient for large data sets?

· Bubble sort

· Selection sort

· Shell sort

· Merge sort

· Insertion sort

Which of the following sorting algorithms is/are recursive?

I – Bubble sort II – Selection sort III – Quick sort IV – Merge sort V – Heap sort

· III and IV (merge sort can be either recursive or non-recursive)

· III, IV, V

· I and II

· III only

· All of the above

What are disadvantages of using recursion?

· Recursion works very fast.

· Call to same function too many times, results to stack overflow.

· There are no disadvantages, it is cool feature.

· Recurrent functions such as Fibonacci are hardly implemented.

· Recursion is function that calls itself.

What are advantages of using recursion?

· Recursion has cached variables for each call instance, so it can be used like stack.

· Recursion works very fast.

· Recurrent functions are easily implemented and have cached variables, so they can be used like stack

· Recursion is function that calls itself.

· Recurrent functions such as Fibonacci is easily implemented.

What is recursion?

· Stack of variables are stored in recursion.

· Recursion is some type of cycle.

· Recursive function is something because of which computers works slowly.

· Recursion is solution of Fibonacci series.

· Recursion is function that calls itself.

How many different passwords you can generate if you have alphabet of 5 symbols and maximum length is 3 symbols?

· 155

· 125

· 625

· 243

· None of above

Define some simple process to generate all 6 digit telephone numbers.

· Create recursion with argument x that will output x, and call itself with x+1 argument, and stops when x reaches 6.

· In one cycle count from 1 till 6 and output 6 times counter value.

· Count till 6^10 and output each value.

· Create 6 nested cycles which counts from 0 to 9 inclusive, and output six counters in a row.

· None of these

How many different binary strings of length 10 can be created?

· 1024

· 0

· 512

· 2048

· 10

What is disadvantage of combinatorial (check all combinations) algorithms?

· They work too long.

· We can calculate number of operations needed to check all combinations.

· There are no disadvantages.

· They work very fast.

· None of these

What is main principle of dynamic programming?

· To solve a given problem, we need to solve subproblems, then combine the solutions of the subproblems to reach an overall solution.

· To solve problem by using dynamic allocation data structures.

· Dynamic algorithms uses less memory that other algorithms.

· Using graphs in process of solution, presenting data as list of vertexes connected by edges, represented as relation of each data unit to each other.

· Creating two dimensional arrays to store data.

What can be key logic for dynamic programming, in monkey and bananas problem? Where we have monkey at the top of tree and monkey wants to go down by tree (it cannot go up) and collect bananas as much as possible. Example of a tree is shown in following picture.

· Check all possible routes from top to bottom and select maximum result.

· Sum all numbers and divide by number of levels in tree.

· Take three maximum values and sum them.

· At each node store maximum possible amount of bananas collected by the route to reach this node

· Each step select largest amount and move there.

Which algorithm divides greater problem into small subproblems, pre-calculates subproblem results, again by separating into even smaller subproblems and so on. Then combine that results and make decision for greater problem result.

· HeapSort algorithm

· Dejkstra’s algorithm

· Recursive algorithms

· Dynamic programming algorithms

· None of them.

What is the difference between an array and a linked list?

· Linked lists allow insertion and removal of nodes at any point in the list and arrays don’t.

· Difference depends on the application.

· There is no difference.

· Arrays allow insertion and removal of nodes at any point in the list and linked list don’t.

· All of these are differences

An ______________ is a list that contains no data records

· sentinel list

· null list

· zero list

· empty list

· a sentinel list

Which data structure allocates all elements contiguously in memory, and keeps a count of the current number of elements?

· linked list

· string

· array

· dynamic array

· sentinel list

In trees, which type of iterations behaviour is as follows: Visit the node closest to the root that it has not already visited

· depth-order

· depth-first order

· breadth-first order

· none of above

· all of the above

Binary tree is a connected acyclic graph such that the degree of each vertex is no more than ______________

· three

· four

· five

· one

· two

How can we determine the size of a graph?

· using the number of its vertices it has

· using the number of its edges it has

· using the number of its nodes it has

· none of above

· all of the above

How much time will it take to modify the heap structure to allow extraction of both the smallest and largest element?

· (log n)

· (log 2n)

· O(n)

· O(log n)

· O(2 log n)

Which is the fastest sorting algorithm to sort a list?

· binary sort

· linear sort

· quick sort

· bubble sort

· all of the above is correct

___________ is one of the fastest ways to store and retrieve data

· indexing

· none of these

· stacking

· sorting

· hashing

___________ method is used to remove elements from a stack

· pop( )

· lspop( )

· delete( )

· push( )

· remove( )

On which principle does stack work?

· LILO

· FILO

· FIFO

· None of above

· All of the above

On which principle does queue work?

· LILO

· FILO

· FIFO

· None of above

· All of the above

The time required in best case for search operation in binary tree is

· O(2n)

· O(log 2n)

· (log 2n)

· O(n)

· O(log n)

Breadth First search is used in__________.

· Graphs

· None of these

· Arrays

· Binary trees

· Stacks

Key value pair is usually seen in

· Heaps

· Hash tables

· None of these

· Skip list

· All of the above is correct

In a heap, element with the greatest key is always in the ___________ node

· Root

· Leaf

· First node of right sub tree

· Null

· First node of left sub tree

If graph G is defined by an adjacency matrix below, what is the size of G:

· 10

· 2

· 7

· 3

· none of the above

H I S T O R Y O F M E D I C I N E I N U K R A I N E .

the nouns by adding the suffix –er: to examine, to lead, to teach, to organize, to help, to write;

the verbs by adding the prefix re-: to join, to operate, to group, to make, to build, to form, to move.

Exercise 5. Translate into Russian. Pay attention to Passive Voice.

1. In the first term students are taught basic theoretical subjects. 2. The name of great surgeon Pirogov is known not only in our country. 3. The tissues, blood vessels and nerves were studied by many scientists. 4. The student was asked on the structure of the bones. 5. The changed condition of the patient was seen by the doctor. 6. The administrations were changed to restore the patient’s health rapidly. 7. We will be delivered a lecture in Anatomy next Monday. 8. Sedatives are taken by the patient. 9. The great surgeons were often referred to in scientific papers. 10. Donors are given light breakfast before blood taking.

Exercise 6. Change from Active Voice into Passive.

The nurse sponges the patient’s skin. 2. A poisonous remedy causes death. 3. This drug causes skin irritation. 4. The doctor administered laxatives. 5. The X-ray examination revealed lung trouble. 6. The doctor checked up my kidneys. 7. He handed the prescription for cough mixture. 8. The surgeon rinses his hands before the operation. 9. The students will study Pharmacology in two years. 10. Prof. Smirnov will deliver a lecture in Histology tomorrow.

Exercise 7. Translate into English.

Exercise 8. Read and translate the text:

HISTORY OF MEDICINE IN UKRAINE

The history of medicine in Ukraine begins with the history of folk medicine. The first medical hospitals in Kyiv Rus were founded in the 11 th century and were mostly in the form of alms houses attached to churches.

In the 14th and 15th centuries new hospitals were built and many physicians gave the first aid to the inhabitants of Ukraine and the soldiers of Bogdan Khmelnytsky's troops.

As the number of physicians was inadequate some medical schools which trained specialists were opened. The first higher educational establishment was Kyiv-Mogylyansk Academy which was founded in 1632. It played a prominent role in the development of the Ukrainian medicine. Many graduates of the Academy continued to enrich their knowledge abroad and received their doctors' degrees there. Many former students of this Academy have become the well-known scientists. They are the epidemiologist D. S. Samoilovych, the obstetrician N, M. Ambodyk-Maximovych, the pediatrician S. F. Chotovytsky, the anatomist 0. M. Shumlyansky and many others.

At the end of the I8th and during the 19th centuries the medical departments were formed at the Universities of Kharkiv, Kyiv, Lviv and Odesa. Since then the total number of physicians has increased in Ukraine.

During the Crimean War (1854-1856), on own Pirogov's initiative the first detachment of nurses was trained and sent to Sevastopol to help its defenders. It gave the beginning of the organization "Red Cross".

In 1886 the first bacteriological station was organized in Odesa. It was of great importance in the development of microbiology and epidemiology. The great scientists I. I. Mechnikov and M. F. Gamaliya worked at this station and succeeded much in their investigations. I.I.Mechnikov (1845 – 1916) is a world famous biologist, bacteriologist, immunologist and pathologist. He is one of the founders of evolutionary embriology and microbiology.He created the phagocyte theory of immunity for which he got Nobel prize in 1908.Despite of favorable conditions for the successful development of natural sciences in Russia many outstanding scientists worked in Ukraine. It is known that the brilliant scientist M. I. Pirogov and his followers, such as V. O. Karavayev, O. F. Shimanovsky, M. V. Sklifosovsky and others made valuable contribution to the Ukrainian medicine.

The first president of Medical Academy in Ukraine was Daniil Kyrylovych Zabolotny (1866-1929), a prominent Ukrainian epidemiologist and microbiologist. He was the first in the world to create the department of epidemiology and was the first rector of Odesa Medical Academy (1920). Scientific interests of Zabolotny concerned different problems of epidemiology. His follower academician O.Bogomolets (1881 – 1946) was the founder of the Institute of Experimental Biology and Physiology of Ukrainian Academy of Sciences. He created a doctrine about physiological system of connective tissue and paid great attention to gerontology.The famous scientists V. P. Obraztsov and M. D. Strazhesko were founders of Kyiv therapeutic school. They made a huge progress in the field of cardiology. A great deal was done in the treatment of many eye diseases by the prominent scientist, ophthalmologist academician V. P. Filatov (1875 – 1956) who founded the Institute of Eye diseases in Odesa. .

Many other outstanding scientists whose names are well known in the world worked in Ukraine.