Information information

Data and File Structures Laboratory | aka PDS Lab
MTech (CS) First Year First Semester | Syllabus

Marks distribution : Assignments (~ 10) : Lab Tests (~ 5) = 50 : 50
There will be no Mid-Sem or End-Sem examination for this course.

Schedule : 2 Lab Sessions per week -- 3 hours per Session (typically)
Venue : CSSC Lab - I, 4th Floor, S N Bose Bhavan (Library Building)

Lecture schedule for a typical week will be as follows. Changes, if any, will be notified in the Lab.

Time Mon Tue Wed Thu Fri
14:15 - 17:00 -- -- Lab Session -- Lab Session


Programming Environment

If CS16XX is your ISI MTech CS roll number, login to the CSSC virtual machine as follows:

$ ssh mtc16XX@192.168.64.35
If you want to access gedit editor for programming, login to the virtual machine as follows:
$ ssh -X mtc16XX@192.168.64.35
Follow Lecture 1 and the Bash Cheat-Sheet to get yourself acquainted with the basics of GNU/Linux.

The file structure within your home directory, located at /user1/mtc16/mtc16XX/ on the virtual machine, and accessible through $ cd after you have logged in, should preferably be as follows.
Please note, and try to adhere to, the naming convention of the program files as well.

/user1/mtc16/mtc16XX/
                |
                +-- dfslab/
                    +-- assignments/
                    |   +-- assign1/
                    |   |   |- cs16XX-assign1-prog1.c
                    |   |   |- cs16XX-assign1-prog2.c
                    |   |   |- cs16XX-assign1-prog3.c
                    |   |   |- cs16XX-assign1-prog4.c
                    |   |   `- README.txt
                    |   |
                    |   +-- assign2/
                    |   +-- assign3/
                    |   +-- ... etc.
                    |
                    +-- labsessions/
                    |   +-- pds20160720/
                    |   |   |- cs16XX-20160720-prog1.c
                    |   |   |- cs16XX-20160720-prog2.c
                    |   |   `- README.txt
                    |   |
                    |   +-- pds20160722/
                    |   +-- pds20160727/
                    |   +-- ... etc.
                    |
                    +-- labtests/
                    |   +-- labtest1/
                    |   |   |- cs16XX-labtest1-prog1.c
                    |   |   |- cs16XX-labtest1-prog2.c
                    |   |   |- cs16XX-labtest1-prog3.c
                    |   |   `- README.txt
                    |   |
                    |   +-- labtest2/
                    |   +-- labtest3/
                    |   +-- ... etc.
                    |
                    `-- miscellaneous/
                

Lectures lectures

Day Date Topic Note Ref
1 20 Jul 2016 Introduction to Linux [SSG] Slides [PDF] (B3), (B16)
2 22 Jul 2016 Preliminaries in C [RiB] -- --
3 27 Jul 2016 Arrays and Pointers [RiB] -- --
4 29 Jul 2016 Arrays and Pointers [RiB] -- --
5 3 Aug 2016 Functions and Recursion [SSG] -- --
6 5 Aug 2016 Files, I/O and Buffer [SSG] Code [cat] --
7 10 Aug 2016 Linked Lists, Stack and Queue [MM] Slides [PDF] --
8 12 Aug 2016 Linked Lists, Stack and Queue [MM] Slides [PDF] --

Assignments assignments

Assignments constitute 50% of the total marks (tentatively 10 assignments in total).

Assignment Uploaded Clarification Submission Note Marks
Assignment 1 20-07-2016 22-07-2016 27-07-2016 -- TBA
Assignment 2 06-08-2016 10-08-2016 12-08-2016 -- TBA

Lab Tests tests

The Lab tests constitute 50% of the total marks (tentatively 5 lab tests in total).

Test Date Question Solution Marks/Comments
1 13-08-2016 (tentative) TBA TBA TBA
2 03-09-2016 (tentative) TBA TBA TBA

 

Instructors

Teaching Assistants

To be announced.

Announcements

  • Assignment 1 posted (due on 27/07/2016).
  • Basic course information posted.
  • Course website is now online.

Study Material

  • (B1) The C Programming Language
    B. W. Kernighan and D. M. Ritchie
    Prentice Hall, India
  • (B2) How to Solve it by Computer
    R. G. Dromey
    Pearson Education
  • (B3) The Unix Programming Environment
    B. W. Kernighan and R. Pike
    Prentice Hall, India
  • (B4) Introduction to Algorithms
    T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein
    MIT Press
  • (B5) Fundamentals of Data Structures
    E. Horowitz and S. Sahni
    Universities Press
  • (B6) Data Structure Techniques
    T. A. Standish
    Addison Wesley
  • (B7) The C++ Programming Language
    Bjarne Stroustrup
    Addison Wesley
  • (B8) C++ - The Complete Reference
    Herbert Schildt
    McGraw Hill Education (India)
  • (B9) Object-Oriented Programming in C++
    Robert Lafore
    SAMS
  • (B10) Programming Languages Design and Implementation
    T. W. Pratt and M. V. Zelkowitz
    Pearson
  • (B11) Fundamentals of Data Structures in C
    E. Horowitz, S. Sahni and S. Anderson-Freed
    Silicon Press
  • (B12) Data Structures and Algorithm Analysis in C++
    Mark A. Weiss
    Pearson
  • (B13) Algorithms
    Robert Sedgewick and Kavin Wayne
    Addison-Wesley Professional
  • (B14) The Practice of Programming
    Brian Kernighan and Rob Pike
    Addison-Wesley Professional
  • (B15) Programming Pearls
    Jon Bentley
    Pearson
  • (B16) The Linux Command Line  
    William Shotts
    No Starch Press
  • (B17) The GNU Make Manual  
    R. M. Stallman, R. McGrath and P. D. Smith
    Free Software Foundation
  • (B18) Randomized Algorithms
    Rajeev Motwani and Prabhakar Raghavan
    Cambridge University Press