Client-server computing is a distributed computing model where client applications request services from server processes running on different interconnected computers. The client-server model provides advantages like vendor independence, scalability, and ability to interconnect different hardware. However, it also presents challenges like ensuring security and consistency across multiple servers. Design considerations for client-server systems include whether to use a two-tier or three-tier architecture and how to partition application logic between clients and servers.