Performance of ExpansionType Rocket Engines
Introduction
A rocket works by throwing matter out the back end. By Newton's third law, the backward momentum carried by the exhaust is balanced by a forward momentum applied to the rocket. Generally speaking, the faster the matter is thrown out the back (a metric characterized by the specific impulse), the stronger the rocket is accelerated forward.
Socalled "chemical rocket"s work by using a vigorous chemical reaction. The reaction is exothermic, and the heat of the reaction products makes them want to expand. The only direction they can expand is out the back of the rocket. This is how a rocket "throws" matter. It should be noted that chemical reactions, although by far the mostcommon kind of rocket, are not the only way to heat up propellant. Nuclear reactions, lasers, sunlight, and so on can all be used as sources of energy instead.
The unifying mechanism here is thermal expansion, and so in the strictest sense, rockets of this variety are "thermal rockets". However, the term "thermal rocket" is almost always used to refer to nonchemical rockets. Therefore, for clarity, I'll instead use the terminology "expansiontype".
This calculator works out the performance of such a rocket engine. There are a few assumptions made, the main one being that the exhaust obeys various idealizations. Also, this calculator is not relativistically correct; inpractice, even "high" specificimpulse expansiontype engines cannot achieve a highenough exhaust velocity for this to matter. Moreexotic engine types, like (pure) fusion rockets or antimatterannihilation rockets, do not use thermal expansion, and must be analyzed in different ways.
Calculator
Parameters
Propellant's Average Density 



Propellant's Average Heat Capacity Ratio  (typical chemical fuels: \(1.2\), with additional common values here) 
Chamber Pressure  (typical: \(7\) to \(250\) atm) 

Chamber Temperature  (typical chemical: \(2800\) K to \(3900\) K) 
Exit Pressure  (as low as possible in vacuum, somewhat higher in atmosphere) 

Performance (Vacuum)
Exhaust Velocity  

Specific Impulse 
Examples
 (Aerojet Rocketdyne RS25, i.e., the space shuttle main engine)
 (nitrogen gas cold gas thruster)
 (hydrogen gas resistojet (like a cold gas thruster, but heated for better performance))
Equations
The primary equation here is:
\[ v_e = \sqrt{ \left( \frac{2 \kappa}{\kappa  1} \right) \left( \frac{R_u}{M} T_c \right) \left( 1  \left(\frac{p_e}{p_c}\right)^{(\kappa1)/\kappa} \right) } \]Where:
 \(v_e\) is the exhaust velocity.
 \(\kappa\) is the heat capacity ratio of the exhaust. You'll also see \(k\) (erroneously) or \(\gamma\), which is the symbol for an ideal gas.
 \(M\) is the molar mass of the exhaust.
 \(R_u\) is the universal gas constant. You'll also see \(\bar{R}\) and \(R\). Although \(R\) is mostcommonly used, it is also (along with \(R_{gas}\), \(R_{specific}\), and presumably \(R_s\)) used for the specific gas constant, so for clarity I avoid it here. Note that \(R_s=R_u/M=k_B/m\) (Boltzmann constant \(k_B\) and mass of molecule \(m\)), so the equation can easily use \(R_s\) instead.
 \(T_c\) is the (absolute) temperature of the chamber.
 \(p_e\) is the pressure at nozzle exit. Also relevant is \(p_a\), the ambient pressure (see below).
 \(p_c\) is the chamber pressure.
(I don't know how this equation is derived, but it's likely from a combination of chemistry and idealized expansion of the flow in a nozzle. If you know, please tell me!)
Notice that reducing \(M\) will make \(v_e\) bigger. This is why lightmolecularweight gases, like hydrogen, are preferred (although usually the engineering problems of working with the absolutelylightest gases make their use impractical). Remember that for chemical rockets, the molar mass is of the reaction product(s), not the reactants.
We also need to correct for the effect of any atmospheric pressure \(p_a\). The following equation calculates an equivalent exhaust velocity \(v_{eq}\), given the area of the nozzle \(A_e\) and mass flow rate (traditionally \(\dot{m}\)):
\[ v_{eq} = v_e + \frac{A_e}{\dot{m}} (p_e  p_a) \]Notice that if the exit pressure \(p_e\) is less than the ambient pressure \(p_a\), then \(v_{eq}\) is less than \(v_e\). This will correspond to a loss of performance. Of course, for the first formula, higher \(p_e\) also decreases \(v_e\), which in turn will again reduce \(v_{eq}\). The optimal \(p_e\) is somewhere where these effects balance. I've heard that \(p_e\) and \(p_a\) should be equal to do this, but I haven't checked that recommendation mathematically.
Finally, we have the straightforward definition of specific impulse (\(g_0\) being standard gravity):
\[ I_{sp} \equiv \frac{v_{eq}}{g_0} \]References and Resources
For additional reading, the best technical resource I found is this, which discusses these concepts and more, especially for chemical rockets.
Project Rho has a useful section on specific impulse along with good commentary about molar mass.
TODO
Need to add equations/calculators for analyzing the performance of nonexpansiontype rockets.