__CS3353__

__C PROGRAMMING AND DATA STRUCTURES__

**COURSE OBJECTIVES:**

To
introduce the basics of C programming language.

•
To learn the concepts of advanced features of C.

•
To understand the concepts of ADTs and linear data structures.

•
To know the concepts of non-linear data structure and hashing.

•
To familiarize the concepts of sorting and searching techniques.

**UNIT I **

**C PROGRAMMING FUNDAMENTALS (8+1 SKILL)**

Data
Types - Variables - Operations - Expressions and Statements - Conditional
Statements - Functions - Recursive Functions - Arrays - Single and
Multi-Dimensional Arrays.

**UNIT II **

**C PROGRAMMING - ADVANCED FEATURES (8+1 SKILL)**

Structures
- Union - Enumerated Data Types - Pointers: Pointers to Variables, Arrays and
Functions - File Handling - Preprocessor Directives.

**UNIT III **

**LINEAR DATA STRUCTURES (8+1 SKILL)**

Abstract
Data Types (ADTs) - List ADT - Array-Based Implementation - Linked List -
Doubly- Linked Lists Circular Linked List - Stack ADT - Implementation of Stack
- Applications - Queue ADT - Priority Queues Queue Implementation -
Applications.

**UNIT IV **

**NON-LINEAR DATA STRUCTURES (8+1 SKILL)**

Trees
Binary Trees - Tree Traversals - Expression Trees - Binary Search Tree -
Hashing - Hash Functions Separate Chaining - Open Addressing - Linear Probing-
Quadratic Probing - Double Hashing Rehashing.

**UNIT V **

**SORTING AND SEARCHING TECHNIQUES (8+1 SKILL)**

Insertion
Sort - Quick Sort - Heap Sort - Merge Sort -Linear Search - Binary Search.

**TOTAL
45 PERIODS**

**SKILL
DEVELOPMENT ACTIVITIES (Group Seminar/Mini Project/Assignment/Content
Preparation / Quiz/ Surprise Test / Solving GATE questions/ etc)**

**COURSE OUTCOMES: **

**CO1**Develop
C programs for any real world/technical application.

**CO2**
Apply advanced features of C in solving problems.

**CO3**
Write functions to implement linear and non-linear data structure operations.

**CO4
**Suggest
and use appropriate linear/non-linear data structure operations for solving a
given problem.

**CO5
**Appropriately
use sort and search algorithms for a given application.

**CO6
**Apply
appropriate hash functions that result in a collision free scenario for data
storage and retrieval.

**TEXT BOOKS:**

1.
Mark Allen Weiss, "Data Structures and Algorithm Analysis in C",
Second Edition, Pearson Education, 1997.

2.
ReemaThareja, "Programming in C", Second Edition, Oxford University
Press, 2016.

**REFERENCES:**

1.
Brian W. Kernighan, Rob Pike, "The Practice of Programming", Pearson
Education, 1999.

2.
Paul J. Deitel, Harvey Deitel, "C How to Program", Seventh Edition,
Pearson Education, 2013.

3.
Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, "Data Structures and
Algorithms", Pearson Education, 1983.

4.
Ellis Horowitz, Sartaj Sahni and Susan Anderson, "Fundamentals of Data
Structures", Galgotia, 2008.

**List
of Open Source Software/ Learning website:**

https://www.coursera.org/specializations/data-structures-algorithms

https://nptel.ac.in/courses/112107243

https://nptel.ac.in/courses/112105598