CMSC 362: Data Structures

Instructor

Dr. Jingnan Xie
Email: jingnan.xie@millersville.edu

Course Description

This course is a systematic study of data structures and their algorithms, organized around the unifying concept of data and code abstraction. Emphasis is placed on ADT-based and object-oriented design, incremental development and testing, and comparison of data structure implementations. Topics include abstract data types (ADTs), objects, algorithm design and analysis, trees, sorting, searching, hash tables, and graphs. This course includes a laboratory component and is currently taught using C++.

Prerequisites: Grade of C- or better in both CSCI 140 and CSCI 162.

Course Outcomes

  1. Implement elementary data structures such as linked lists, stacks, queues, and binary trees.
  2. Apply advanced data structures, such as hash tables, balanced search trees, and graphs, to solve problems.
  3. Perform simple algorithm complexity analyses.
  4. Formulate divide-and-conquer algorithms using recursion.
  5. Describe the importance and key points of a professional code of ethics.

Textbook & Resources

Course Policies

Responses: Emails will be answered within 24 weekday hours.

Announcements: Important materials and updates will be posted on D2L.

Lecture & Labs: Attendance is expected. Labs must be completed before leaving the lab period.

Exams and Homework: All exams and assignments must be attempted to pass. Homework and lab grading turnaround is one week. Late submissions are not accepted except for grace days.

Expectations: Be prepared, participate actively, ask questions, adhere to academic honesty guidelines.

Grading Policy

Grades are rounded to nearest grade. Students must attempt all exams, homework, and lab assignments to pass. The average of the three exams must be at least 70% to earn C- or above.

Grade scale:

≥ 93 A, ≥ 90 A-, ≥ 87 B+, ≥ 83 B, ≥ 80 B-, ≥ 77 C+, ≥ 73 C, ≥ 70 C-, ≥ 67 D+, ≥ 63 D, ≥ 60 D-, < 60 F

Weekly Topics & Handouts

Week Topic Handouts / Links
1,2Introduction to C++ & ADTsHandout
2,3Vector: Concept & ImplementationHandout
4,5Linked List: Concept & ImplementationHandout
6Exam 1
7Stacks & QueuesHandout
7,8Binary Search Trees (BST) & Set ImplementationHandout
9Balanced BST & AVL TreesHandout
10Hash TableHandout
11Exam 2
12Sorting Algorithms: Divide & Conquer, Quick Sort, Merge SortHandout
13Heap Sort & Priority QueueHandout
13Radix SortHandout
14Graphs: DFS & BFSHandout
14Graphs: Topological Sorting & ApplicationsHandout
15Final Exam

Useful Links