Information information

Syllabus

Marks distribution: Assignments - 50%;   Lab Tests - 50%;   Course Projects - BONUS.
There will be no Mid-Sem or End-Sem examination for this course.

All classes will be held in CSSC Lab - 2, 4th Floor, SN Bose Bhavan (Library Building). Please note the change in venue from previous years.

Lectures lectures

Day Date Topic Note Ref
0 23 Jul 2019 Preliminaries, Introduction to UNIX-like systems Slides [PDF] (B3), (B16)
1 26 Jul 2019 Programming in C – Warmup Slides [PDF] (B1), (B14)
2 30 Jul 2019 Review of C – Operators, Expressions, Control Flow, Basic Input/output Slides [PDF]
3 2 Aug 2019 Review of C – Arrays, Pointers, Dynamic Memory Allocation, Structures Slides [PDF]
4 6 Aug 2019 Review of C – More Input/Output, Preprocessor Directives, File Handling, Header Files, Multi-file Programs Slides [PDF]
5 9 Aug 2019 Functions and recursion Slides [PDF]
6 13 Aug 2019 Revision Slides [PDF]
7 16 Aug 2019 Lab test 1
8 20 Aug 2019 Surprise test
Programming Style, Efficient Programming, Code Optimization
Question paper [PDF]
Slides [PDF]
(B20), (B21)
9 23 Aug 2019 Linked lists, stacks, queues: implementation Slides [PDF] (B6)
10 27 Aug 2019 Function pointers; generic stacks Slides [PDF]
C files
common.h
11 30 Aug 2019 Tools: GDB, Valgrind Slides [PDF]
Test1.c, Test2.c,
Test3.c, Test4.c,
Test5.c, Test6.c
12 3 Sep 2019 Tools: Gcov, Cscope, Ctags, and Makefiles Slides [PDF]
Test.zip
13 6 Sep 2019 Binary Trees Slides [PDF]
Mid-semester exam break
14 17 Sep 2019 Heaps Slides [PDF]
(B14)
15 20 Sep 2019 Sorting Techniques
Creating / using libraries
Slides [PDF]
Slides [PDF]
16 24 Sep 2019 Searching Techniques Slides [PDF]
17 27 Sep 2019 Lab test 2
18 1 Oct 2019 Hashing Slides [PDF]
(B12)
19 3 Oct 2019 Binary Search Trees Slides [PDF]
Code
20 15 Oct 2019 Balanced Search Trees Slides [PDF]
Code
21 18 Oct 2019 Tries Slides [PDF]
Code
22 22 Oct 2019 Lab test 3
23 25 Oct 2019 B-Trees, B+-Trees Slides [PDF]
24 29 Oct 2019 Introduction to Python Slides [PDF]
(B22)
24 1 Nov 2019 More on Python Slides [PDF]
Slides [PDF]
26 5 Nov 2019 Data Structures with Python Slides [PDF]
Slides [PDF]
Code
(B23)

Course Plan lectures

Day Date Topic Note Ref
27 8 Nov 2019 Lab test 4

Assignments assignments

No. Deadline Test cases Solutions
Assignment 1 10 Aug 2019
Assignment 2 11 Oct 2019 Source code for Q1
Assignment 3 1 Nov 2019
Assignment 4 15 Dec 2019

Lab Teststests

Test Date Questions Solution
1 16 Aug 2019 Question paper
2 27 Sep 2019 Question paper
3 22 Oct 2019 Question paper
4 8 Nov 2019 Question paper

Course Projects assignments

No. Deadline Resources
Project 1 15 Dec 2019 Loong et al., 2017
(Author version,   arXiv version)

Other Resources resources

Data Structure Visualizations from USFCA

 

Announcements

  • Assignment 4 uploaded.
  • Assignment 3 uploaded.
  • Assignment 2 uploaded.
  • Assignment 1 uploaded.
  • Course project has been uploaded.
  • Answer keys to Surprise test marked in red.

Instructors

Teaching Assistants

Study Material

  1. The C Programming Language
    B. W. Kernighan and D. M. Ritchie
    Prentice Hall, India
  2. How to Solve it by Computer
    R. G. Dromey
    Pearson Education
  3. The Unix Programming Environment
    B. W. Kernighan and R. Pike
    Prentice Hall, India
  4. Introduction to Algorithms
    T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein
    MIT Press
  5. Fundamentals of Data Structures
    E. Horowitz and S. Sahni
    Universities Press
  6. Data Structures and Algorithms
    Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman
    Pearson
  7. Data Structure Techniques
    T. A. Standish
    Addison Wesley
  8. The C++ Programming Language
    Bjarne Stroustrup
    Addison Wesley
  9. C++ - The Complete Reference
    Herbert Schildt
    McGraw Hill Education (India)
  10. Object-Oriented Programming in C++
    Robert Lafore
    SAMS
  11. Programming Languages Design and Implementation
    T. W. Pratt and M. V. Zelkowitz
    Pearson
  12. Fundamentals of Data Structures in C
    E. Horowitz, S. Sahni and S. Anderson-Freed
    Silicon Press
  13. Data Structures and Algorithm Analysis in C++
    Mark A. Weiss
    Pearson
  14. Algorithms
    Robert Sedgewick and Kevin Wayne
    Addison-Wesley Professional
  15. The Practice of Programming
    Brian Kernighan and Rob Pike
    Addison-Wesley Professional
  16. Programming Pearls
    Jon Bentley
    Pearson
  17. The Linux Command Line  
    William Shotts
    No Starch Press
  18. The GNU Make Manual  
    R. M. Stallman, R. McGrath and P. D. Smith
    Free Software Foundation
  19. Randomized Algorithms
    Rajeev Motwani and Prabhakar Raghavan
    Cambridge University Press
  20. The Elements of Programming Style
    B. W. Kernighan and P. J. Plauger
    McGraw-Hill
  21. Expert C Programming: Deep C Secrets
    Peter van der Linden
    SunSoft Press
  22. Learning Python
    Mark Lutz
    O'Reilly
  23. Data Structures and Algorithms in Python
    Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser
    Wiley