Course code: *ESC-18104*

Category: |
*Engineering Science Course* |

Credits: |
*3* |

Course scheme: |
*L 3 / T 1* |

Contact hours: |
*40* |

Pre-requisites: |
*None* |

## Unit 1: Introduction to Programming (4 lectures)

- Introduction to components of a computer system:
- Disks
- Memory
- processor
- Where a program is:
- Operating system
- Compilers
- etc.
Extra stuff

(1 lecture).

- Idea of Algorithm:
- Steps to solve logical and numerical problems.
- Representation of Algorithm (with examples):
- Flowchart
Pseudocode

(1 lecture).

- From algorithms to programs:

## Unit 2: Arithmetic expressions and precedence (2 lectures)

## Unit 3: Conditional Branching and Loops (6 lectures)

- Writing and evaluation of
- conditionals and
consequent branching

(3 lectures).

- Iteration and loops (3 lectures).

## Unit 4: Arrays (6 lectures)

- Arrays
- 1-D
- 2-D
- Character arrays and Strings

## Unit 5: Basic Algorithms (6 lectures)

Searching, Basic Sorting Algorithms (Bubble, Insertion and Selection), Finding roots of equations, notion of order of complexity through example programs (no formal definition required)

## Unit 6: Function (5 lectures)

Functions (including using built in libraries), Parameter passing in functions, call by value, Passing arrays to functions: idea of call by reference

## Unit 7: Recursion (4 -5 lectures)

Recursion, as a different way of solving problems. Example programs, such as Finding Factorial, Fibonacci series, Ackerman function etc. Quick sort or Merge sort.

## Unit 8 Structure (4 lectures)

Structures, Defining structures and Array of Structures

## Unit 9 Pointers (2 lectures)

Idea of pointers, Defining pointers, Use of Pointers in self-referential structures, notion of linked list (no implementation)

## Unit 10 File handling

(if time is available, otherwise cover in lab)