Derakhshan, MahsaIn their most basic form \emph{markets} consist of a collection of resources (goods or services) and a set of agents interested in obtaining them. This thesis is a stepping stone toward answering the most central question in the Econ/CS literature surrounding markets: How should the resources be allocated to the interested parties? The first contribution of this thesis is designing pricing algorithms for modern monetary markets (such as advertising markets) in which resources are sold via auctions. The second contribution is designing matching algorithms for markets in which money often plays little to no role (i.e., matching markets). Auctions have become the standard method of allocating resources in monetary markets, and when it comes to multi-unit auctions Vickrey–Clarke–Groves (VCG) with {\em reserve prices} is one of the most well-known and widely used auctions. A reserve price is a minimum price with which the auctioneer is willing to sell the item. In this thesis, we consider optimizing {\em personalized reserve prices} which are crucial for obtaining a high revenue. To that end, we take a \emph{data-driven} approach where given the buyers' bids in a set of auctions, the goal is to find a single vector of reserve prices (one for each buyer) that maximizes the total revenue across all these auctions. This problem is shown to be NP-hard, and the best-known algorithm for that achieves a $\frac{1}{2}$ fraction of the optimal revenue. We first present an LP-based algorithm with a $0.68$ approximation factor for single-item environments. We then show that this approach can be generalized to get a $0.63$-approximation for general multi-unit environments. To achieve these results we develop novel LP-rounding procedures which may be of independent interest. Matching markets have long held a central place in the mechanism design literature. Examples include kidney exchange, labor markets, and dating platforms. When it comes to designing algorithms for these markets, the presence of uncertainty is a common challenge. This uncertainty is often due to the stochastic nature of the data or restrictions that result in limited access to information. In this thesis, we study the {\em stochastic matching} problem in which the goal is to find a large matching of a graph whose edges are uncertain but can be accessed via queries. Particularly, we only know the existence probability of each edge but to verify their existence, we need to perform costly queries. Since these queries are costly, our goal is to find a large matching with only a few (a constant number of) queries. For instance, in labor markets, the existence of an edge between a freelancer and an employer represents their compatibility to work with one another, and a query translates to an interview between them which is often a time-consuming process. While this problem has been studied extensively, before our work, the best-known approximation ratio for unweighted graphs was almost $\frac{2}{3}$, and slightly better than $\frac{1}{2}$ for weighted graphs. In this thesis, we present algorithms that find almost optimal matchings despite the uncertainty in the graph (weighted and unweighted) by conducting only a constant number of queries per vertex.enALGORITHMS FOR MARKETS: MATCHING AND PRICINGDissertationComputer science