If it's the last technology course you take, you'll develop enough conceptual background to follow both technical and commercial developments in computing for many years to come. Although the course surveys a wide range of content, there are several recurring themes. It is difficult for people to keep track of systems involving lots of parts, and especially how the parts interact with each other. Hence, one goal of system design is to minimize dependencies between parts, and to document clearly those dependencies that exist. Because it is expensive to design, implement and especially maintain software systems, designers strive to reuse software rather than creating each new application from scratch.
People use different software and maintain different collections of data.
Often, they'd like their software and data to work together, despite any differences. Ideally, the service should serve twice the population without using twice the resources, and certainly not using more than twice the resources. A service should rarely malfunction and when it does, it should do so in a graceful way. In a distributed environment, some of the actors may not behave as you'd like them to. Authentication and access restrictions can limit the availability of services to only designated people or systems, and restricted execution environments can limit the damage that untrusted software can inflict.