C/C++ with Data Structures

C/C++ with Data Structures

Enhance your Programming Skills by Learning C/C++ with Data Structures

C is a powerful general purpose programming language used for creating a wide variety of system programs and applications. C++, developed as an extended version of C programming language, is one of the most preferred programming languages amongst software programmers. It can be used on a broad range of hardware and operating system platforms. This intermediate-level language offers imperative, object-oriented and generic programming features.

Data structure is a specific method of storing and organizing system data in order to use it efficiently. Large amounts of data including internet indexing services and large databases can be efficiently managed with the implementation of data structures. It also has a major role to play in designing efficient algorithms and system software programs.

Course Code:CPPDS

Course Duration: 45 days.

Course Objective:

  • Provide an overview of programming languages and problem solving techniques.
  • Develop programming skills with the understanding of the fundamentals and basics of C and C++ Languages.
  • Give complete information about arrays, strings, functions, structures, and pointers.
  • Provide complete understanding of classes and objects, constructors and destructors, and control structures.
  • Enable the uses the memory management concepts.
  • Provide understanding about the issues regarding file organization and the implementation of file systems.
  • Impart knowledge about data structures including linked lists, stacks & queues, and binary tree.

Delegates will be able to:

  • Write programs with the help of basic elements including control statements, arrays and strings.
  • Edit, compile, execute and get hard copy of a simple program.
  • Write a program using C++ arithmetic operators, input/output methods and appropriate manipulators for formatting.
  • Implement user defined functions to understand the code reusability.
  • Gain complete understanding of bit fields and bit wise operations.
  • Use pointers to overcome the memory access problems.
  • Learn inheritance and its types for code reuse.
  • Implement sorting and searching techniques in data structure.
  • Use character data and string processing, and create their own data type.
  • Understand the uses of both one dimensional and multi-dimensional arrays.
  • Use exception handling to avoid exceptions during program executions.
  • Get on over view of common data structures such as linked lists, stacks, queues, & tree.
  • Develop sophisticated applications using enumerated data types, function pointers and nested structures.

C Basics

  • History of C
  • Characteristics of C
  • C Program Structure
  • Variables
    Defining Global Variables
    Printing Out and Inputting Variables
  • Constants
  • Arithmetic Operations
  • Comparison Operations
  • Logical Operators
  • Order of Precedence

Conditionals

  • Conditionals
  • The if statement
  • The? Operator
  • The switch Statement

Looping and Iteration

  • The for statement
  • The while statement
  • The do-while statement
  • Break and continue

Arrays and Strings

  • Defining, initializing and using arrays
  • Single and Multi-dimensional Arrays
  • Arrays of Characters and Strings
  • Arrays and pointers
  • Strings

Functions

  • Role of Functions
  • Passing arguments to functions
  • Returning values from functions
  • Recursive functions
  • Call back functions
  • Implications on Stack
  • Pass by value / reference
  • Passing Arrays to functions

String Handling : <string.h>

  • Basic String handling functions
  • String Searching
  • Character Conversions and testing : <ctype.h>
  • Memory Operations: <memory.h>

Structures and Unions

  • Structures
  • Nested Structures
  • Array of Structures
  • Allocation of memory and holes
  • Unions

Further Data Types

  • Coercion or Type-Casting
  • Enumerated Types
  • Static Variables

Dynamic Memory Allocation & Dynamic Structures

  • Malloc, Sized, and Free
  • Calloc and Realloc

Advanced Pointer Topics

  • The purpose of pointers
  • Defining pointers
  • The & and * Operators
  • Pointer Assignment
  • Pointers with functions
  • Pointer Arithmetic
  • Advanced pointer types
  • Pointers to functions
  • Pointers to String
  • Pointers and Dynamic memory
  • Pointers and Structures
  • Common Pointer Pitfalls
    Not assigning a pointer to memory address before using it
    Illegal indirection

Storage Classes

  • Scope
  • Internal
  • External
  • Automatic
  • Static
  • Scope and extent of parameters

Low Level Operators and Bit Fields

  • Bitwise Operators
  • Bit Fields
    Bit Fields: Practical Example
    A note of Caution: Portability

