Narayanan C Krishnan

CSL 201 - Data Structures

 

Course Information Grading Policy Lectures/Calendar Labs

 

Course Information

 

Timings and Lecture Hall

Monday 9.55-10.45am

Tuesday 10.50-11.40am

Wednesday 11.45am-12.35pm

Lecture Hall L3

Lab hours - Thursday 9.00am-12.35pm

 

Description

Data structures are important for any computing application that handles data. Efficient data structures and algorithms are essential for most software systems, including the Web, Operating Systems, Databases, Computer Networks, Compilers, Computer Graphics Applications, and Artificial Intelligence Systems. This introductory course discusses some of the basic and widely used data structures. Theoretical analysis and application utility of different data structures will also be discussed in detail. For a comprehensive list of topics covered in the course and course schedule, please see the course calendar. Practical experience will be gained through implementing the data strucutures and algorithms for different applications in Java. For more details on lab assignments, please see the Labs webpage.

 

Reference Material

Primary textbook will be Data Structures and Algorithms in Java, by Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser, Sixth Edition, Wiley, 2010

Other reference books

  • Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein

 

Instructor Details

Narayanan (CK) Chatapuram Krishnan

Office Hours: TBD

Office: 318

Phone: +91 1881 242273

Email: ckn@iitrpr.ac.in

 

Teaching Assistants Details

Yayati Gupta

Office Hours: During regular lab hours on Thursday

Office: 120

Email: yayati.gupta@iitrpr.ac.in

Students: All 2012 EE, 2013 EE, 2013 ME and 2014 CS (1001-1008)

 

Anoop Jacob Thomas

Office Hours: During regular lab hours on Thursday

Office: 120

Email: anoopjt@iitrpr.ac.in

Students: All 2014 ME and remaining 2014 CS

 

Academic Integrity

It is expected that students who are taking this course will demonstrate a keen interest in learning and not mere fulfilling the requirement towards their degree. Discussions that help the student understand a concept or a problem is encouraged. However, each student must turn in original work. Plagiarism/copying of any form, will be dealt with strict disciplinary action. This involves, copying from the internet, textbooks and any other material for which you do not own the copyright. Copying part of the code will be considered plagiarism. Lending the code to others will be considered plagiarism too, for it is difficult to investigate who copied whose code. Students who violate this policy will directly receive a failing grade in the course. Remember - Your partial submission can fetch you some points, but submitting other's work as your own can result in you failing the course. Please talk to the instructor if you have questions about this policy. All academic integrity issues will be handled in accordance with institute regulations.

 

Scroll to top

Grading Policy

 

Grading Policy

Quizzes: There will be approximately 6-7 pre-announced quizzes during the semester. Check the course calendar to learn about dates on which a quiz will be held. The top 6 quiz scores will count towards the student's overall grade. The quizzes will account for 30% of the overall grade. The quizzes will be held on every alternate Thursday starting from August 6th, 2015 during the first hour of the lab in L2.

 

Labs: There will be approximately 6-8 labs. Each lab will have a major programming comonent and will span for approximately two weeks. The top 6 labs will account for 20% of the overall grade. Students having difficulty with the labs are encouraged to contact the TA for assistance. You are not required to be physically present in the lab during the lab hours. You can complete the labs at your convenience and turn it in by the deadline.

 

Exams: The mid and end semester exams together will account for 50% (25% each) of the overall grade.

 

Attendance: There is no mandatory attendance. However attendance will be taken in every class. This will consitute a bonus of 1% for the final grade and might be helpful for all border line students.

 

Passing Critera: A student must secure an overall score of 40 (out of 100) and a combined score of 60 (out of 200) in the exams to pass the course.

 

Tentative Grade Breakup*

Quizzes (6 out of 7) 30%
Labs (6 out of 7) 20%
Mid-Semester Exam 25%
End-Semester Exam 25%
Total 100

*This is a tentative breakup of the grades and can change at the discretion of the instructor. However, any change with respect to the grade break-up will be intimated in advance.

 

Grade Sheet:PDF

Scroll to top

Lectures and Calendar

 

Tentative Schedule and List of Topics*

Week
Dates
Topic Readings
Quiz/Lab
1
Jul27-Jul31
Introduction, OOP, Arrays and Linked Lists Chapter 3
2
Aug3-Aug7
Analysis Tools, Recursion Chapter 4 and 5
Q1 (Aug 6)
3
Aug10-Aug14
Stacks and Queues Chapter 6
L1 (Aug 14)
4
Aug17-Aug21
Positions, Itertators, Tree Structures Chapter 7.3, 7.4 and 8
Q2 (Aug 20)
5
Aug24-Aug28
Heaps and Priority Queues Chapter 9
L2 (Aug 28)
6
Aug31-Sep4
Heaps / Maps and Hash Tables Chapter 10 (10.1-10.3)
Q3 (Sep 3)
7
Sep7-Sep11
Hash Tables and Review Problems  
L3 (Sep 11)
8
Sep14-Sep18
Exam week  
9
Sep21-Sep25
No regular class  
10
Sep28-Oct2
Search Tree Structures Chapter 11 (11.1-11.3)
L4 (Oct 2)
11
Oct5-Oct9
Search Tree Strcutures Chapter 11(11.3-11.6)
Q4 (Oct 8)
12
Oct12-Oct16
Strings Chapter 12.1-12.3
L5(Oct 18) Queries
13
Oct19-Oct23
Dynamic Programming Chapter 12.5
Q5(Oct 21)
14
Oct26-Oct30
Sorting Chapter 13 (13.1-13.4)
L6 (Oct 30)
15
Nov2-Nov6
Graphs Chapter 14 (14.1-14.3)
Q6 (Nov 5)
16
Nov9-Nov13
Graphs Chapter 14(14.4-14.6)
L7 (Nov 13)
17
Nov16-nov20
Graphs Chapter 14(14.7)
Q7 (Nov 18)
18
Nov23-Nov27
Exam week  

*This is a tentative list of topics that will be covered during the semester. The topics and schedule can change according to the need at the discretion of the instructor.

Scroll to top

Labs

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?

 

  • Java Tutorial by the TA Yayati Gupta on Thursday July 30, 2015 9.00-10.30am in L2 (Chapter 1 and 2 from the textbook)
  • Lab 1 due on August 14th 11.55pm
  • Lab 2 due on August 28th 11.55pm
  • Lab 3 due on September 11th 11.55pm
  • Lab 4 due on October 2nd 11.55pm
  • Lab 5 due on October 18th 11.55pm
  • Lab 6 due on October 30th 11.55pm
  • Lab 7 due on November 13th 11.55pm
Scroll to top