CSCI C343 Data Structures Spring 2025

Indiana University, Spring 2025

This course studies the fundamental ideas for efficiently analyzing large amounts of data, such as DNA sequence databases and geographic information. These fundamental ideas come in two kinds: algorithms and data structures. Algorithms are instructions for solving problems and data structures are strategies for organizing information on computers. Efficient algorithms require appropriate data structures, and vice versa, so the study of algorithms and data structures is tightly linked. In this course we learn about the algorithms and data structures that form the building blocks for many of Today’s large-scale computer systems. We apply these ideas to solve challenging problems in bioinformatics and geographic information systems. Warning: a possible side-effect of taking this course is doing better on job interview questions.

Lecture

Labs and Teaching Assistants

Expect at least one quiz per month during lab time.

Instructors

Teaching Assistants

Office Hours

Office hours with TAs are in Luddy Hall Room 0121. (Starting the week of January 20.)

Time Monday Tuesday Wednesday Thursday Friday
10am Ashley   Lillie    
11am         Dhruv
12pm   Javaria*      
1pm Calvin Javaria Calvin, Lillie    
2pm Dhruv Ashley**      
3pm Shulin Darshal Shulin Aniruthan  
4pm Matei Darshal Matei Aniruthan  
5pm          

* Beginning at 12:40 pm ** Beginning at 2:10 pm

Textbook

Data Structures and Algorithm Analysis in Java, 3rd Ed. by Mark A. Weiss

Slack (communicating with instructors and other students)

Signup

Schedule

Day Lecture Topic Reading Due Assignments and Due Dates Link
Jan. 14 Introduction      
Jan. 16 Arrays, Rotation, Testing Ch. 1    
Jan. 16 or 17     Lab: Array Search and Testing code, test
Jan. 21 Algorithm Analysis Ch. 2 Lab Array Search due code, test
Jan. 23 Algorithm Analysis, continued      
Jan. 23 or 24     Project: FloodIt! code
Jan. 28 Programming in Deduce with Linked Lists Programming in Deduce Project FloodIt! due code
Jan. 30 Writing Proofs in Deduce Proofs in Deduce    
Jan. 30 or 31     Lab: Linked Lists in Deduce code
Feb. 4 Writing Proofs and Induction   Lab Linked Lists in Deduce due  
Feb. 6 Logical And, Or, Not, and Sets      
Feb. 6 or 7     Lab: Proof Exercises (Quiz)  
Feb. 11 Discovering and Generalizing Lemmas   Lab Proof Exercises due submit
Feb. 13 Insertion Sort, Merge Sort, Quick Sort Ch.7 Sec. 2,6,7    
Feb. 13 or 14     Lab: Quick Reverse Correct  
Feb. 14        
Feb. 18 Interfaces and Binary Trees Ch. 4 Sec. 1-2 Lab: Quick Reverse Correct due submit
Feb. 20 Binary Search Trees Ch. 4 Sec. 3    
Feb. 20 or 21     Lab: Merge Sort  
Feb. 25 Balanced Search Trees (AVL) Ch. 4 Sec. 4 Lab MergeSort due submit
Feb. 27 More AVL      
Feb. 27 or 28     Lab: work on Project 2: Segment Intersection code, test
Feb. 28     Extra Credit: List Search submit
March 4 Recipes for Time Analysis and Testing      
March 6 Hash Tables Ch. 5 sec. 1,2,3,5,6    
March 6 or 7     Lab: finish Project 2: Segment Intersection code, test
March 11 Review for Midterm Exam   Project Segment Intersection due  
March 13 Midterm Exam (in class)      
March 13 or 14     Lab: Hash Table code, test
March 17-21 Spring Break      
March 25 Code Review (Segment Intersection)   Lab Hash Table due  
March 27 Heaps and Priority Queues Ch. 6 sec. 1-4,9    
March 27 or 28     Lab: Heap (Huffman Coding) code, test
April 1 Graphs and Breadth-first Search Ch. 9, sec. 1,3 Lab Heap Due  
April 3 Depth-first Search Ch. 9 sec. 6    
April 3 or 4     Lab: Connected Components code, test
April 8 Shortest Paths Ch. 9 sec. 3 Lab Connected Components due  
April 10 Union Find Ch. 8    
April 10 or 11     Project: Routing Wires code
April 15 Minimum Spanning Tree Ch. 9 sec. 5    
April 17 Dynamic Programming Ch. 10, sec. 3    
April 17 or 18     Project: Routing Wires, cont’d  
April 22 DNA Alignment   Routing Wires due  
April 24 More Dynamic Programming      
April 24 or 25     Lab: DNA Sequence Alignment code, test
April 29 Code Review (Routing Wires)   Lab DNA Sequence Alignment due  
May 1 Review for Final Exam      
May 1 or 2     Optional lab for exam review  
May 8 Final Exam (in class) 10:20am-12:20pm      

Resources

Grade Weighting

Late Policy

This policy applies to labs, projects, textbook exercises, and quizzes. For quizzes, you can do a make-up quiz during office hours. This policy does not apply to the midterm and final exam. When you complete something up to one week late, there is a 10% deduction to its grade.

100% up to the due date
90% up to one week after due date
0% after one week past the due date

Bias-Based Incident Reporting.

Bias-based incident reports can be made by students, faculty and staff. Any act of discrimination or harassment based on race, ethnicity, religious affiliation, gender, gender identity, sexual orientation or disability can be reported through any of the options:

1) email biasincident@indiana.edu or incident@indiana.edu;

2) call the Dean of Students Office at (812) 855-8188 or

3) use the IU mobile App (m.iu.edu). Reports can be made anonymously.

Counseling and Psychological Services.

CAPS has expanded their services. For information about the variety of services offered to students by CAPS visit: https://healthcenter.indiana.edu/counseling/index.html

Disability Services for Students (DSS).

The process to establish accommodations for a student with a disability is a responsibility shared by the student and the DSS Office. Only DSS approved accommodations should be utilized in the classroom. After the student has met with DSS, it is the student’s responsibility to share their accommodations with the faculty member. For information about support services or accommodations available to students with disabilities and for the procedures to be followed by students and instructors, please visit: https://studentaffairs.indiana.edu/disability-services-students/.

Students needing additional financial or other assistance.

The Student Advocates Office (SAO) can help students work through personal and academic problems as well as financial difficulties and concerns. SAO also assists students working through grade appeals and withdrawals from all classes. SAO also has emergency funds for IU students experiencing emergency financial crisis https://studentaffairs.indiana.edu/student-advocates/.

Academic Misconduct.

If you suspect that a student has cheated, plagiarized or otherwise committed academic misconduct, refer to the Code of Student Rights, Responsibilities and Conduct: http://studentcode.iu.edu/.

Sexual Misconduct.

As your instructor, one of my responsibilities is to create a positive learning environment for all students. Title IX and IU’s Sexual Misconduct Policy prohibit sexual misconduct in any form, including sexual harassment, sexual assault, stalking, and dating and domestic violence. If you have experienced sexual misconduct, or know someone who has, the University can help.

If you are seeking help and would like to speak to someone confidentially, you can make an appointment with:

It is also important that you know that Title IX and University policy require me to share any information brought to my attention about potential sexual misconduct, with the campus Deputy Title IX Coordinator or IU’s Title IX Coordinator. In that event, those individuals will work to ensure that appropriate measures are taken and resources are made available. Protecting student privacy is of utmost concern, and information will only be shared with those that need to know to ensure the University can respond and assist. I encourage you to visit stopsexualviolence.iu.edu to learn more.