DSP is a fundamental course recommended for all the students whose goal is to understand the concept of Programming language and its implementation in the real time world. We Cover C, C++ and Linux Operating system to give a firm foundation for a career as systems programmer.
System programming consists of the design and writing of computer programs that permit the computer hardware to connect to the programmer and the user, which allow the application software to be run effectively on the computer system. Typical system programs included an Operating System and firmware, compiler programming tools, assemblers, I / O routines, interpreters, schedulers, loaders, linkers as well as computer programming language runtime libraries.
System programming is a vital and important foundation for the development of every computer application and it is evolving always to accommodate computer hardware changes. The programmers must therefore be aware of the hardware they are supposed to use to operate. This kind of programming needs some hardware knowledge and depends on the machine.
The development of computer system software that manages and controls computer operations is the result of system programming. The low-level codes are very close to the hardware level and deal with registries and the allocation of memories. System programs or software co-ordinate the transfer of data between different components and processes the compilation, linking, starting and stopping of programs, reading files and typing in files.
The course fully covers the basics of programming in the “C” programming language and demonstrates fundamental programming techniques, customs and vocabulary including the most common library functions and the usage of the preprocessor.
To familiarize the trainee with basic concepts of computer programming and developer tools. To present the syntax and semantics of the “C” language as well as data types offered by the language
To allow the trainee to write their own programs using standard language infrastructure regardless of the hardware or software platform
Introduction to compiling and software development
Basic scalar data types and their operators
Complex data types: arrays, structures and pointers
Structuring the code: functions and modules
Preprocessing source code
Languages: natural and artificial
High-level programming languages
Obtaining the machine code: compilation process
Your first program
Variable – why?
Integer values in real life and in “C”, integer literals
Floating point values in real life and in “C”, float literals
Priority and binding
Post- and pre -incrementation and -decrementation
Operators of type op=
Char type and ASCII code, char literals
Equivalence of int and char data
Conditional execution and if keyword
printf() and scanf() functions: absolute basics
Conditional execution continued: the “else” branch
More integer and float types
Conversions – why?
Typecast and its operators
Loops – while, do and for
Controlling the loop execution – break and continue
Logical and bitwise operators
Switch: different faces of ‘if’
Arrays (vectors) – why do you need them?
Sorting in real life and in a computer memory
Initiators: a simple way to set an array
Pointers: another kind of data in “C”
An address, a reference, a dereference and the sizeof operator
Simple pointer and pointer to nothing (NULL) & operator
Pointers vs. arrays: different forms of the same phenomenon
Using strings: basics
Basic functions dedicated to string manipulation
Memory management and structures
The meaning of array indexing
The usage of pointers: perils and disadvantages
Arrays of arrays and multidimensional arrays
Memory allocation and deallocation: malloc() and free() functions
Arrays of pointers vs. multidimensional arrays
Structures – why?
Declaring, using and initializing structures
Pointers to structures and arrays of structures
Basics of recursive data collections
Functions – why?
How to declare, define and invoke a function
Variables' scope, local variables and function parameters
Pointers, arrays and structures as function parameters
Function result and return statement
Void as a parameter, pointer and result
Parameterzing the main function
External function and the extern declarator
Header files and their role
Files and streams
Files vs. streams: where does the difference lie?
Header files needed for stream operations
Opening and closing a stream, open modes, errno variable
Reading and writing to/from a stream
Predefined streams: stdin, stdout and stderr
Stream manipulation: fgetc(), fputc(), fgets() and fputs() functions
Raw input/output: fread() and fwrite() functions
Preprocessor and complex declarations
Preprocessor – why?
#include: how to make use of a header file
#define: simple and parameterized macros
Predefined preprocessor symbols
Macro operators: # and ##
Conditional compilation: #if and #ifdef directives
Avoiding multiple compilations of the same header files
Scopes of declarations, storage classes
User defined types-why?
Pointers to functions
Analyzing and creating complex declarations
[B]. C++ Programming Language
In this class, we will learn the basics about C++ programming language such as variables, data types, arrays, pointers, functions and classes etc.
At the end of the class, we expect people to have a good understanding about the concept of object-oriented programming using C++, be able to write and read basic C++ code.
No prior knowledge about C++ is required, but people are expected to have some basic knowledge about computers, some knowledge about one or two other programming languages such as Perl, PHP, Python or Java etc is preferred.
What is C++? , Why C++?
C and C++
Object Oriented Programming
Standard Template Library
2. Types and declarations
3. Pointers, Arrays and Structures
Pointers into Arrays
Pointers to void
4. Expressions and Statements
A Deck Calculator
Comments and Indentation
Overloaded Function Names
Pointer to Function
6. Namespaces and Exceptions
7. Source Files and Programs
Using Header Files
9. Operator overloading
A Complete Number Type
Increment and Decrement
A String Class
10. Derived class
Design of Class Hierarchies
Class Hierarchies and Abstract Classes
[C]. Linux Basic commands
Linux Basic commands
History,features of unix, difference between Unix and Linux