Refactoring
Refactoring is the process of changing a software system in such a way that it does not alter the external behaviour of the code, yet improves its internal structure. Refactoring is a key part of the design process, and is done in small steps.
Technical Debt is the cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer. This is often required to meet deadlines. Refactoring is a way to pay off technical debt.
The remainder of the notes are available on the cheat sheet.
For past papers, find the source code here.