Welcome to the course,
Principles of Secure Coding.
This course is the first of
four courses in the specialization,
secure coding practices brought to you by UC Davis.
I'll be your instructor for this course.
My name is Matt Bishop,
and I'm a professor in
the department of Computer Science,
at the University of California at Davis.
I do research in,
and teach computer security.
One of my areas of interest is vulnerabilities analysis,
and many of the types of vulnerabilities arise from poor,
or non-secure code programming practices.
This led to my interest in
what is called secure programming.
I began studying and writing about it in 1986,
and have been involved with it ever since.
This course provides the basics of
robust or secure programming.
We'll look at some underlying ideas
that will appear in other modules,
and go through a detailed example of writing robust code.
In doing so, we'll see many common programming problems,
and show their connection to writing
robust secure programs in general.
Let me give you a quick overview of
what we will be covering in the modules.
In Module 1, we will define secure programming,
how it is related to
the more general problem of robust programming,
and delve into the secure programming philosophy
that underpins how we approach coding.
In Module 2, we will look at
eight design principles which govern secure coding,
and discuss how to apply
these principles to your coding endeavors.
Then Module 3 exposes examples of poor coding techniques.
We will discuss how design choices
will drive implementation in coding.
As we conclude with Module 4,
I'll introduce and explain informal,
formal, and ad hoc coding methodologies.
I'll provide checklists, which will
help you focus your attention,
and apply good programming habits
to your secure programming projects.
In addition to the video lessons,
you will supplement your learning with
further reading and practice exercises.
Whether you are learning as a means
to move up in your current position,
or to be able to step into a promising career in
the rapidly changing field of secure coding,
this course will help you achieve those aims.
I'm happy to be your instructor,
and I look forward to sharing
my experience with you on this journey.
Let's begin with the first module.