CS 302 Data Structures
Department of Computer Science & Engineering
UNR, fall 2012
Course Information -
ABET Criteria -
| Class hours
|| Monday & Wednesday, 1:00 - 2:15pm, SEM 261
|| Dr. Mehmet Gunes
|| mgunes (at) cse (dot) unr (dot) edu
|| (775) 784 - 4313
| Web page
|| SEM 238 (Scrugham Engineering-Mines)
| Office hours
|| Monday & Wednesday 2:30 - 4:00 pm or by appointment
|| Esra Erdin - eerdin (at) cse (dot) unr (dot) edu
Office: SEM 211A - Wednesdays 12-1:00 pm
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++.
- Prerequisite : C or above in CS202
This is a tentative list of topics, subject to modification and reorganization.
- Software Engineering Principles
- Data Design and Implementation
- Unsorted List
- Sorted List
- Stack and Queue
- List Plus
- Binary Search Trees
- Priority Queues, Heaps, Graphs, and Sets
- Sorting and Searching
- Except this web page, all course materials will be posted at the WebCampus.
- The organization of the course will evolve as the semester progresses.
I'm quite confident that it will be challenging but a fun course.
- Presentation slides will be available on the class web page.
I will try to put them up before each class meeting but no guarantees on that.
- Class participation in terms of asking questions is highly encouraged.
Please do not be afraid to ask questions no matter how simple you might think the answer could be.
This type of interaction helps improve the effectiveness of the class and breaks the monotony.
- Students are encouraged to bring articles, demos, web pages, news events, etc. that are relevant to course topics to the attention of the instructor.
The success of the course depends on everyone in the class engaging the material and bringing energy, enthusiasm, and intellect to class activities.
- Regular attendance is highly recommended. If you miss a class, you are responsible for all material covered or assigned in class.
You should arrive on time and be prepared to discuss the session's topic.
The underlying notion of the class is interaction, not passivity.
- Unless instructed otherwise, use of electronic devices including laptops are not allowed during lectures.
- Extra credit will be offered to the students who attend the departmental colloquia.
You will be reminded in class about upcoming talks but you should also check the colloquia page on a regular basis
- There will be 6-8 homework assignments. Homeworks will be assigned but will not be collected for grading.
- There will be eight programming assignments. The lowest graded one will not affect your overall grade.
In the lectures, you will be introduced to data structures at an abstract level and in the assignments you will write code to implement and use these data structures.
Assignments will require turning in C/C++ code that compiles and runs properly, and a report documenting the code.
The programming assignments will be done in groups of two. Both team members are expected to fully understand the structure of the code and the implemented algorithms.
Discussion of the programming assignments is allowed and encouraged. However, team members are expected to do their own work.
Assignments which are too similar or replicated from the Internet will receive a zero.
Late assignments will be penalized by 20% per day, except holidays.
As a bonus, you may submit two additional programming assingments (with a deadline of one before the midterm exam and another before the prep day).
- Don't get behind in the programming assignments.
Probably the main reason for students doing poorly in this course is getting behind in the assignments and never recovering.
Design and implement in a top-down, modular fashion. Get something working that has the skeleton structure of what you need and then add features to it.
Each time you add a feature, test it and make sure everything is still working.
It can be tough to debug big programs if all you know is that the output is wrong and you are not sure any individual module is working.
- There will be
eleven nine in-class quizzes given after the completion of each chapter.
The lowest graded three two will not affect your overall grade.
Quizzes will be open book/notes and extremely time-constrained, i.e., 5-10 mins.
Multiple choice questions in these quizzes will be designed to give you an opportunity to test and affirm your knowledge.
- There will be one midterm exam and one final exam. You should plan on taking the exams on the scheduled times.
No late/early exams unless in case of an emergency situation such as health emergency or similar un-avoid-able situations and you need to provide convincing documentation for it.
The material covered in the exams will be drawn from the lectures, quizzes, and homework.
The exams will be closed books and closed notes but a single page cheat sheet (double side letter size) is allowed.
No calculators (unless otherwise stated) and no other electronic devices such as laptops, cell phones, beepers, etc. should be used during the exam.
- Assignments and exams must be prepared strictly individually.
You are welcome to discuss the problems or solution strategies with your class mates but the resulting work should be your own.
Copying from each other or from other sources is considered as cheating.
Any form of cheating such as plagiarism or ghostwriting will incur a severe penalty, usually failure in the course.
Please refer to the UNR policy on Academic Standards.
- Surreptitious or covert video-taping of class or unauthorized audio recording of class is prohibited by law and by Board of Regents policy.
This class maybe videotaped or audio recorded only with the written permission of the instructor.
In order to accommodate students with disabilities, some students may have been given permission to record class lectures and discussions.
Therefore, students should understand that their comments during class may be recorded.
- If you have a disability for which you will need to request accommodations, please contact the instructor or someone at the
Disability Resource Center (Thompson Student Services - 101) as soon as possible.
- Academic Success Services: Your student fees cover usage of the
Math Center (784-4433 or www.unr.edu/mathcenter),
Tutoring Center (784-6030 or www.unr.edu/tutoring), and
University Writing Center (784-6801 or http://www.unr.edu/writing_center).
These centers support your classroom learning; it is your responsibility to take advantage of their services.
Keep in mind that seeking help outside of class is the sign of a responsible and successful student.
Both grading policy and scale are subject to change.
Failure in either the assignments or the tests will result in failure in the course.
14 - Quizzes (7 of 9)
40 - Programming Assignments (7 of 8)
23 - Midterm Exam
23 - Final Exam
Grading Scale (Tentative)
A : 87 - 100
B : 75 - 86
C : 63 - 74
D : 51 - 62
F : 0 - 50 (or caught cheating)
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.
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:
- (3) an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs, within realistic constraints specific to the field.
- (4) an ability to function effectively on multi-disciplinary teams.
- (7) an ability to communicate effectively with a range of audiences.
- (9) a recognition of the need for, and an ability to engage in continuing professional development and life-long learning.
- (10) a knowledge of contemporary issues.
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.
|| Assignments & Notes
| Mon, Aug 27
|| Lecture #1: Course outline
| Wed, Aug 29
|| Lecture #2: Software Engineering Principles (1)
| Mon, Sep 3
|| Labor day (no class)
| Wed, Sep 5
|| Lecture #3: Software Engineering Principles (2)
| Mon, Sep 10
|| Lecture #4: Data Design and Implementation (1)
|| Ch.2 - Quiz 1 - Program 1
| Wed, Sep 12
|| Lecture #5: Data Design and Implementation (2)
| Mon, Sep 17
|| Lecture #6: Data Design and Implementation (3)
| Wed, Sep 19
|| Lecture #7: Unsorted List (1)
|| Ch.3 - Quiz 2 - Program 1 due - Program 2
| Mon, Sep 24
|| Lecture #8: Unsorted List (2)
| Wed, Sep 26
|| Lecture #9: Sorted List (1)
|| Ch.4 - Quiz 3
| Mon, Oct 1
|| Lecture #10: Sorted List (2)
|| Ch.4 - Program 2 due - Program 3
| Wed, Oct 3
|| Lecture #11: Stack and Queue
|| Ch.5 - Quiz 4
| Mon, Oct 8
|| Lecture #12: Templates, Polymorphism, Recursion
| Wed, Oct 10
|| Lecture #13: Binary Search Trees (1)
|| Ch.8 - Quiz 5 - Program 3 due Friday 1pm - Program 4
| Mon, Oct 15
|| Lecture #14: Binary Search Trees (2)
|| Ch.8 - Review Session at 2:30pm in SEM 257
| Wed, Oct 17
|| Midterm Exam
| Mon, Oct 22
|| Lecture #15: Midterm Review
| Wed, Oct 24
|| Lecture #16: Red-Black Trees (1)
| Mon, Oct 29
|| Lecture #17: Red-Black Trees (2)
|| Program 4 due - Program 5
| Wed, Oct 31
|| Lecture #18: Heaps and Priority Queues
|| Ch.9 - Quiz 6
| Mon, Nov 5
|| Lecture #19: Graphs (1)
| Wed, Nov 7
|| Lecture #20: Graphs (2) - DFS, BFS
|| Ch.9 - Program 5 due -
| Mon, Nov 12
|| Veterans day (no class)
| Wed, Nov 14
|| Lecture #21: Graphs (3) - Shortest Path
|| Ch.9 - Quiz 7
| Mon, Nov 19
|| Lecture #22: Sets -
Sorting (1) - Selection Sort
|| Ch.9, 10
| Wed, Nov 21
|| Lecture #23: Sorting (2) - Bubble and Insertion Sorts
| Mon, Nov 26
|| Lecture #24: Sorting (3) - Merge and Quick Sorts
|| Ch.10 - Program 6 due - Program 7
| Wed, Nov 28
|| Lecture #25: Sorting (4) - Heap Sort
|| Ch.10 - Quiz 8
| Mon, Dec 3
|| Lecture #26: Hashing
|| Ch.10 - Program 8 (optional)
| Wed, Dec 5
|| Lecture #27: Linear Sorting
| Mon, Dec 10
|| Lecture #28: Binary Decision Diagrams and Review Session
|| Quiz 9 - Program 7 due
| Wed, Dec 12
|| Prep day (no class)
| Mon, Dec 17
|| Final Exam @ 10:15am (Exam covers post-midterm material.
However, you are expected to remember important pre-midterm concepts.)
| Wed, Dec 19
|| Program 8 due
Acknowledgements: Slides are modified from the original slides of the textbook by Prof. Nell Dale.
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.
- My office has been relocated to SEM 238.
- Programming assignment 3 deadline is extended to Friday, Oct 12 at 1pm.
- Review Session will be on Monday, Oct 15 at 2:30pm in SEM 257.
- Programming assignment 6 deadline is extended to Monday, Nov 26 at 1pm.
- Programming assignment 8 is optional. If completed, it will replace lowest graded assignment.
Course Information -
ABET Criteria -
Last updated on Dec 10, 2012.