Information information
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 virtually on Zoom. Please note the change in venue from previous years.
Lectures lectures
| Day | Date | Topic | Note | Ref |
|---|---|---|---|---|
| 0 | 7 Dec 2020 | Technical details + Introduction to UNIX-like systems |
Slides [PDF] Video [MP4] |
(B3), (B16) |
| 1 | 11 Dec 2020 | Hands-on Python |
Slides [PDF] Video [MP4] |
(B22) |
| 2 | 14 Dec 2020 | Basics of Python - I |
Slides [PDF] Video [MP4] prog1.py prog2.py prog6.py |
(B22) |
| 3 | 18 Dec 2020 | Basics of Python - II |
Slides [PDF] Video [MP4] |
(B22) |
| 4 | 21 Dec 2020 | More on Python |
Slides [PDF] Video [MP4] |
(B22) |
| 5 | 28 Dec 2020 | Lists, Stacks, Queues in Python |
Slides [PDF] Video [MP4] |
(B6), (B23) |
| 6 | 1 Jan 2021 | Lists, Stacks, Queues in Python – contd. |
alt_queue.py queue-comparison.py |
(B6), (B23) |
| Recursion |
Slides [PDF] Video [MP4] |
|||
| 7 | 4 Jan 2021 | Divide-and-Conquer Algorithms |
Slides [PDF] quicksort.py Video [MP4] |
|
| 8 | 8 Jan 2021 | Recap |
Slides [PDF] Video [MP4] Slides [PDF] Slides [PDF] Video [MP4] |
|
| 9 | 11 Jan 2021 | Binary Trees in Python |
Slides [PDF] binary_trees.py generate_random_tree.py Video [MP4] |
(B6) |
| 10 | 15 Jan 2021 | Object-oriented Programming with Python |
Slides [PDF] Video [MP4] |
|
| 11 | 17 Jan 2021 | Binary Search Trees |
Slides [PDF] binary_tree.py binary_search_tree.py Video [MP4] | (B1), (B14) |
| 12 | 22 Jan 2021 | Balanced Search Trees |
Slides [PDF] avl.py Video [MP4] |
|
| 13 | 25 Jan 2021 | Diagnostic Test (C programming) | Question paper | Test cases for Q2 |
| 14 | 29 Jan 2021 | Tries |
Slides [PDF] Video [MP4] |
|
| 15 | 1 Feb 2021 | Heaps |
Slides [PDF] Video [MP4] |
(B14) |
| 16 | 5 Feb 2021 | Tutorial | Video [MP4] | |
| 17 | 7 Feb 2021 | Hashing |
Slides [PDF] Video [MP4] |
|
| 18 | 12 Feb 2021 | Sorting |
Slides [PDF] Video [MP4] |
(B12) |
| 19 | 15 Feb 2021 | Tutorial | ||
| 20 | 19 Feb 2021 | Peer programming |
Notes [PDF] |
|
| 21 | 22 Feb 2021 | Debugging tools: GDB, Valgrind |
Slides [PDF] Video [MP4] |
|
| 22 | 26 Feb 2021 | Debugging tools: PDB |
Slides [PDF] Video [MP4] |
Course Plan lectures
| Day | Date | Topic | Note | Ref |
|---|---|---|---|---|
| 23 | 01 Mar 2021 | Revision | Slides [PDF] |
Assignments assignments
| No. | Deadline | Test cases | Solutions |
|---|---|---|---|
| Assignment 1 | 07:00am, 27 January, 2021 | ||
| Assignment 2 | 07:00am, 23 February, 2021 | ||
| Assignment 3 | 07:00am, 27 March, 2021 |
Lab Teststests
| Test | Date | Questions | Solution |
|---|---|---|---|
| 1 | 18 Jan 2021 | Question paper | Test cases |
| 2 | 8 Feb 2021 | Question paper | |
| 3 | 5 Mar 2021 | Question paper |
Course Projects assignments
| No. | Deadline | Resources |
|---|---|---|
| Project 1 | 31 Mar 2021 |
Cherapanamjeri et al., 2020 (Published version, arXiv version) |
Other Resources resources
Data Structure Visualizations from USFCA
Announcements
- Assignment 3 uploaded.
- Assignment 2 uploaded.
- Assignment 1 uploaded.
- Resources for the course project uploaded.
Instructors
Teaching Assistants
- Manmatha Roy (MR)
- Sourav Saha (SS)
Study Material
-
The C Programming Language
B. W. Kernighan and D. M. Ritchie
Prentice Hall, India -
How to Solve it by Computer
R. G. Dromey
Pearson Education -
The Unix Programming Environment
B. W. Kernighan and R. Pike
Prentice Hall, India -
Introduction to Algorithms
T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein
MIT Press -
Fundamentals of Data Structures
E. Horowitz and S. Sahni
Universities Press -
Data Structures and Algorithms
Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman
Pearson -
Data Structure Techniques
T. A. Standish
Addison Wesley -
The C++ Programming Language
Bjarne Stroustrup
Addison Wesley -
C++ - The Complete Reference
Herbert Schildt
McGraw Hill Education (India) -
Object-Oriented Programming in C++
Robert Lafore
SAMS -
Programming Languages Design and Implementation
T. W. Pratt and M. V. Zelkowitz
Pearson -
Fundamentals of Data Structures in C
E. Horowitz, S. Sahni and S. Anderson-Freed
Silicon Press -
Data Structures and Algorithm Analysis in C++
Mark A. Weiss
Pearson -
Algorithms
Robert Sedgewick and Kevin Wayne
Addison-Wesley Professional -
The Practice of Programming
Brian Kernighan and Rob Pike
Addison-Wesley Professional -
Programming Pearls
Jon Bentley
Pearson -
The Linux Command Line
William Shotts
No Starch Press -
The GNU Make Manual
R. M. Stallman, R. McGrath and P. D. Smith
Free Software Foundation -
Randomized Algorithms
Rajeev Motwani and Prabhakar Raghavan
Cambridge University Press -
The Elements of Programming Style
B. W. Kernighan and P. J. Plauger
McGraw-Hill -
Expert C Programming: Deep C Secrets
Peter van der Linden
SunSoft Press -
Learning Python
Mark Lutz
O'Reilly -
Data Structures and Algorithms in Python
Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser
Wiley
