A whole is greater than the sum of its parts. A collaborating team is greater than a group of contributors working in isolation. In this thesis we introduce a novel technique called collaboration-assisted computation that evolves human-assisted computation in line with these postulates. As human computation focuses on integrating human input at various phases of machine computation, so collaboration-assisted computation aims at integrating machine computation with input from collaborating teams. However, collaboration-assisted computation is something more than a simple replacement of the term human input with the term team input in the pipeline of machine computation. What is collaboration without social interaction? How effective can collaboration be without convenient software tools? While the answers to these questions lie outside of the scope of this thesis, we argue that a truly efficient collaboration orbits around social context and collaborative software. Therefore, the center of gravity for collaboration-assisted computation lies at the intersection of human computation, social computing and collaborative software. Moreover, collaboration-assisted computing relies on crowdsourcing to execute collaboration at massive scale. Hence, this thesis presents a holistic framework for modeling and programming collaboration-assisted computation. First, we present a query language capable to express intuitively complex social traits of collaborating groups. Second, we show how to model social collaboration processes. Third, the thesis introduces a programming language to coordinate collaborative teams and a framework for integration of social and collaborative software. Fourth, we show how crowdsourcing models can be extended to scale collaboration processes. The proposed modeling and programming languages were evaluated with extensive use cases, showing intuitiveness and expressiveness of each of the approaches.