This course is designed to teach students the underlying principles and techniques associated with the cybersecurity practice known as ethical hacking or penetration testing. Students will learn about the entire penetration testing process including planning, reconnaissance, scanning, exploitation, post-exploitation, and result reporting. The course will provide the fundamental information associated with each of the methods employed and insecurities identified. Remedial techniques will be explored and students will develop an excellent understanding of current cybersecurity issues and ways that user, administrator, and programmer errors can lead to exploitable insecurities.