C and C++ Programming

Self-paced registration
Registration: self-paced from $60 or live for $2990
Pick your class type Total: $

USA & Canada: +1 240-200-6131

C and C++ Programming

Course Code: hsts-c29


What is included in this course

Course Description

This hands on C programming course provides a comprehensive introduction to the ANSI C language, emphasizing portability and structured design. Students are introduced to all major language elements including fundamental data types, flow control, and standard function libraries. Thorough treatment is given to the topics of string and character manipulation, dynamic memory allocation, standard I/O, macro definition, and the C runtime library. The course explains the use of aggregate structures, unions, and pointers early on so the students can practice extensively in the hands-on labs. Structured programming constructs and varargs functions are also covered. Emphasis is given to the processing of command line arguments and environment variables so students will be able to write flexible, user-friendly programs. The course also includes coverage of portability tips drawn from experienced programmers working in production environments. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.

After successful completion of this course, students can take one of the following exams issued by CPP Institute:
CLA: C Programming Language Certified Associate
CLP: C Certified Professional Programmer
CPA: C++ Certified Associate Programmer
CPP: C++ Certified Professional Programmer

You will learn:


Course Prerequisites

Understanding of fundamental programming concepts.

Follow-up Course

Object Oriented Programming with UML Course


Self-paced training

This course is available in a self-paced video format starting at $60. Click here to learn more and register. For complete self-paced software engineering training, visit our Complete Training Bundle for Software Engineers page.


Corporate and Enterprise Training

Our live courses are also offered via our enterprise training program which comes with:

Feel free to contact us by email or phone to discuss your training needs and get a quote.


Overall Info About our Live Classes

Highlights

Enrollment Fee

In-person in DC or live online for $2990 per course

Course Session Dates

Our courses are offered all year around. Upon registration we enroll you to the earliest available class but you can reschedule it free of charge.

Locations

Time

Software Versions

Our classes are taught on the most current version of software whenever possible. To request a specific version, please Contact Us or call us at 240-200-6131

Course Outline

Topics Covered in this Course

1- Overview of C

  • Operating System Independence
  • Design Goals and Capabilities
  • Flavors of C

2- Compiler Directives and the C Preprocessor

  • Compile-Time Directives
  • Use of typedef
  • C Preprocessor Syntax

3- Fundamental Data Types, Storage Classes, and Scope

  • Fundamental Data Types and Qualifiers
  • Constants and Strings
  • Storage Classes
  • Scope and Block Structure
  • Scope and Data Hiding
  • Data Initialization

4- Pointers and Dynamic Allocation

  • Advantages of Pointers
  • User of Pointers
  • Pointer and Address Arithmetic
  • Dynamic Storage Allocation
  • sizeof Operator
  • Double Indirection

5- Macros

  • Functions vs. Inlining
  • Purpose of Macros
  • Use of Macros
    • Making Code More Readable
    • Auto Adjustment of Compile Time Values
    • Conditional Compilation
    • Making Code Portable
    • Simplifying Complex Access Calculations
  • Advanced Micro Design Tips
  • Using Macros to Help Write Portable Programs
  • When to Use a Macro instead of a Function
  • Using Macros for Debugging

6- Arrays

  • Purpose of Arrays
  • Declaring an Array
  • Initializing an Array
  • Addressing Elements
  • Stepping Through an Array
  • Variable Size Arrays
  • Arrays of Pointers
  • Arrays of Strings
  • Passing an Array to a Function
  • Dynamic Memory Allocation
  • Multidimensional Arrays

7- Basic Formatted I/O

  • Standard I/O Library
  • Character Set Encoding
  • Standard Input and Output
  • Character I/O Functions
  • Formatted I/O Functions
  • String Constants

8- Program Debugging

  • Problem Analysis
  • Instrumenting with printif
  • Instrumenting with ctrace
  • The Purpose of Debuggers
  • How Not to Use Debuggers
  • Symbolic Debuggers

9- Operators and Expressions

  • Arithmetic, Logical, and Bit Operators
  • Precedence and Associativity
  • Assignment and Casting
  • The Conditional Operator

10- Flow Control Constructs

  • Conditional Constructs: if, switch
  • Looping Constructs: while, do, for
  • Programming Style

The following topics may be included at the discretion of your instructor.


11- Functions (Subroutines)

  • Purpose of Functions
  • Functions vs. Inlining
  • Automatic Variables
  • The Argument Stack
  • Passing By Value
  • Passing By Reference
  • Declaring External Functions
  • Function Prototyping
  • ANSI Prototyping
  • The _NO_PROTO Compiler Symbol
  • Varargs Functions
  • Passing a Function as an Argument
  • Designing Functions for Reusability
  • Calling a Function from Another Language
  • Returning a Dynamically Allocated Value Using Double Indirection
  • Casting the Return Value of a Function
  • Recursion and Reentrancy

12- Structures

  • Purpose of Structures
  • Defining and Declaring Structures
  • Accessing Members
  • Pointers to Structures
  • Dynamic Memory Allocation
  • Passing a Structure to a Function
    • As a Pointer
    • Passing the Actual Structure

13- Advanced Structures and Unions

  • Nested Structures
  • Arrays of Structures
  • Bit Fields
  • Unions
  • Linked Lists

14- C Runtime Library Standard Functions

  • Character I/O
  • Unformatted File I/O
  • Formatted File I/O
  • Math Functions
  • Miscellaneous Functions

15- Strings and Character Manipulation

  • Strings as Character Arrays
  • String Library Functions
  • Reading and Writing Strings

16- Accessing Command Line Arguments and Environment Symbols

  • argc and argv
  • Parsing Command Line Options
  • Accessing the Environment Array

17- Structured Programming

  • Structuring Code for Quality, Reliability, Maintainability
  • Designing for Modularity and Reusability

18- Advanced Programming Consideration

  • Writing Portable Code
  • Use of Macros
  • ANSI C Limits
  • Feature Test Macros
  • Client/Server Design
  • Performance Considerations

Self-paced registration
Registration: self-paced from $60 or live for $2990 Pick your class type Discount or coupon code: Total: $

View Other Classes!