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.
The training on C, C++ and Data Structures by Softcore Technologies offers the deep understanding of fundamentals and practical usage of the programming language. The course curriculum is designed to meet the student requirements and help master the most fundamental programming languages and concepts explicitly to help them progress further in the IT world.
C, C++ with DS Course Syllabus
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
- Nameless 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