Implementing Hopfield Networks from scratch, testing their content addressable memory, attractor, and energy landscape, investigating their resistance to noise, experimenting with their memory capacity, and putting strain on them with sparse patterns.