0% found this document useful (0 votes)
24 views3 pages

C Programming and Data Structures Syllabus

The document outlines the syllabus for the C Programming and Data Structures course at Santhiram Engineering College, detailing course objectives, topics covered in each unit, and expected outcomes for students. Key areas of focus include basic C programming concepts, data structures such as stacks, queues, linked lists, trees, and graphs, as well as searching and sorting techniques. The document also lists recommended textbooks and resources for further study.

Uploaded by

amerulla174
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views3 pages

C Programming and Data Structures Syllabus

The document outlines the syllabus for the C Programming and Data Structures course at Santhiram Engineering College, detailing course objectives, topics covered in each unit, and expected outcomes for students. Key areas of focus include basic C programming concepts, data structures such as stacks, queues, linked lists, trees, and graphs, as well as searching and sorting techniques. The document also lists recommended textbooks and resources for further study.

Uploaded by

amerulla174
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

R-2023

SANTHIRAM ENGINEERING COLLEGE


(AUTONOMOUS)
DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS

MCA I Sem. L T P C
3 1 0 4
(23F00102) C PROGRAMMING AND DATA STRUCTURES
Course Category Professional Core course (PC)

Course Enrichment Relevance Employability

COURSE OBJECTIVES:
1. To illustrate the basic concepts of C programming language.
2. To discuss the concepts of Functions, Arrays, Pointers and Structures.
3. To familiarize with Stack, Queue and Linked lists data structures.
4. To explain the concepts of non-linear data structures like graphs and trees.
5. To learn different types of searching techniques.
6. To learn different types of sorting techniques.

UNIT-I INTRODUCTION TO C LANGUAGE


C language elements, variable declarations and data types, operators and expressions,
decision statements - If and switch statements, loop control statements - while, for, do-
while statements, array

UNIT-II FUNCTIONS
Functions, types of functions, Recursion and argument passing, pointers, storage
allocation, pointers to functions, expressions involving pointers, Storage classes – auto,
register, static, extern, Structures, Unions, Strings, string handling functions, and
Command line arguments.

UNIT-III DATA STRUCTURES


Overview of data structures, stacks and queues, representation of a stack, stack
related terms, operations on a stack, implementation of a stack, evaluation of
arithmetic expressions, infix, prefix, and postfix notations, evaluation of postfix
expression, conversion of expression from infix to postfix, recursion, queues -
various positions of queue, representation of queue, insertion, deletion, searching
operations.

UNIT-IV LINKED LISTS


Linked Lists – Singly linked list, dynamically linked stacks and queues, polynomials using
singly linked lists, using circularly linked lists, insertion, deletion and searching
operations, doubly linked lists and its operations, circular linked lists and its operations.
R-2023
SANTHIRAM ENGINEERING COLLEGE
(AUTONOMOUS)
DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS

UNIT-V TREES AND GRAPHS


Trees - Tree terminology, representation, Binary trees, representation, binary tree
traversals. binary tree operations,
Graphs - graph terminology, graph representation, elementary graph operations,
Breadth First Search (BFS) and Depth First Search (DFS), connected components,
spanning trees.

UNIT-VI Searching and Sorting Techniques


Sorting Techniques - Insertion sort, Selection sort, Bubble sort, Quick sort, Heap sort,
and Merge sort
Searching Techniques - Linear Search, Binary Search
At the end of this unit, the students will be able to
• Design the different sorting techniques (L6)
• Apply programming to solve searching and sorting problems. (L3)

TEXT BOOKS:
1. The C Programming Language, Brian W Kernighan and Dennis M Ritchie, Second
Edition, Prentice Hall Publication.
2. Fundamentals of Data Structures in C, Ellis Horowitz, SartajSahni, Susan
Anderson-Freed, Computer Science Press.
3. Programming in C and Data Structures, [Link], Ashok N. Kamthane and A.
AnandaRao, Pearson Education.
4. B.A. Forouzon and R.F. Gilberg, COMPUTER SCIENCE: A Structured Programming
Approach Using C, Third edition, CENGAGE Learning, 2016.
5. Richard F. Gilberg & Behrouz A. Forouzan, “Data Structures: A Pseudocode
Approach with C”, Second Edition, CENGAGE Learning, 2011.

