[go: up one dir, main page]

0% found this document useful (0 votes)
18 views2 pages

IC253 Syllabus

The document outlines a proposed curriculum for a compulsory CSE core course, IC 253: Programming and Data Structures, aimed at covering essential programming and data structure concepts for undergraduate students. The course objectives include teaching students to analyze algorithm performance, implement data structures, and develop efficient algorithms for computer engineering problems. The syllabus includes topics such as stacks, queues, trees, graphs, and basic algorithmic techniques, along with recommended textbooks and reference materials.
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)
18 views2 pages

IC253 Syllabus

The document outlines a proposed curriculum for a compulsory CSE core course, IC 253: Programming and Data Structures, aimed at covering essential programming and data structure concepts for undergraduate students. The course objectives include teaching students to analyze algorithm performance, implement data structures, and develop efficient algorithms for computer engineering problems. The syllabus includes topics such as stacks, queues, trees, graphs, and basic algorithmic techniques, along with recommended textbooks and reference materials.
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
You are on page 1/ 2

Course Name: Programming and Data Structures

Course Number: IC 253


Credits: 2-0-2-3
Prerequisites:
Distribution: Compulsory for CSE, DS
Semester: 2
--------------------------------------------------------------------------------
1. Preamble:

The proposed new curriculum for a CSE core course in the IC bucket. The proposed course
follows the new CS curriculum design approach that strives to cover the fundamental concepts
that a CS and DS undergraduate student must know. The course proposal attempts to include
the fundamental topics in programming and data structures. The topics form the essential core
of this course that must be covered comprehensively, with lots of examples, and practice
exercises. Advanced topics in algorithm design and analysis are going to be covered in
discipline electives.

2. Objective:

This course on data structures and algorithms should teach the students concrete
implementations and manipulation of various data structures and their use in design and
analysis of non-trivial algorithms for a given computational task. On completion of such a
course, students should be able to
● analyze the asymptotic performance of algorithms
● demonstrate their familiarity with major data structures, rules to manipulate those, and
their canonical applications
● develop efficient algorithms for some common computer engineering design problems

Further, as programming is an integral part of the CS education, in this course students should
implement the data structures and algorithms they learn, compute the corresponding achievable
performance (computation time, memory requirement, etc.), and if possible compare the
achievable performance with alternative designs.
3. Syllabus:

1 Introduction: Review of problem solving using computers; Importance of data


structure and algorithms; Elementary data structures: array, linked lists, stack and
queues; Abstract data Operations on elementary data structures; Time and
space complexity of algorithms: asymptotic analysis and notation, average, and
worst case analysis. 3 hours

2 Stack and Queues: sequential and linked implementations, representative


applications such as towers of Hanoi, and parenthesis matching. 3 hours

3 Lists: Abstract data type, sequential and linked representations, comparison of


insertion, deletion and search operations for sequential and linked lists, list and
chain classes, doubly linked lists, circular lists, skip lists, applications of lists in
sparse tables. 3 hours

4 Trees: Abstract data type, sequential and linked implementations, tree traversal
methods and algorithms, Binary trees and their properties. 3 hours

5 Search Trees: Binary search trees, search efficiency, insertion, and deletion
operations, the importance of balancing, AVL trees, searching, insertion, and
deletions in AVL trees. 4 hours

6 Heaps: Heaps as priority queues, heap implementation, insertion-deletion


operations, and heapsort. 2 hours

7 Graphs: Definition, terminology, directed and undirected graphs, properties,


implementation – adjacency matrix and linked adjacency chains, connectivity in
graphs, graph traversal – breadth first and depth first, spanning trees. 3 hours

8 Basic algorithmic techniques: Greedy algorithms, divide & conquer. Search


techniques - backtracking, Sorting algorithms with analysis, integer sorting,
selection sort. Graph algorithms: DFS and BFS with applications, MST, and
shortest paths. 7 hours

4. Text Books:

1. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, MIT


Press, 3/e, 2009.
5. Reference Books:

1. S. Sahni, Data Structures, Algorithms, and Applications in C++, Silicon Press, 2/e, 2005.
2. A. M. Tenenbaum, Y. Langsam, and M. J. Augenstein, Data Structures Using C and C++,
Prentice Hall, 2/e, 1995.
6. Similarity content declaration with existing courses:

You might also like