CS 302 Data Structures

Department of Computer Science & Engineering

UNR, Fall 2016

Course Information - Description - Objective - Prerequisites - Textbooks - Topics Organization - Grading - ABET Criteria - Resources - Schedule - Announcements

Course Information

Class hours Tuesday & Thursday, 4:00 - 5:15pm, EJCN 103 Data Abstraction & Problem Solving with C++
Instructor Dr. Mehmet H. Gunes
E-mail mgunes (at) unr (dot) edu
Phone (775) 784 - 4313
Web page http://www.cse.unr.edu/~mgunes
Office SEM 238 (Scrugham Engineering-Mines)
Office hours Tuesday & Thursday 9:30 am - 11:00 am or by appointment
Assistants Shehryar Masaud, shehryar(at)nevada(dot)unr(dot)edu, Thu 12:45-3:45pm, ARF 116
Iman Vakili ivakilinia(at)unr(dot)edu, Fri 2-5pm, ARF 205

Catalog Description

Data structures and algorithms fundamental to computer science; abstract data-type concepts; measures of program running time and time complexity; algorithm analysis and design techniques.


The purpose of this course is to introduce you to data structures, an issue central to the art of computer programming. At the end of the course you will be equipped with the tools of data organization to enable you to write simple, clear, and efficient programs. The course will be structured around a comprehensive set of computer assignments to enable you to get hands on experience. Our programming language of choice will be C++.

You may look at earlier courses from Fall 2012, Spring 2013 and Spring 2015.



Required Recommended Reference

Topics (Tentative)

This is a tentative list of topics, subject to modification and reorganization.


Grading (Tentative)

Both grading policy and scale are subject to change. Failure in either the assignments or the tests will result in failure in the course.

Grading Policy

Grading Scale (Tentative)

Important Note: You will have one week to appeal for your grades after the graded assignments/tests are returned. So, please keep this in mind if you think that there is a problem/issue with the grading of your work.

ABET Criteria

The course outcomes are skills and abilities students should have acquired by the end of the course. These outcomes are defined in terms of the ABET Accreditation Criterion 3 Program Outcomes which are relevant to this course.

Our graduates will have achieved:


Schedule (Tentative), Notes & Assignments

This is a tentative schedule including the exam dates. It is subject to readjustment depending on the time we actually spend in class covering the topics.

Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.

Date Lectures Book Assignment Notes
Tue, Aug 30 Lecture #1: Introduction   Quiz 1    
Thu, Sep 1 Lecture #2: C++ classes Int.1      
Tue, Sep 6 Lecture #3: Doxygen Documentation      
Thu, Sep 8 Lecture #4: Data Abstraction Ch.1      
Tue, Sep 13 Lecture #5: Data Abstraction Ch.1      
Thu, Sep 15 Lecture #6: GitHub   Program 1    
Tue, Sep 20 Lecture #7: Version control   Quiz 2    
Thu, Sep 22 Lecture #8: Recursion Ch.2    
Tue, Sep 27 Lecture #9: Array-Based Implementation Ch.3   C++ Programming  
Thu, Sep 29 Lecture #10: Link-Based Implementation Ch.4   Quiz 3 Sep 30: Data Abstraction - C++ Classes
Tue, Oct 4 Lecture #11: Stacks Ch.6,7   Program 2    
Thu, Oct 6 Lecture #12: Lists Ch.8,9   Quiz 4 Oct 7: Recursion (cont) - Stack ADT
Tue, Oct 11 Lecture #13: Algorithm Efficiency Ch.10      
Thu, Oct 13 Lecture #14: Sorting Algorithms (Selection sort, Insertion sort, Bubble sort) Ch.11   Quiz 5    
Tue, Oct 18 Lecture #15: Sorting Algorithms (Merge sort, Quick sort) Ch.11,7*   Program 3    
Thu, Oct 20 Lecture #16: Sorting Algorithms (Counting sort, Bucket sort, Radix sort) Ch.11, 8*   Quiz 6    
Tue, Oct 25 Lecture #17: Sorted Lists - Midterm review Ch.12      
Thu, Oct 27 Midterm Exam   Quiz 7    
Tue, Nov 1 Lecture #18: Queue and Priority Queue - ADT Ch.13,14   Program 4    
Thu, Nov 3 Lecture #19: Trees Ch.15   Quiz 8    
Tue, Nov 8 Lecture #20: Tree Implementations - Midterm review Ch.16    
Thu, Nov 10 Lecture #21: Tree Implementations - Heaps (Heap ADT) Ch.16,17   Quiz 9    
Tue, Nov 15 Lecture #22: Heaps (Heap Sort) - Dictionaries (ADT, Direct addressing) Ch.17,18   Program 5    
Thu, Nov 17 Lecture #23: Dictionaries (Hashing) Ch.18   Quiz 10    
Tue, Nov 22 Lecture #24: Balanced Search Trees (AVL Trees, 2-3 Trees) Ch.19      
Thu, Nov 24 Thanksgiving (no class)      
Tue, Nov 29 Lecture #25: Balanced Search Trees (2-3-4 Trees, Red-Black Trees) Ch.19,14*   Program 6    
Thu, Dec 1 Lecture #26: Balanced Search Trees (Red-Black Trees) - Graphs Ch.14*,20   Quiz 11    
Tue, Dec 6 Lecture #27: Graphs (DFS, BFS, MST) Ch.20      
Thu, Dec 8 Lecture #28: Graphs (Bellman-Ford and Dijkstra shortest path) Ch.20,24*    
Tue, Dec 13 Lecture #29: Processing Data in External Storage Ch.21   Quiz 12 - Program 7  
Thu, Dec 15 Final Exam @ 5pm   Optional Program 8 on Dec 20    

* "Introduction To Algorithms" textbook by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.

Acknowledgements: Slides are modified from the original slides of the textbook by Carrano and Henry.


Announcements regarding the course will be posted on this web page and sent by e-mail to your UNR e-mail account. Please daily check your UNR e-mail.

Course Information - Description - Objective - Prerequisites - Textbooks - Syllabus Organization - Grading - ABET Criteria - Resources - Schedule - Announcements

Last updated on Dec 8, 2016.