Aviral Shrivastava: Teaching: CSE 310

Home Publications Teaching Service Lab

ASU 101 CSE 230 CSE 310 CSE 325 CSE 420 CSE 591 PEC CSE 591 ARC Multi-core Programming

CSE 310: Data Structures and Algorithms

Catalog Description

Advanced data structures and algorithms, including stacks, queues, trees (B, B+, AVL), and graphs. Searching for graphs, hashing, external sorting.


Computer Systems Engineering BSE, Computer Science BS, Computational Math Sciences BS or Biomedical Informatics BS student; CSE 205 with C or better; MAT 243 with C or better (CMS students may substitute MAT 300) or CSE Graduate students.

Course Abstract

Data Structures and Algorithms is a fundamental course to CSE majors. Students will learn important techniques to store data and to process data efficiently. Data structures and algorithms cannot be separated. On one hand, good data structures help in the design of efficient algorithms. On the other hand, good data structures are discovered during the design of efficient algorithms. This course will cover three main concept areas i) Complexity analysis of algorithms, ii) Recursive Algorithms, and iii) Sorting and graph algorithms.

This course requires a lot of work. Depending on different knowledge levels the students may have, all students may not be required to spend the same amount of time on this course. Every student is encouraged to preview before the class and review immediately after the class. Students are encouraged to ask questions in class, and to fully use the office hours of the instructor and the TAs. Students may also ask questions via email to the instructor and/or the TAs. There will be closed book tests and many heavyweight homeworks. Homeworks may involve theoretical contents as well as programming contents. The instructor will also assign suggested readings/exercises after each lecture.


Cormen, T. H., Leiserson, C. E., and Rivest, R. L., C. Stein, Introduction to Algorithms, 2nd edition, McGraw Hills and MIT Press. ISBN-10: 0262032937 ISBN-13: 978-0262032933.


CSE205 (programming in C or C++), MAT243 (theorem proving)


Course Learning Outcomes

Students who complete this course can:

Major Topics and Time Covered

Grade Appealing

Your grades will be posted at the class website, available to you. Whenever the grade for a particular work is available, we will post an announcement. You will have one week to challenge the grade in writing. If you do not contact either the instructor or the TAs within a week, there would be no change to your grade for that particular work. This applies to all of your graded work. It is your responsibility to keep the graded hardcopy of your work, except the last test.

Policy on Tests

All homework assignments are due before the lecture on its due date. No late assignment will be accepted. Final is pre-scheduled by the University and will not be changed. The dates of midterms will be announced in class one week before the test. In general, there will be no makeup test.

Brief Summary of the University Policies on Cheating

Any incidence of cheating in this class will be severely dealt with. This applies to homework assignments and tests. The minimum penalty for cheating will be that the student will not obtain any credit for that particular assignment (This means that if in a test and/or assignment a student is found to have cheated, he/she will obtain zero in that test and/or assignment). Students are encouraged to discuss with others the materials covered in class. However students should not discuss problems in assignments/tests. One tends to get very suspicious if two identically wrong results show up in the homework assignment and/or tests.

Last Updated: Aviral Shrivastava, 05/2010