There's an awesome online course touching all those topics and then some, from J. Alex Halderman, Associate Professor in University of Michigan. It's called 'Securing Digital Democracy' and is available on Coursera: https://www.coursera.org/learn/digital-democracy