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