Build the first letters for both your first and last name using point plots in R.
# ML
x <- c(rep(-1.5,500),
seq(-0.75,-1.5,length.out=500),
seq(-0.75,0,length.out=500),
rep(1,500),
seq(2,1,length.out=500),
rep(0,500))
y <- c(seq(-2,1,length.out=500),
seq(-2,1,length.out=500),
seq(-2,1,length.out=500),
seq(-2,1,length.out=500),
rep(-2,500),
seq(-2,1,length.out=500))
z=rbind(x,y)
plot(y~x, xlim=c(-3,3), ylim=c(-3,3))

Then, write R code that will left multiply (%>%) a square matrix (x) against each of the vectors of points (y). Initially, that square matrix will be the Identity matrix.
Use a loop that changes the transformation matrix incrementally to demonstrate 1) shear, 2) scaling, 3) rotation , and 4) projection in animated fashion.
1) Shear
# Loop between zero and one in .2 increments (initialized with identity matrix)
for (val in c(1.0,0.8,0.6,0.4,0.2,0.0,0.2,0.4,0.6,0.8)) {
# Update transformation matrix with for loop value
trans_matrix <- matrix(c(1, 0, val, 1), nrow=2, ncol=2)
# Transform each column in z
tm <- apply(z, 2, function(x) x %*% trans_matrix)
# Plot transformed matrix
plot(tm[2,] ~ tm[1,], xlim=c(-3, 3), ylim=c(-3, 3))
}

2) Scaling
for (val in c(1.0,1.25,1.5,1.75,2.0,2.25,2.5,2.25,2.0,1.75,1.5,1.25,1.0,0.75,0.5,0.75)) {
trans_matrix <- matrix(c(val, 0, 0, val), nrow=2, ncol=2)
tm <- apply(z, 2, function(x) x %*% trans_matrix)
plot(tm[2,] ~ tm[1,], xlim=c(-3,3), ylim=c(-3,3))
}

3) Rotation
for (val in seq(1,10,.25)) {
# Extend z with an additional row of zeros
ext_z <- rbind(z, numeric(3000))
trans_matrix <- matrix(c(cos(val), sin(val), 0, -sin(val), cos(val), 0, 0, 0, 1), nrow=3, ncol=3)
tm <- apply(ext_z, 2, function(x) x %*% trans_matrix)
plot(tm[2,] ~ tm[1,], xlim=c(-3,3), ylim=c(-3,3))
}

4) Projection
for (val in c(1.00,0.75,0.50,0.25,0.00,-0.25,-0.50,-0.75,-1.00,-0.75,-0.50,-0.25,0.00,0.25,0.50,0.75)) {
ext_z <- rbind(z, numeric(3000))
trans_matrix <- matrix(c(val,0,0,0,1,0,0,0,1), nrow=3, ncol=3)
tm <- apply(ext_z, 2, function(x) x %*% trans_matrix)
plot(tm[2,] ~ tm[1,], xlim=c(-3,3), ylim=c(-3,3))
}
