UE101 Algorithms and Programming
Instructors:
Minati De and
Deepak D'Souza.
Lab Instructor: Pavan Kumar.
Teaching Assistants: Girish M. (m.girish.cs@gmail.com), Arpita Biswas (arpitab@iisc.ac.in), Chandrahas (chandrahas@iisc.ac.in), G S Raghavendra (raghavendrag@iisc.ac.in), and Divya Ravi (divyar@iisc.ac.in).
-
Course outline
-
Introduction to C programming. Importance of algorithms and data structures in
programming.
-
Notion of complexity of algorithms and the big O
notation. Iteration and Recursion. Algorithm analysis
techniques.
-
Arrays and common algorithms with arrays.
- Linked lists and common algorithms with linked lists.
- Searching with hash tables and binary search trees.
- Pattern search algorithms.
- Sorting algorithms including quick-sort, heap-sort, and merge-sort.
- Graphs algorithms: shortest path
algorithms, minimal spanning tree algorithms, depth first and breadth
first search.
- Algorithm design techniques including greedy, divide and
conquer, and dynamic programming.
-
Lectures
- 02-08-2017: Course overview.
- 07-08-2017, 09-08-2017, 14-08-2017: Control Flow.
- 16-08-2017, 21-08-2017, 23-08-2017: Basic Data Types and Operations.
- 28-08-2017, 30-08-2017: Arrays and Search.
- 04-09-2017, 06-09-2017: Pointers.
- 11-09-2017, 13-09-2017: String Matching.
- 20-09-2017: Structures.
- 21-09-2017: Linked Lists.
- 06-11-2017: Binary Search Trees.
-
Programs used in lectures
- Books and other material
- Brian W. Kerninghan and Dennis M. Ritchie, The C Programming
Language. Prentice Hall of India, New Delhi, 2009.
- Mark Allen Weiss, Data Structures and Algorithm Analysis in C. 2e Paperback, Pearson, 2002.
- R.G. Dromey, How to Solve it by Computer. Pearson Education India.
2006.
-
Robert L. Kruse, Data Structures and Program Design in C. Prentice
Hall of India, New Delhi, 2006.
-
Steven S. Skiena, The Algorithm Design Manual. Springer, Second
Edition, 2008.
-
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and
Clifford Stein: Introduction to Algorithms. MIT Press, 2009.
- Assignments
-
Evaluation components and weightage:
-
Mid-semester Exam: 20%
-
Assignments + Quiz + Lab Exercises: 40%
-
Final Exam: 40%
-
Meeting schedule:
- (Classes) Mon, Wed, 9:30 am, Main Lecture Hall, UG Block.
- (Tutorial) Thu 11:00am, Main Lecture Hall, UG Block.
- (Lab sessions) Mon-Thu, 2:00-5:00pm, Computing Lab.
- Exam Schedule:
-
Mid-semester Exam:
TBA.
-
Final Exam:
TBA.