This course we will explore the foundations of software security. We will consider important software vulnerabilities and attacks that exploit them -- such as buffer overflows, SQL injection, and session hijacking -- and we will consider defenses that prevent or mitigate these attacks, including advanced testing and program analysis techniques. Importantly, we take a "build security in" mentality, considering techniques at each phase of the development cycle that can be used to strengthen the security of software systems. Successful learners in this course typically have completed sophomore/junior-level undergraduate work in a technical field, have some familiarity with programming, ideally in C/C++ and one other "managed" program language (like ML or Java), and have prior exposure to algorithms. Students not familiar with these languages but with others can improve their skills through online web tutorials.
Offered By
About this Course
Skills you will gain
- Fuzz Testing
- Buffer Overflow
- Sql Injection
- Penetration Test
Offered by

University of Maryland, College Park
The University of Maryland is the state's flagship university and one of the nation's preeminent public research universities. A global leader in research, entrepreneurship and innovation, the university is home to more than 37,000 students, 9,000 faculty and staff, and 250 academic programs. Its faculty includes three Nobel laureates, three Pulitzer Prize winners, 47 members of the national academies and scores of Fulbright scholars. The institution has a $1.8 billion operating budget, secures $500 million annually in external research funding and recently completed a $1 billion fundraising campaign.
Syllabus - What you will learn from this course
OVERVIEW
Overview and expectations of the course
LOW-LEVEL SECURITY
Low-level security: Attacks and exploits
DEFENDING AGAINST LOW-LEVEL EXPLOITS
Defending against low-level exploits
WEB SECURITY
Web security: Attacks and defenses
SECURE SOFTWARE DEVELOPMENT
Designing and Building Secure Software
Reviews
- 5 stars73.10%
- 4 stars20.86%
- 3 stars4.36%
- 2 stars0.64%
- 1 star1.02%
TOP REVIEWS FROM SOFTWARE SECURITY
The course overall is very good, I hope to have a more specialized course in C/C++ languages with more practices, as I work more with embedded systems/C
Week 5 about program analysis and is very interesting and many concepts are new to me. This is also a very well structured course. I had a great time studying it. Thanks, Mike.
Very useful course to update the current knowlege and to learn new technologies and theoretical facts. Also, identified how software security should be combined with software development.
Was prepared and presented in a very special and superb way. I am glad I took and completed it. Thanks to my tutor Michael Hicks and special appreciation to coursera for making this possible for me.
About the Cybersecurity Specialization
The Cybersecurity Specialization covers the fundamental concepts underlying the construction of secure systems, from the hardware to the software to the human-computer interface, with the use of cryptography to secure interactions. These concepts are illustrated with examples drawn from modern practice, and augmented with hands-on exercises involving relevant tools and techniques. Successful participants will develop a way of thinking that is security-oriented, better understanding how to think about adversaries and how to build systems that defend against them.

Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
More questions? Visit the Learner Help Center.