REFERENCE BOOKS:
1. Pradip Dey and Manas Ghosh, Programming in C, Oxford University Press, 2nd
Edition 2011.
2. E. Balaguruswamy, “C and Data Structures”, 4th Edition, Tata Mc Graw Hill.
3. A.K. Sharma, Computer Fundamentals and Programming in C, 2nd Edition,
University Press.
4. M.T. Somashekara, “Problem Solving Using C”, PHI, 2nd Edition 2009.

e-Resources and Digital Material:


1. [Link]

COURSE OUTCOMES:
1. Analyse the basic concepts of C Programming language.
2. Design applications in C, using functions, arrays, pointers and structures.
3. Apply the concepts of Stacks and Queues in solving the problems.
4. Explore various operations on Linked lists.
R-2023
SANTHIRAM ENGINEERING COLLEGE
(AUTONOMOUS)
DEPARTMENT OF MASTER OF COMPUTER APPLICATIONS

5. Demonstrate various tree traversals and graph traversal techniques.


6. Design searching and sorting methods

Mapping COs with POs & PSOs:


CO/PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
CO1 3 2 3 2 1 1
CO2 3 2 3 2 2 1
CO3 3 2 3 2 2 1
CO4 3 2 3 2 2 1
CO5 3 2 3 2 2 1
CO6 3 2 3 2 2 1

Common questions

Powered by AI

Binary trees hold data in a hierarchical structure with nodes having at most two children, optimizing search, insert, and traversal operations. Traversal methods like in-order retrieve sorted data, pre-order assists in creating copies or evaluating expressions, and post-order helps in space deallocation and postfix expression evaluation. Each method offers unique applications depending on the problem's requirements .

Storage classes in C like auto, register, static, and extern define the scope, visibility, and lifetime of variables. They impact efficiency by determining whether variables are stored in fast-access CPU registers, persist between function calls, or are accessible across multiple files. Register storage suggests to the compiler storing variables in a register for faster access, potentially optimizing performance .

Quick Sort has an average time complexity of O(n log n) but can degrade to O(n^2) in the worst case. It is efficient for large datasets where the chance of worst-case scenarios is low due to its low overhead and in-place sorting. Merge Sort consistently operates at O(n log n) time complexity, handles larger inputs better due to stable sorting, and is preferred where guaranteed performance and stability are required, like in linked lists .

Command line arguments allow developers to run programs with different parameters without modifying the source code. This improves flexibility by enabling programs to handle a variety of user inputs or configurations at runtime. It enhances usability by simplifying testing, debugging, and deployment processes by allowing different settings to be specified in a single run command .

Dynamic memory allocation allows linked lists to grow and shrink dynamically, optimizing memory usage by allocating storage only when needed. This contrasts with arrays, where a fixed size can lead to inefficient memory use. Linked lists allocate memory for each node independently, which minimizes waste and allows for flexible data structure sizing .

Binary tree traversal methods, such as in-order, pre-order, and post-order, are systematic procedures to visit every node in a tree and are used for operations like expression evaluation and syntax tree traversal. Graph traversals include Breadth First Search (BFS) and Depth First Search (DFS), which explore the graph layer by layer or deep first, respectively. Binary tree traversals are simpler due to the tree's hierarchical structure, whereas graph traversals must handle cycles and disconnected components, making their implementation and complexity often higher .

Recursion simplifies code by breaking down complex problems into smaller, more manageable sub-problems that are easier to solve. In data structures like stacks, recursion is naturally supported because the call stack itself operates similarly. For queues, recursion can optimize solutions like recursive breadth-first search in graphs by maintaining state within the call stack instead of explicit data structure management .

Function pointers allow C programs to pass functions as arguments to other functions, enabling callback mechanisms and the creation of flexible code. They help implement callback functions in libraries and provide a mechanism for defining strategies that can be changed at runtime, enhancing modularity and reusability .

Linked lists offer dynamic memory allocation, efficient insertions, and deletions without reallocating or shifting elements, which are major drawbacks in arrays. However, arrays provide better performance for indexed access due to contiguous memory storage. Linked lists are ideal for applications that require frequent modifications, whereas arrays suit cases needing constant-time element access .

Implementing graphs and trees in C involves challenges like memory management for dynamic node connections, handling complex structures in memory, and ensuring efficient traversal operations. These can be addressed by careful use of pointers, ensuring robust memory allocation/deallocation to prevent leaks, and using recursive functions or iteration for efficient traversal. Clarity in representing these structures through adjacency matrices/lists or linked representations can also mitigate complexities .

You might also like