As discussed by @GabrieleCecilia in his pull request:
[x] (probably the most important) I think the + L rule in the LTS semantics of CCS (in Ex.1) is wrong: you should have P+Q in the conclusions, instead of Q+P. I can't modify it because it's an image
[ ] You should probably take a decision about your desired interpretation of the "little.collect.collect" issue and correct the exercise accordingly (also observe that, in your last email, you didn't put any parenthesis)
[ ] In Ex.1, in the exercise "list all the different reductions that c.(\overline{a} | (b. a | d )) can perform to reach 0 | (0 | 0)": the exercise is good, because there are sequences, parallel composition and synchronization. However, asking to list all of the transitions (which are quite a few) might be too much, for someone who has never seen such transitions.
[ ] In Ex.1, you might add something easy to deal with relabeling (only if you consider this construct important enough): for example, write the derivation tree of ( b . P ) [ a / b ] → a P
[x] In Ex.2, you ask to list all of the forward and backward transitions of some processes (which is a very useful exercise). You might add some easy process which has more than 1 possible backward transition, like a[k].c | b[k']. I suggest this because, after solving this exercise, I wondered "is there always only one backward transition maximum?"
As discussed by @GabrieleCecilia in his pull request: