Course Outline | General Information | Study Material | Lectures (classwise) |
Assignments and evaluation (assignment deadline, submission procedure and marks) |
Lab Tests | Announcements |
The course consists of two laboratory classes per week.
The basic thrust of the course would be to learn programming languages and implementing data structures.
We will try to stick to the basic course outline as given in this page, but may deviate a bit.
Class Timings: | Tuesday 14:15-17:00, Thursday 14:15-17:00 CSSC Lab, 4th floor, S. N. Bose Bhavan (Library Building) |
The necessary evil - marks, exam, etc.: | Laboratory tests (3 in all): 50, Assignments: 50 |
Instructors: |
Debapriyo Majumdar (DeM) Ansuman Banerjee (AnB) Arijit Bishnu (ArB) Soumi Chatterjee (SC) Dwaipayan Roy (DR) |
Books |
(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, India. (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 Prentice Hall, India. (B5) Fundamentals of Data Structures E. Horowitz and S. Sahni CBS, India. (B6) Data Structure Techniques T. A. Standish Addison-Wesley, Reading, Mass. (B7) The C++ Programming Language Bjarne Stroustrup Addison-Wesley (B8) C++ - The Complete Reference Herbert Schildt TMH (B9) Object-Oriented Programming in C++ Robert Lafore SAMS (B10) Programming Languages Design and Implementation T. W. Pratt and M. V. Zelkowitz Prentice Hall India (B11) Fundamentals of Data Structures in C E. Horowitz, S. Sahni and S. Anderson-Freed Universities Press (B12) Data Structures and Algorithm Analysis in C++ Mark A. Weiss Pearson (B13) Algorithms Robert Sedgewick and Kavin Wayne Addison Wesley |
Web Resources |
(W1) Help on Python
(W2) David Mount's lecture notes |
LECTURE DATES | TOPICS | NOTES | BOOKS |
---|---|---|---|
Day 1 (22-07-14) |
Introduction | Slides for Day 1
The first program |
(B1), (B3) |
Day 2 (24-07-14) |
Problem solving & C | Slides for Day 2
Supplementary slides |
(B1), (B3) |
Day 3 (26-07-14) |
Introduction to gcc | -- | (B1), (B3) |
Day 4 (31-07-14) |
Introduction to Linux Introduction to gcc |
Slides for Linux (pdf)
Slides for Linux (ppt) Slides for gcc |
(B1), (B3) |
Day 5 (05-08-14) |
Arrays, pointers and recursion Scope of variables in C |
Slides for arrays and pointers
Slides for recursion Sample programs (prepared by Dr. S. C. Ghosh) |
(B1), (B3) |
Day 6 (07-08-14) |
Basics of Object Oriented Programming, Java |
Slides for OOP (pdf) Slides for OOP (pptx) |
-- |
Day 7 (12-08-14) |
GDB, Valgrind, Gcov |
SlideGdb
SlideValgrind SlideGcov gdb_1.c gdb_2.c gcov.c 1.c 2.c 3.c 4.c 5.c 6.c 7.c |
-- |
Day 8 (14-08-14) |
Basics of Object Oriented Programming, Java |
Slides for OOP (pdf) Slides for OOP (pptx) |
-- |
Day 9 (19-08-14) |
Memory Allocation, Structure, Union, Commandline Argument UnionFind |
Slide for day 9 Slide for UnionFind |
-- |
Day 10 (21-08-14) |
Basics of Object Oriented Programming, Java |
Slides for OOP (pdf) Slides for OOP (pptx) |
-- |
Day 11 (26-08-14) |
File I/O in C Makefile |
Slides for Makefile (pptx) Slides for Makefile (pdf) Sample programs for Makefile |
-- |
Day 12 (28-08-14) |
Linked lists | -- | (B5), (B6), (B11) |
Day 13 (02-09-14) |
Memory Management, Garbage collection Slide acknowledgement: Prof. Gaetano Borriello and Luis Ceze ADT: stack and queue |
Sample program for Memory Management, Garbage collection Slide for Cachegrind Sample program for cachegrind |
-- |
Day 14 (04-09-14) |
Cache, ISA Slide acknowledgement: Prof. Gaetano Borriello and Luis Ceze |
Slide for Cache,
Slide for ISA,
Sample program, Sample input-1, Sample input-2, Sample input-3, Sample input-4 |
-- |
Day 15 (16-09-14) |
Regression testing | -- | |
Day 16 (18-09-14) |
Shell Programming | Slides for Shell Programming | -- |
Day 17 (23-09-14) |
Stack frame, Activation record Heap as an ADT and its implementation Backtracking: Subset sum, n-queen |
Slides (stack frame, activation record) -- -- |
-- (B6), (B11) (B4) |
Day 18 (25-09-14) |
ADT: Big integers, polynomial, sparse matrix | --- | (B11) |
Day 19 (09-10-14) |
Binary tree traversal -- inorder, preorder, postorder, level order; finding the height of a tree; |
--- | (B11) |
Day 20 (14-10-14) |
Range search -- 1D, Kd-tree Skip List; |
--- | -- |
Day 21 (21-10-14) |
Trie | --- | (B11) |
Day 22 (28-10-14) |
Dynamic Programming
Graph Algorithm |
...
Slides (UndirectedGraph) Slides (DirectedGraph) Programs: Bag.java In.java StdOut.java Graph.java |
... |
Day 23 (30-10-14) |
External Memory Sorting | --- | --- |
Day 24 (11-11-14) |
Sorting |
...
Slides (Mergesort.pdf) Slides (Quicksort.pdf) Slides (StringSorts.pdf) Slides (SubstringSearch.pdf) Slides (ElementarySorts.pdf) |
... |
Day 25 (13-11-14) |
Intel intrinsics (Guest lecture by Dr. Debrup Chakraborty ) |
Slides Resources |
--- |
Assignment set | Uploading date | Clarification deadline | Submission deadline | Programing language | Marks |
---|---|---|---|---|---|
Assignment 1 Submission guidelines |
30-07-2014 | -- | 08-08-2014 | C | Marks |
Assignment 2 Submission guidelines |
08-08-2014 | 11-08-2014 | 14-08-2014 | C | Marks |
Assignment 3 Submission guidelines |
14-08-2014 | 18-08-2014 | 21-08-2014 | C | Marks |
Assignment 4 |
29-08-2014 | 02-09-2014 | 05-09-2014 | Java | Marks |
Practice problem: Set 1 |
-- | -- | -- | C | -- |
Assignment 5 Submission guidelines |
02-09-2014 | 04-09-2014 | 08-09-2014 | C | Marks |
Assignment 6 Submission guidelines |
23-09-2014 | 25-09-2014 | 29-09-2014 | Java | |
Assignment 7 Submission guidelines |
29-09-2014 | 09-10-2014 | 11-10-2014 | C | Marks |
Practice problem: Set 2 |
-- | -- | -- | C | -- |
Practice problem: Set 3 |
-- | -- | -- | C | -- |
Practice problem: Set 4 |
-- | -- | -- | C | -- |
Assignment 8 (updated) Submission guidelines |
16-10-2014 | 21-10-2014 | 27-10-2014 | C | Marks |
Assignment 9 Submission guidelines |
22-10-2014 | 28-10-2014 | 01-11-2014 | C | Marks |
Assignment 10
Assignment courtesy Princeton University |
28-10-2014 | 28-10-2014 | 04-11-2014 | Java | Marks |
Assignment 11 |
24-11-2014 | 01-12-2014 | 02-12-2014 | Java | Marks |
Assignment 12
Assignment courtesy Dr. Sourav Sengupta |
24-11-2014 | 01-12-2014 | 07-12-2014 | Python | Marks |
Labtest | Date | Question paper | Solution sketch | Marks | |
---|---|---|---|---|---|
I | 27-08-2014 | Q Paper MCQ with answer keys |
Model solutions for programming exam | Marks (for Q1 and Q2)
Marks (for Q3) Total Marks |
|
II | 18-10-2014 | ... | Model solutions | Marks | |
III | 1-12-2014 | input.txt
socialnetwork.zip submissionguideline.pdf |
Marks for Q1 Marks for Q2 Marks for Q3 |
The first laboratory test will be held on August 27, 2014 (Wednesday)
from 2 pm to 6 pm.
The syllabus would be whatever would be covered
till August 26, 2014.
You will have to finish your programs within the stipulated time.
The second laboratory test will be held on October 18, 2014 (Saturday)
between 10:30 am and 5 pm.
The syllabus would be whatever would be covered
till October 16, 2014.
You will have to finish your programs within the stipulated time.
The third and final laboratory test will be held on December 1, 2014 (Monday)
from 11 am to 6 pm.
The syllabus is whatever has been covered
in the course.
You will have to finish your programs within the stipulated time.