CSCI H343 Data Structures Fall 2025

Indiana University, Fall 2025

This course studies the fundamental ideas for correctly and 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. To implement algorithms and data structures correctly relies on software engineering skills such as testing, debugging, and reasoning logically about the code, which we practice in this course. 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

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.

Time Monday Tuesday Wednesday Thursday Friday
10am          
11am          
12pm          
1pm          
2pm          
3pm          
4pm          
5pm          

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
Aug. 25 Introduction      
Aug. 27 Arrays, Rotation, Testing Ch.1    
Aug. 29   Lab: Array Search and Testing  
Sep. 1 Labor Day (no class)      
Sep. 3 Algorithm Analysis Ch.2    
Sep. 5   Project: FloodIt!  
Sep. 8 Algorithm Analysis, Merge Sort Ch.7 Sec.6    
Sep. 10 Linked Lists and Abstract Data Types Ch. 3 sec. 1-5 Homework: about big-O  
Sep. 12   Lab: Merge Sort  
Sep. 15 Programming in Deduce with Linked Lists Programming in Deduce    
Sep. 17 Sorting: Insertion, Quick Ch.7 Sec.2,7 Homework: about algo. analysis  
Sep. 19   Lab: Linked Lists in Deduce  
Sep. 22 Writing Proofs in Deduce Proofs in Deduce    
Sep. 24 Binary Trees and Binary Search Trees (BST) Ch.4 Sec.1,2,3 Homework: Deduce Proof Exercise 1  
Sep. 26   Project: Segment Intersection (BST)  
Sep. 29 More Proofs and Induction      
Oct. 1 Balanced Search Trees (AVL) Ch. 4 Sec. 4 Homework: Quick Reverse Correct
 
Oct. 3   Project: Segment Intersection (AVL)  
Oct. 6 Review for Midterm Exam      
Oct. 8 Midterm Exam      
Oct. 10 Fall Break      
Oct. 13 Discovering and Generalizing Lemmas      
Oct. 15 Hash Tables Ch. 5 sec. 1,2,3,5,6 Homework: Deduce Proof Exercise 2  
Oct. 17   Lab: Hash Table  
Oct. 20 Heaps and Priority Queues Ch. 6 sec. 1-4,9    
Oct. 22 Binomial Heaps and Queues Ch.6 Sec.8 Homework: List Search Correct  
Oct. 24   Lab: Heap  
Oct. 27        
Oct. 29 Graphs and Breadth-first Search Ch. 9 sec. 1,3 Homework: Search is O(n) in Deduce  
Oct. 31   Lab: Binomial Heaps  
Nov. 3 Depth-first Search Ch. 9 sec. 6    
Nov. 5 Shortest Paths Ch. 9 sec. 3 Homework: Insertion Sort Correct  
Nov. 7   Lab: Connected Components  
Nov. 10 Union Find Ch. 8    
Nov. 12 Minimum Spanning Tree Ch. 9 sec. 5 Homework: Insertion Sort is O(n^2) in Deduce  
Nov. 14   Project: Routing Wires  
Nov. 17 Backtracking Ch. 10 sec. 5    
Nov. 19 Dynamic Programming Ch. 10, sec. 3 Homework: BST Correct  
Nov. 21   Lab: work on Routing Wires  
Nov. 24-28 Thanksgiving      
Dec. 1 DNA Alignment      
Dec. 3 More Dynamic Programming   Homework: TBD  
Dec. 5   Lab: DNA Sequence Alignment  
Dec. 8 Code Review      
Dec. 10 Review for Final Exam      
Dec. 12   Lab: Review for Final Exam  
Dec. 15-19 Final Exam Week      

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