CSE382 - Algorithms and Data Structures

Revised: 7/25/2011
Home  Courses  SWTrack  Code  Handouts  StudCult  CoreTech  Books  Articles  Math  Research  TechnicalLinks  Student Projects  CASE Projects  Project Topics  SWDev  WebDev  News  OtherLinks  SiteDesign  Graduates  AllPages  Office Hours  Seminars  Notices  Summer Projects  Technical Links 


Makeup Exam

  1. Here is a link to the Makeup Examination. You only need to do this if I suggested to you to do so at the end of your oral examination. Please upload your answers to the college server no later than 11:59pm December 24th, 2008. You are required to include a few diagrams. If you draw them by hand, then please scan our exam and upload the resulting file. Alternately you may use Visio to provide diagrams embedded in the Word file you use to submit your answers.

Resources: Lectures Code Syllabus projects File Download ScreenShot Project Upload Instructions

Course Scope:

This course is concerned with modeling and building common data structures and describing, analyzing, and building algorithms that use these data structures. To do this we introduce: The use of C++, the standard C++ library, C#, and the .Net Framework Class Libraries are required. Fairly simple parts of these facilities will be needed for each of the labs and projects, and will be discussed in class. The Teaching Assistant will hold survival help sessions and office hours in the computer.

Required Texts, Notes, and Projects:

  1. Algorithms in C++, Third Edition, Robert Sedgewick, Addison-Wesley, 1998, ISBN 0-201-35088-2
  2. Class Notes, available on www.ecs.syr.edu/faculty/fawcett/handouts/cse382
  3. Project Statements
  4. Lab statements will be handed out in each class and the labs completed before the end of the class.

Supplementary Text and links

  1. C++ Primer Plus, Fifth Edition, Stephen Prata, SAMS, 2005, ISBN 0-672-32697-3
  2. C# Tutorial - C# Station
    C# Tutorial - Univ Linz
    C# Tutorial - functionx
    C++ Tutorial - cplusplus
    C++ Tutorial - cprogramming
    C++ Tutorial - java2s


Students are expected to have a good working knowledge of the C Programming Language. No prior knowledge of C# or C++ is required.

Syllabus - Fall 2008:

LectureTopicsRead before classProject
Lecture #1
Fri, Aug 29
Introduction, C++, C#, proofs, recursion, complexity, arrays, C++ pointers, C# references, HandoutsClass Notes,
Class code,
Class Text Chap 2
Lecture #2
Mon 9/1,
Wed 9/3
No class on Monday due to Labor Day holiday,
C++, C# Libraries, Project structure
Class NotesPr1
Lecture #3
Mon 9/8,
Wed 9/10
Abstract Data Types: lists, queues, stacks, trees, graphsClass Text Chap 3
Class Notes
prototype code
Lecture #4
Mon 9/15,
Wed 9/17
Implementing Abstract Data TypesClass Text Chap 3
Class Notes
prototype code
Lecture #5
Mon 9/22,
Wed 9/24
Binary Trees, 234 TreesClass Notes,
Text chap 13
prototype code
Lecture #5
Mon 9/29,
Wed 10/1
Balanced Trees: Red-BlackClass Notes,
Text chap 13
prototype code
Lecture #6
Mon 10/6,
Wed 10/8
Sorting and Searching
Priority Heaps
Text chaps 6 & 7
Class Notes
prototype code
Pr1 due
Lecture #7
Mon 10/13,
Wed 10/15
C++ Standard Template Library, C# Collection NamespacesClass Notes
prototype code
Lecture #8
Mon 10/20,
Wed 10/22
Associative Containers: Sets and Maps
Class Notes
prototype code
Lecture #9
Mon 10/27,
Wed 10/29
Graph Algorithms
Priority Heaps
Class notes,
Text Chap 14
Lecture #10
Mon 11/3,
Wed 11/5
Math structures: Linear Vector Spaces, Linear Algebra, vectors, matricesClass notesPr2 due
Lecture #11
Mon 11/10,
Wed 11/12
Optimization: Dynamic Programming, Steepest Descent, Newton-Raphson, Conjugate-gradientclass notesPr3
Lecture #12
Mon 11/17,
Wed 11/19
Hard ProblemsClass notes, papersPr3
Mon 11/24,
Wed 11/26
Preparation for Oral Examinations
Thanksgiving Holidays - no class
Lecture #14
Mon 12/1,
Wed 12/3
Individual Oral ExaminationsAll notes, class text, projectsPr3 due
Class meets twice per week for an hour and a half.