Course Outline
Introduction
- Overview of C Features and Applications for Government
Preparing the Development Environment for Government
- Choosing an Integrated Development Environment (IDE)
- Configuring the Compiler
Writing a Sample Program for Government
- Defining the Problem
- Coding According to Requirements
Defining the Scope of Variables and Functions for Government
- Understanding Scope, Visibility, and Lifetime
- Working with Storage Classes: auto, extern, register, static
Managing Data in a C Program for Government
- Beyond Primitive Data Types
- Working with Advanced Data Types: Structures, Linked Lists, etc.
- Storing Different Data Types in the Same Memory Location
Modifying the Properties of a Variable for Government
- Beyond Type Modifiers
- Working with Type Qualifiers: constant, volatile, etc.
Manipulating Bits in C for Government
- Working with Data Smaller Than a Byte
- Using Bit Manipulation Operators
Controlling the Flow of Your Program for Government
- Beyond Sequencing
- Using the goto Statement
Reading and Writing Data for Government
- Recap of Input/Output Functions
- Improving Output Readability
Developing Cross-Platform Code for Government
- Understanding Compiler Directives
- Compiling Code Conditionally
Enhancing Program Performance for Government
- Macros vs. Functions
- Defining Macros to Run Program Fragments
Dynamically Allocating Memory for Government
- Advantages of Using Pointers: Execution Speed
- Pointers to Functions
- Accessing Memory and Manipulating the Address
Debugging a C Program for Government
- Advanced Techniques for Checking, Detecting, and Correcting Errors
- Working with gdb (GNU Debugger)
Creating a Static Library for Government
- How a Static Library Is Linked into an Executable File
- Creating a Static Library
Creating a Shared Library for Government
- Static Libraries vs. Shared Libraries (Dynamic Libraries)
- How a Shared Library Is Linked and Loaded into Memory at Runtime
- Creating a Shared Library
Abstracting Data in Your Program for Government
- Overview of Interface, Specification, and Implementation
- Creating an Abstract Data Type
- Regression Testing an Abstract Data Type
Searching and Sorting Data for Government
- Searching Arrays Using Linear Search, Binary Search, etc.
- Sorting Arrays Using Selection Sort, Insertion Sort, Bubble Sort
Interprocess Communication and Signals for Government
- Understanding Processes, Sockets, and Signals
- Implementing Interprocess Communication (IPC) Using Shared Files, Shared Memory, Pipes, Message Queues, Sockets, Semaphores, etc.
Making Your C Program Run in Parallel for Government
- Running Different Parts of a Program Concurrently Through Multithreading
- Writing a Thread
Advanced Networking Programming for Government
- Recap of TCP, UDP, IP, and Other Dominant Protocols
- Serving Multiple Ports, Surviving Abrupt Network Disruptions, etc.
- Writing Powerful Socket APIs
Towards High-Quality Code for Government
- Peer Code Review and Parallel Programming
- The Importance of Iterative Coding (Refactoring)
Summary and Conclusion for Government
Requirements
- C programming experience for government projects
Audience
- Programmers for government agencies
- Developers working on government initiatives
Testimonials (2)
the exercises and the methodology
Javier MIllan Rios - si
Course - Advanced C Programming
An interesting and broad scope