This is a question on combinations.
Combinations are applied to find the number of unique outcomes that are obtainable.
To select r from a sample space of n, the number of ways that r can selected from n is given as:

In this case,
n = number of total songs
r = number of songs chosen at one time.
Therefore, the number of ways that 3 rock songs can be chosen from 8 is given as:

The number of ways that 4 alternative songs can be chosen from 5 is given as:

The number of ways that 3 rap songs can be chosen from 6 is given as:

Therefore, The total number of ways that Steve can select his songs is:
