CSC 330 - Advanced Data Structures

Course syllabus, spring 2014

Course and Contact Information

Credits:   3
Prerequisite:  A grade of C or better in CSC 230 and CSC 250
Meeting Times:  MW 2:00-3:15pm (for CSC 330 002), 3:30-4:45pm (for CSC 330 001)
Location:   Petty 224

Instructor: Lixin Fu
Office: Petty 162
Tel.: (336) 256-1137
E-mail: lfu@uncg.edu
Homepage: http://www.uncg.edu/~l_fu/csc330
Office hours: MW 10:00am-11:45pm or by appointment

Course Objectives and Topics

This course covers static and dynamic data structures emphasizing advanced structures such as trees and graphs. After the completion of this class, students should be able to

  • understand and use the advanced features of Java such as inheritance and generics
  • understand and use linear and non-linear data structures
  • have a solid introduction to advanced programming techniques and performance analysis
  • greatly improve their programming ability through the study of advanced data structures and through programming practices

 

The topics that we will cover during the course of the semester include:

  • Java features: inheritance, files,  exceptions, interfaces, generics
  • Linear structures (brief review): arrays, linked lists, stacks, queues, and collections
  • Algorithms: recursion, divide-and-conquer, backtracking, dynamic programming, greedy, and applications to sorting, compression, etc.
  • Binary trees: concepts, representations and traversals, heaps, search trees, 2-3-4 trees, red-black trees
  • Associative structures: sets, maps, hash tables
  • Graphs: concepts, representations and traversals

Here is the tentative schedule, which has reordered some topics of the textbook to clarify the coverage of the main parts of the class: language features, introduction to algorithms, and non-linear data structures. In addition to the theory part, programming practice through homework assignments and project is essential for the success of this course.

Textbook and Readings

Required textbook:
Mark Allen Weuss, Data Structures & Problem Solving Using Java, 4th Edition, Addison-Wesley, ISBN-13: 978-0-321-54140-6 or ISBN-10: 0-321-54140-5.

Grading Policy

1. Exams
There will be two closed notes, closed books exams.

2. Homework and Project
Five homework assignments and one project are designed to help you understand the material covered in class. They are due before class of the scheduled date. No late homework is accepted. Each student should complete all the assignments including projects independently. Instances of copying and too similar coding are regarded as cheating.

3. Grading Scheme
Exam I:    25%
Exam II:   25%
Homework:  35% (each assignment 7%)
Project: 15%

4. Attendance Policy
Attendance is required for all the class meetings and tests. If you will be absent for an exam due to circumstances beyond control, let me know in advance so that we can arrange a make-up test. Students who miss an exam without informing me prior to the exam will receive a 0 on that exam.

5. Academic Honesty
The instructor will deal strictly with any violations of academic honesty and integrity in this course. See Academic Integrity Policy  for more details. Any student who violates this policy receives zero point for the work and is subject to a reduction of the final grade of this course (up to "F"). The instructor will report the case to the university.