Video description
Professional C Programming LiveLessons, Part I: Writing Robust,
Secure, and Reliable Codeby Robert C. Seacord provides an in depth explanation of how to
use common C language features to produce robust, secure, and
reliable code. The video is designed for developers who have
completed an introductory course in C language programming. In six
lessons, Professional C Programming, Part I shows developers how to
perform common C language programming tasks correctly while
avoiding programming errors that are not always detected or
reported by the compiler.
About the Author:
Robert C. Seacordis a computer security specialist and
writer. He is the author of
The CERT C Secure Coding Standard and Secure Coding in C and
C++as well as other books on computer security, legacy system
modernization, and component-based software engineering. He has a
Bachelor in computer science from Rensselaer Polytechnic Institute.
Robert C. Seacord leads the Secure Coding Initiative at CERT,
located in Carnegie Mellon University’s Software Engineering
Institute (SEI) in Pittsburgh, PA. Seacord is an adjunct professor
in both the School of Computer Science and the Information
Networking Institute at Carnegie Mellon University.
Seacord started programming professionally for IBM in 1982,
working in communications and operating system software, processor
development, and software engineering. Robert also has worked at
the X Consortium, where he developed and maintained code for the
Common Desktop Environment and the X Window System.
Seacord is a technical expert for the ISO/IEC JTC1/SC22/WG14
international standardization working group for the C programming
language.
Table of Contents
Introduction
Introduction to Professional C Programming LiveLessons
Lesson 1: Integer Types
Learning Objectives
Introduction to integer types
Unsigned integers
Signed integers
Character types
size_t
ptrdiff_t, intmax_t and uintmax_t
Summary
Lesson 2: Integer Conversions
Learning Objectives
Conversion rank, promotions, and the usual arithmetic conversions
Conversions to unsigned types
Conversions to signed types
Summary
Lesson 3: Integer Operations
Learning Objectives
Assignment
Addition and subtraction
Multiplication and upcasting
Division and remainder
Shifting
Summary
Lesson 4: Characters, Arrays, and Strings
Learning Objectives
Sizing arrays
String literals and their use as array initializers
Character types and what they are used for
Summary
Lesson 5: String Handling
Learning Objectives
Caller allocates, caller frees
Bounds-checking interfaces
Callee allocates, caller frees (POSIX)
Summary
Lesson 6: Optimization
Learning Objectives
Undefined behaviors and the “as if” rule
Constant folding
Algebraic simplification and pointer arithmetic
Hoisting of loop-invariant computations
Dead-code removal
Aliasing
Summary
Summary
Summary of Professional C Programming LiveLessons