The first block of codes comes from examples used in lecture as demonstrations, listed in reverse chronological order.
From Assignment 3:
From Assignment 1: