Synthesis Lectures on Theoretical Computer Science