CS 302 Data Structures

Department of Computer Science & Engineering

UNR, Spring 2015

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

Course Information

Class hours Tuesday & Thursday, 9:30 - 10:45pm, MIKC 107 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 11:00 am - 12:30 pm or by appointment
Assistants Muhammed A. Canbaz and Ahmet Soran
canbazma(at)gmail(dot)com and sorantr(at)gmail(dot)com
Tue 12-2pm and Wed 12-2pm
Office SEM 255A (Lab SEM 211)

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 and Spring 2013.



Required Recommended Reference

Syllabus (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 Assignments & Notes
Tue, Jan 20 Lecture #1: Introduction   Quiz 0 (not-graded)  
Thu, Jan 22 Lecture #2: Data Abstraction - Doxygen Documentation Ch.1   Quiz 1  
Tue, Jan 27 Lecture #3: Recursion Ch.2  
Thu, Jan 29 Lecture #4: Recursion Ch.2 Quiz 2 - Program 1 due  
Tue, Feb 3 Lecture #5: Array-based Implementation Ch.3  
Thu, Feb 5 Lecture #6: Link-based Implementation and Recursion as a Problem-Solving Technique Ch.4,5 Quiz 3  
Tue, Feb 10 Lecture #7: Stacks Ch.6,7   Program 2 due  
Thu, Feb 12 Lecture #8: Lists Ch.8,9   Quiz 4  
Tue, Feb 17 Lecture #9: Algorithm Efficiency Ch.10    
Thu, Feb 19 Lecture #10: Sorting Algorithms (Selection sort, Bubble sort, Insertion sort) Ch.11   Quiz 5  
Tue, Feb 24 Lecture #11: Sorting Algorithms (Merge sort, Quick sort, Counting sort) Ch.11, Ch.7*,8*   Program 3 due  
Thu, Feb 26 Lecture #12: Sorting Algorithms (Bucket sort, Radix sort) Ch.7*,8*   Quiz 6  
Tue, Mar 3 Lecture #13: C++ Classes - Pointers, Polymorphism, and Memory Allocation - Exceptions - Class Relationships and Reuse Int.1-4    
Thu, Mar 5 Lecture #14: Sorted Lists and Their Implementations Ch.12   Quiz 7  
Tue, Mar 10 Lecture #15: Queue and Priority Queue - ADT Ch.13-14   Program 4 due  
Thu, Mar 12 Midterm Exam    
Tue, Mar 17 Spring Break
Thu, Mar 19 Spring Break
Tue, Mar 24 Lecture #16: Midterm Solutions    
Thu, Mar 26 Lecture #17: Trees Ch.15    
Tue, Mar 31 Lecture #18: Tree Implementations Ch.16 Program 5 due  
Thu, Apr 2 Lecture #19: Heaps (Heap ADT and Heap Sort) Ch.17   Quiz 8  
Tue, Apr 7 Lecture #20: Dictionaries (ADT Dictionaries and Hashing) Ch.18    
Thu, Apr 9 Lecture #21: Balanced Search Trees (2-3 Trees, 2-3-4 Trees) Ch.19   Quiz 9  
Tue, Apr 14 Lecture #22: Balanced Search Trees (Red-Black Trees) Ch.19, Ch.14.3*   Program 6 due  
Thu, Apr 16 Lecture #23: Balanced Search Trees (AVL Trees) - Interval Trees Ch.19, Ch.14.3*   Quiz 10  
Tue, Apr 21 Lecture #24: Graphs (Breadth-first search, Depth-first search) Ch.20    
Thu, Apr 23 Lecture #25: Graphs (Minimum Spanning Tree, Bellman-Ford shortest path) Ch.20   Quiz 11  
Tue, Apr 28 No-class    
Thu, Apr 30 Lecture #26: Graphs (Dijkstra shortest path, Circuits) Ch.20   Program 7 due - C++ Operator Overloading - C++ Iterators
Tue, May 5 Lecture #27: Processing Data in External Storage Ch.21   Quiz 12 - C++ Standard Template Library
Wed, May 6 Exam review at SEM 234   Program 8 due (optional)
Tue, May 12 Final Exam @ 12:30pm (Exam covers post-midterm material. However, you are expected to remember important pre-midterm concepts.)  

* "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 also 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 May 5, 2015.