CS 361 Course Syllabus

Spring 2008

Advanced Data Structures and Algorithms


Instructor:G. Hill Price
 
Office:Hughes 1108
Telephone:(757) 683-4415
Fax:(757) 683-4900
Email:price@cs.odu.edu
Class Meeting Times: 1:00pm MonWedFri
Classroom:Hughes 1110
Office Hours:12:00 - 12:50pm and 2:00 - 2:50pm MonWed
 and by appointment
Text:"Data Structures with C++ using STL" by Ford (REQ)

Course Goals and Objectives

This course explores fundamental data structures, algorithms for manipulating them, and the practical problems of implementing those structures in real programming languages and environments. Heavy emphasis is placed on analysis of algorithms to characterize the expected worst and average case for running time and the anticipated memory size requirements. Perhaps more than any other course, CS361 should expand the students' "toolbox" of basic techniques for manipulating data at both the conceptual and concrete levels. At the conceptual level, the student will see a broad selection of standard approaches and practices used in program design. At the concrete level, the student will begin what should be a career-long practice of accumulating useful, reusable code units. Upon successful completion of this course, the student will have gained an appreciation of some of the general programming costs associated with the use of certain common data structures and algorithms.

Course Topics, Notes, Agendas, and Labs


Obfuscated C Example


Grading Criteria


General Course Policies are contained in Classroom Rules


Additional Course Policies specific to CS 361 are as follows:


Because the class period is important and discussions cannot be reproduced, absences cannot be made up. Excessive absences may have a negative effect on a student's learning and performance. Any student who must miss a class is expected to have the initiative necessary to properly cover the material missed (i.e. assignments given or modified, due dates established or modified and any handouts, etc.). Students must meet all course deadlines and be present for both of the final exam.

******* LATE WORK IS NOT ACCEPTABLE *******


C++ is a language that is still undergoing rapid change. As a result, code accepted by one C++ compiler may fail ti compile in another. The OFFICIAL compiler for this course is the Free Software Foundation g++ (GNU CC), version 2.7.2 or higher. This is the compiler that the instructor will use in evaluating and grading projects. You may certainly use any compiler you wish, BUT you are responsible for making sure that your projects can be compiled using the official compiler. Don't underestimate the amount of time that may be involved in coping with subtle compiler differences.


Updated 12/20/2007

G. Hill Price