Finding address space
Look at which bits of the address (A0...A15) have to be in which state to enable each memory-mapped chip. Notice that address lines which are not connected to the CS line are don't cares when it comes to selecting the chip, i.e. some bits (hardwired) select the chip, the other bits allow to access addresses in that chip, making up the address range/space of that chip. For the alarm, for instance, since all address bits are hardwired to the alarm's CS, there's only one single address which is used to access the alarm. For the RAM, only three address lines are used to select RAM, leaving (16-3)=14 bits for adresses in RAM i.e. 2^14=16k addresses.

Also worth noting: In general, no two chips may be selected by the same combination of relevant address bits, i.e. address spaces may never overlap. (Unless in certain special cases where other means are designed-in to prevent two chips writing to the data bus at the same time, e.g. if one chip is read-only and the other is write-only so that whenever one of them is connected to the bus the other one is not.)

Because the CS inputs of the chips are inverted inputs (/CS), i.e. active low, it may be helpful to regard them as "chip disable" lines. For every address, all but one chip must be thus disabled.

In the example, RAM is hence disabled for any address where A15=1 or A14=1 or A13=0, in binary 0b110xxxxxxxxxxxxx, the inverse of that bit pattern enables the RAM; so every address from 0b001xxxxxxxxxxxxx will access RAM, which in hexadecimal is 0x2000 (0b0010000000000000) up to 0x3FFF (0b0011111111111111).