Laboratory of Statistical Artificial Intelligence and Machine Learning
Data Structures and Algorithms for Data Science DS2030 Fall 2024
Description
Data structures and algorithms play a crucial role in computing applications that involve data management. They are particularly vital for data-driven decision systems, such as the Web, Databases, Machine Learning, Computer Vision, and Artificial Intelligence Systems. In this introductory course, we will explore fundamental and commonly used data structures. We will delve into theoretical analysis and practical application of these data structures, gaining hands-on experience by implementing them in Python for various applications.
Lecture Timings
Lectures - M, W, F, 11.00-11.50am Slot C Classroom Saraswati A-007
Lab - Tuesday 2.00-5.00pm Slot PA2, Lab - Nila CS lab
Reference Material
Primary Textbook : Data Structures and Algorithms in Python, by Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser, First Edition, Wiley, 2013
Other Reference Books :
Introduction to Algorithms by Cormen, Leiserson, Rivst, and Stein
Fundamentals of Data Structures by Horowitz and Sahani
Academic integrity
Students enrolled in this course are expected to exhibit a strong desire to learn, rather than just fulfilling a requirement for their degree. Engaging in discussions that help students better understand concepts or problems is encouraged. However, all submitted work must be original. Plagiarism, including copying from the internet, textbooks, or any other source for which the student does not hold the copyright, as well as sharing code with other students, will not be tolerated and will result in strict disciplinary action, including a failing grade in the course. If you have any questions about this policy, please contact the instructor. All academic integrity violations will be handled in accordance with institute regulations.
Grading Policy
Theory
Quizzes Two pre-announced quizzes will be conducted during the semester. The quizzes will account for 20% of the overall grade. Check the course calendar for the quiz dates.
Exams There will be an end-semester exam that will account for 30% of the overall grade.
Labs
Graded Labs There will be eight graded lab assignments during the semester. The labs will account for 30% of the overall grade. Each lab assignment will have two components - take home and in person. The students may take a few days to complete the take home component, while the in person component needs to be completed during the lab hours.
Lab exams Two pre-announced lab exams will be conducted during the semester (one each towards the middle and end of the semester). These lab exams will account for 20% of the overall grade.
The following factors will be considered while evaluating the labs
Correctness and Robustness of the software: Does the program execute correctly on a valid input. Is the output of the program correct with respect to the input. Does the program handle unusual or erroneous inputs gracefully, without abruptly crashing. Does the software meet the specifications defined in the problem?
Quality of Solution and Documentation of the code: Is the software divided into logical parts? Are there sufficient comments through out the code to make it readable? Have the identifier names chosen to reflect their functionality?
Attendance
This course follows the attendance criteria mandated by the institute.
Tentative Course Schedule
week 1 - Introduction OOP, Arrays, and Linked Lists
week 2 - Analysis Tools and Recursion, Lab 0
week 3 - Stacks and Queues, Lab 1
week 4 - Tree Structures and Heaps, Lab 2
week 5 - Sorting and Priority Queues, Lab 3
week 6 - Maps, Hash Tables, Quiz 1,
week 7 - Search Tree Structures I, Lab 4
week 8 - Search Tree Structures II, -
week 9 - Search Tree Structures III, Lab Exam 1
week 10 - Buffer week, Lab 5
week 11 - String Processing, Quiz 2, Lab 6
week 12 - Dynamic Programming, -
week 13 - Graphs I, Lab 7
week 14 - Graphs II, Lab 8
week 15 - Graphs III,
week 16 - Buffer week, Lab Exam 2
Lecture Material
Students enrolled in the course can access the lecture material from LMS Link
|