PIC 60: Data Structures and Algorithms

Fall 2008

Administrivia

Venue MS 6201
Time 10-10:50am
Lectures MWF (Mondays, Wednesdays and Fridays)
Discussions R (Thursdays)

Instructor Teaching Assistant
Name Iftikhar Burhanuddin Jeffrey Lee Hellrung, Jr.
Office MS 5338 MS 3970
Office Hours MWF 11:30-12:30 or by appt. MW 3-4
Phone (310) 206-3570
e-mail burhanud at math.ucla.edu jhellrun at math.ucla.edu

Course description

PIC 60 is a 4 unit course, with 3 hours of lecture and 1 hour of discussion.

This class will serve as an introduction to the wonderful world of data structures and algorithms. Students will be exposed to basic algorithmic techniques and to applications of these techniques to domains such as searching, sorting, graph theory, etc. While the lectures will focus on the theory, a part of the assignments will have a programming bent. The intention is to guide students to see how algorithms on paper are turned into programs which solve problems in practice. Students in the class are expected to be familiar with C++ programming.

Textbook

Introduction to Algorithms, Second edition
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

Syllabus

The syllabus, which is subject to change, will touch on some of the following topics.

  • I. Introduction Chapters 1-4: Insertion Sort, Merge Sort, O-notation, Solving Recurrences.
  • II. Sorting Chapters 6-7: Heapsort, Quicksort
  • III. Data Structures Chapters 10-12: Elementary Data Structures, Hash Tables, Binary Search Trees
  • IV. Design and Analysis Techniques Chapters 15-16: Dynamic Programming, Greedy Algorithms
  • V. Advanced Data structures Chapters 18-19: B-Trees, Binomial Heaps
  • VI. Graph algorithms Chapters 22-25: Minimum Spanning Trees, Shortest Paths

Assignments, Exams

There will be about 7 homework assignments, which will be assigned roughly 1-2 weeks and will be due at the beginning of Friday's lecture. No late homework will be accepted. At the end of the quarter, the assignment with the lowest score will be dropped and the remaining assignments will count toward the grade.

There will be two in-class midterm exams, which will be held on Monday, October 20 and Monday, November 17. If you are unable to take the exam at the scheduled time, you must contact the instructor before the exam time. No make-up exams will be given, instead your other exams will be weighted more, provided the absence is due to a legitimate reason, which will require appropriate documentation.

The final exam will be held on Tuesday, December 9 from 3-6pm and the syllabus for the exam will be the entire content of the course. Failure to take the final will result in a failing grade.

The course letter grades will be determined based on the class distribution of the total points. The grade breakdown is as follows: assignments: 30%, midterms: 20% each and final: 30%.

Scores on assignments midterm and final will be posted on my.ucla.

Moodle

Course news, handouts, assignments, details on submission, etc. will be posted on the course Moodle. Students are encouraged to use the discussion forums on Moodle to ask questions about the course, etc.

Academic Honesty

Students are encouraged to collaborate with fellow students on general strategies for homework, but solutions should be written up and programming assignments should be worked on alone. Seeking help from outside the class room (such as friends, discussion forums on the Web) is not appropriate. The homework should list the fellow students with whom the solutions were discussed. Cheating and plagarism on the assignments and exams will result in disciplinary action. Please consult the documents related to Academic Integrity, Student Conduct for details.

Special Needs

OSD students contact the instructor as soon as possible to discuss any special arrangements.