Thanks for that, really useful. I am only a week into this and I'm still trying to understand how things work. Once the ICO completes and the coin/token is minted, I assume it will then go on an exchange, how is the price of the coin set and by who?
Welcome to crypto! It's a fun place to be. Once a coin is distributed, one of the goals of the development team is to get the coin listed on exchanges. The team's effectiveness in getting the coin listed can vary a lot based on the community support behind the project. Often, to get a coin listed, an exchange requires a certain amount of upvotes before a coin is listed. The coin will generally be listed on small, obscure exchanges at first. As trading volume increases and the project details become more concrete, the coin might get listed on larger and larger exchanges. A coin will not be listed on exchanges that exchange into fiat until the coin has obtained widespread adoption and trust within the community as a legitimate and important project. The reason for this is the fiat exchanges act as the regulatory gatekeepers for crypto and try their best to work within existing legal frameworks. Smaller exchanges often operate in legal gray areas. Notably, when coins are listed on big exchanges for the first time (binance, OKEX, Coinbase, etc.), you'll often see a huge spike in price.
The coin's price can vary between exchanges, especially for new coins. Coin price is a function of how thin/thick the order book is (how many orders are being placed for substantial amounts). A thin order book can drive the price up or down quickly as market orders fail to be met because the price is either too high or low. As order books get thicker (like Bitcoin), the price volatility will steadily decrease as the market becomes more liquid and better able to meet demand.
Because coin prices are based off order book thickness and trading volatility, the price for a crypto asset can fluctuate between exchanges (arbitrage opportunities) because the crypto markets are not nearly as efficient as other currently available capital markets. As a result, pricing a new asset can be difficult. This is where Coinmarketcap.com comes in. Coinmarketcap.com (and other similar services) aggregate trading prices and order volumes among all exchanges which list any given crypto asset. The Coinmarketcap algorithm then does internal calculations and spits out the aggregate price for the token (although the price on coinmarketcap is not necessarily the price on any given exchange).