In this thesis, we study the portfolio selection problem with multiple risky assets, linear transaction costs and a risk measure in a multi-period setting. In particular, we formulate the multi-period portfolio selection problem as a dynamic program and to solve it we construct approximate dynamic programming (ADP) algorithms, where we include Conditional-Value-at-Risk (CVaR) as a measure of risk, for different separable functional approximations of the value functions. We begin with the simple linear approximation which does not capture the nature of the portfolio selection problem since it ignores risk and leads to portfolios of only one asset. To improve it, we impose upper bound constraints on the holdings of the assets and we notice that we have more diversified portfolios. Then, we implement a piecewise linear approximation, for which we construct an update rule for the slopes of the approximate value functions that preserves concavity as well as the number of slopes. Unlike the simple linear approximation, in the piecewise linear approximation we notice that risk affects the composition of the selected portfolios. Further, unlike the linear approximation with upper bounds, here wealth flows naturally from one asset to another leading to diversified portfolios without us needing to impose any additional constraints on how much we can hold in each asset. For comparison, we consider existing portfolio selection methods, both myopic ones such as the equally weighted and a single-period portfolio models, and multi-period ones such as multistage stochastic programming. We perform extensive simulations using real-world equity data to evaluate the performance of all methods and compare all methods to a market Index. Computational results show that the piecewise linear ADP algorithm significantly outperforms the other methods as well as the market and runs in reasonable computational times. Comparative results of all methods are provided and some interesting conclusions are drawn especially when it comes to comparing the piecewise linear ADP algorithms with multistage stochastic programming