CPSC 212 Data Structures and Algorithm Analysis
Syllabus

Description: Data structures and algorithm analysis.
Prerequisites: CP CS 102 or 210 with a C or better.
Required texts: Weiss, Mark A., Data Structures and Algorithm Analysis in C++, 3rd ed., Pearson Education (Addison Wesley), Boston, MA, 2006.
Outside reading: Hoppe, H., DeRose, T., Duchamp, T., McDonald, J., and Stuetzle, Werner, ``Surface Reconstruction from Unorganized Points'', in Computer Graphics (Proceedings of SIGGRAPH), 26, 2, July, 1992, ACM.
Office hours: By appointment.
Objectives: To learn data structures and algorithms en route to solving an overarching (computer graphics) problem: surface reconstruction from point clouds.
Laboratory content: Supporting concepts/examples/programs.
Evaluation:
%Grade
90-100A
80-89B
70-79C
60-69D
Midterm20%
Programming Assignments60%
Final Exam20%
Attendance: Roll will be taken for the first one or two weeks while the class roll fluctuates. However, attendance is not required. Absence, excused or not, does not change the responsibility for assigned work. Tests missed due to excused absences will normally result in the test not being counted in the average grade (i.e., there will normally be no makeup tests). An unexcused absence from a test will normally result in a grade of zero for that test. Students are expected to give at least one week advance notice for excused absences.
Academic dishonesty: The University policies on academic dishonesty apply. Publicly-available code or other material may be freely used if appropriately attributed. Each student is responsible for protecting his or her files from access by others. Work that is essentially the same and submitted without proper attribution is considered to be a violation of academic dishonesty policy by all those submitting the work, regardless of who actually did the work.
Class cancelation: Students are expected to wait for 15 minutes after the class beginning time before leaving if the instructor is late.
Topical outline:
  • Tangent Plane Estimation
    • ADTs: 2D/3D point data classes
    • Nbhd(xi): kd-tree and related NN and k-NN queries
      • sorting
      • algorithm analysis
    • Principal Components Analysis: eigenvalues and eigenvectors
      • matrix representations, algorithms
  • Consistent Tangent Plane Orientation
    • Euclidian Minnimum Spanning Tree (EMST) traversal
      • algorithm analysis & NP-completeness
      • graph algorithms
      • MST algorithms
  • Midterm (1 hr)
  • Signed Distance Function
    • Determining f(p)
      • computational geometry
      • convex hull
      • voronoi diagram
  • Contour Tracing
    • Isosurface extraction
      • marching cubes
  • Final Exam (3 hr)