Programming & Data Structures with Laboratory (3-0-3)

 

 

Course Details:

 

1. Introduction to the Digital Computer:

 

A. Basics:

  a) Concept of a programmable general purpose computing machine

  b) Basic model (CPU, Memory, I/O)

  c) Instruction Set 

  d) Fetch-Decode-Execute                                   [2]

 

B. Representation and Arithmetic:

a) Number Systems

b) Representation of Positive and Negative Numbers

c) Arithmetic on integers

d) Character and floating point representations             [3]

 

C. System Issues:

a) Compiler-Assembler-Linker-Loader

b) Shell and Command Interpreter

c) Operating Systems

d) Computer Networks                                           [2]

 

2. Introduction to Programming:

 

b) Variables

c) Data types

d) Assignment

e) Expressions

f) Input-Output

g) Simple Programs using assignments and expression evaluation [2]

 

3. Conditionals and Branching 

a) Conditional Expressions

b) If-then statement

c) If-then-else statement

d) Simple programs using conditionals

e) Nested if-then-else statements

f) Involved example programs using complex condition evaluation

g) Algorithms and Flowcharts [3]

 

4. Iteration

 

a) Motivating the need for iteration using example problems

b) While-do loop

c) Simple Example problems involving iteration

d) Do-while loop

e) For loop

f) Problems involving conditionals and loops

g) Nested loops [3]

 

 

 

5. Functions

 

a) Function definitions and return values

b) Function invocation

c) Parameter Passing : Call by value

d) Nested function calls and flow of control

e) Examples

f) Addresses and locations: introducing call by reference and pointers

 

 6. Recursion

 

a) Examples of  recursive solutions to problems

b) Recursive functions

c) Indirect recursion

d) Problem decomposition and recursive solutions

 

 7. Arrays

 

a) Definition of one-dimensional arrays and  examples

b) Sorting and searching

c) Strings as character arrays

d) Passing arrays as parameters to functions

e) Two dimensional and higher dimensional arrays [4]

 

8. Introduction to Pointers

 

a) Pointers in the memory model

b) Arrays and pointers

c) Pointer arithmetic

d) Passing pointers to functions

e) Arrays and strings revisited [2]

 

9. Structures

 

a) Motivation for records and structures

b) Structure definition and usage

c) Example problems

d) Structures, functions and pointers [2]

 

10. Introduction to Data-Procedure Encapsulation

 

a) User defined types

b) Concept of data-procedure encapsulation

c) Applications [2]

 

11. Dynamic allocation

 

a) Motivational problems

b) Allocation and De-allocation 

c) Simple examples [2]

 

12. Linked structures

 

a) Motivational problems

b) Defining dynamic/recursive linked structures

c) Creating and manipulating singly linked lists

d) Multi-linked lists [3]

 

13. Introduction to Data Structures

 

a) Motivation and examples

b) Stacks and Queues

c) Binary Search Trees [4]

 

14.  Analysis of Algorithms

 

a) Time and Space Complexity

b) Asymptotic Notation

c) Examples of analysis [2]

 

Recommended Text Books: 1. B. W. Kernighan and D. M. Ritchie, The C Programming Language, 2nd Ed (Ansi C),Prentice Hall

 

2. B. S. Gottfried, Programming with C, Schaum's  Outline Series, TMH 3. Y. Langsam, M. J. Augenstein, A. M. Tanenbaum, Data Structures using C and C++, 2ndEd, PHI