The C Processor

  • #define
  • #undef
  • #include
  • #if – conditional inclusion
  • Preprocessor Compiler Control
  • Other Preprocessor Commands

Integer Functions, Random Number

  • String Conversion : <stdlib.h>
  • Arithmetic Functions
  • Random Numbers
  • String Conversion

 Mathematics: <math.h>

  • Math Functions
  • Math Constants

Input and Output (I/O) : <stdio.h>

  • Reporting Errors
    perror()
    errno
    exit()
  • Streams
    Predefined Streams
    Redirection
  • Basic I/O
    Formatted I/O
    Printf
  • Scanf
  • Files
    Reading and writing files
  • Sprintf and sscanf
    Stream Status Enquiries

Data Structures

  • Linked Lists
  • Stacks & Queues
  • Binary Tree

Sorting & Searching Techniques

  • Insertion Sort
  • Merge Sort
  • Quick Sort

C++ Object Oriented

Object Oriented Paradigm

  • OOPS…!
  • Structured versus Object Oriented Development
  • Elements of Object Oriented Programming
  • Objects
  • Classes
  • Encapsulation
  • Data Abstraction
  • Inheritance
  • Polymorphism
  • Templates
  • Exception Handling

 Moving from C to C++

  • Scope resolution Operator
  • Variables aliases(reference variables)
  • Parameters passing by References
  • Inline functions
  • Function Overloading
  • Default Arguments

 Classes and Objects

  • Introduction
  • Structures and Classes
  • Class specification
  • Class objects
  • Class, Objects and memory resources
  • Accessing class members
  • Defining Member Functions
  • Outside member functions as inline
  • Accessing member functions with in class
  • Data Hiding
  • Passing Objects as arguments

 Classes and Objects

  • Friend Classes
  • Static data members
  • Static Functions

 Constructors and Destructors

  • Introduction
  • Need of the Constructor
  • Parameterized constructor
  • Constructor overloading
  • Constructor with default arguments
  • Name less objects
  • Copy constructors
  • New and delete operators
  • Dynamic initialization through constructors

 Operator Overloading

  • Introduction
  • Over loadable operators
  • Unary operator overloading
  • Operator return values
  • Name less Temporary Objects
  • Limitations of Increment and Decrement Operators
  • Binary Operator Overloading
  • Overloading New and Delete Operator
  • Comparison Operators
  • Data Conversion
  • Conversion between Datatypes
  • Conversion between basic and Objects
  • Conversion between Objects of different classes
  • Assignment operator overloading
  • Overloading with friend functions

Inheritance

  • Introduction
  • Derived class declaration
  • Forms of inheritance
  • Member Accessibility
  • Constructors in derived classes
  • Overloaded Member functions
  • Abstract classes
  • Multilevel Inheritance
  • Multiple Inheritances
  • Hierarchical Inheritance
  • Multipath Inheritance
  • Virtual Base Class
  • Hybrid Inheritance

Virtual Functions & Polymorphism

  • Introduction
  • Need for virtual functions
  • Pointers of derived class objects
  • Definitions of Virtual Functions
  • Pure Virtual Functions
  • Dynamic Binding
  • Rules For virtual functions

Templates

  • Introduction
  • Function Templates
  • Overloaded Function Templates
  • Multiple Argument Function Templates
  • Class Templates
  • Class Templates with overloaded operators

Exception Handling

  • Introduction
  • Error Handling
  • Exception Handling
  • Try, throw, catch
  • List of Exceptions
  • Specified, Unspecified exceptions
  • Handling Uncaught Exceptions

Streams Computation With console

  • What are streams?
  • Console Streams
  • Unformatted, Formatted Console O/P

 Manipulating Strings

  • Creating(string) objects
  • Manipulating String Objects
  • Relational Operations
  • String Characteristics

Object-Oriented Systems Development

  • Procedure-Oriented Development Tools
  • Object-Oriented Notations and Graphs
  • Steps in Object-Oriented Analysis
  • Steps in Object-Oriented Design
  • Implementation