Teaching Archives Home Contact





Spring 2007 -- CS2402
Data Structures and Algorithms







Announcements:

  • syllabus available below: follow the links
  • report template available here

  • fourth programming assignment available here: due by April, 29th, to be turned in in pairs: be aware of the intermediate deadlines as well.
  • extra-assignment available here

  • Extra classes on Sat. Feb., 3rd (9 to 10am), on Sat. Feb. 24th (11 to noon)
  • Extra classes on Sat. April, 28th (noon to 3pm) with Irbis









    Info. Class Schedule Material Exams/Quizzes Labs Top

    Description of the class

    Syllabus available here
    Important information is also available here about: how and when to contact your instructor, labs, etc.


    This course is a survey of classic algorithms and data structures, useful for sorting, manipulating graphs, storing data collections and mappings. Students will acquire an understanding of generalization techniques for evaluating the complexity of these algorithms, and they will be able to apply these algorithms to a wide range of computer science problems. Introductory techniques for determining correctness and evaluating complexity will be presented. Students are expected to master basic skills and to develop an intuitive understanding of how the surveyed analysis techniques are commonly used. The main objective is that students develop their critical thinking skills and become able to make an appropriate choice of data structures given any problem, and to justify their choice in an articulate explanation.

    As far as assignments and exams , there will be:
  • reading assignments, and homework assignments (randomly checked);
  • (announced AND un-announced) quizzes throughout the semester;
  • programming assignments: 4 or 5 of them (most probably 5) -- turning all of them and making at least a C at each of them are required to pass the class;
  • 3 mid-terms;
  • 1 final exam.

    Teaching Assistant
    The labs will be held by a teaching assistant. Name and e-mail address of your TA: Irbis Gallegos, irbisg@utep.edu

    Peer Leading Sessions
    Peer Leading sessions will be held each week during half of the lab times. Two peer-leaders are in charge of those sessions: Michael Durcholtz, mhdurcholtz@utep.edu, and David Nevarez, dnevarez2@utep.edu. For more information about peer-leaders and peer-led team learning, go to this website.

    Suggested books (having one is compulsory)
  • Data Structures and Algorithms}, by Aho, Ullman and Hopcroft, Eds. Addison-Wesley
  • Data Structures in Java, From Abstract Data Types to the Java Collections Framework}, by Simon Gray, Eds. Addison Wesley.
  • Data Structures and Problem Solving Using Java, 3rd Edition, by Mark Allen Weiss, Ed. Addison Wesley.
  • Data Structures and Algorithms in Java, 3rd Edition, by Michael T. Goodrich, Roberto Tamassia, Ed. John Wiley and Sons.
  • Object-oriented Data Structures Using Java, by Nell B. Dale, Daniel T. Joyce, Chip Weems, Ed. Jones and Bartlett.
        Back to top     Back to CS2402 menu

    More details about the class: a tentative schedule

    This class will meet every Monday, Wednesday, and Friday, from 9:30 to 10:20pm in room 308.

    The content of classes is (tentatively) expected to be as follows:

  • week #1: Presentation of syllabus. Introduction to algorithm design and analysis. First assignment available (due by 01/26/07).
  • week #2: Algorithm design and analysis
  • week #3: Algorithm analysis (log) + quiz 1
  • week #4: Stack + quiz 2 + help for lab1
  • week #5: Midterm #1 + Algorithms for stacks and queues + solution of MT1
  • week #6: Queues / Discrete Event Simulation
  • week #7: Discrete Event Simulation / Trees
  • week #8: Trees: general trees, traversals / Midterm #2 / Binary trees
  • SPRING BREAK
  • week #9: Trees: binary trees, binary search trees, algorithms, classical problems and algorithms
  • week #10: Balanced trees: AVL, heaps
  • week #11: Review of sorting algorithms: analysis, purpose, problems -> mostly about heap sort
  • week #12: Graphs: definition, use
  • week #13: Graphs: classical problems and algorithms
  • week #14: Midterm #3; Advanced topics
  • week #15: General reviews
  • week #16: week of the final exam
        Back to top     Back to CS2402 menu

    Material for the class:

    Class notes (summaries):
  • Algorithm Analysis: 1, 2, 3, 4, 5,
  • Stacks and Queues: 6, 7, DES
  • Trees: 8, 9, 10, 11, 12
  • Sorting: 13
  • Graphs: 14

    Exercises given in class:
  • Algorithm analysis: 1, 2, 3, 4
  • Homework on sorting algorithms and complexity: solution
  • Homework on AVL trees: to be turned in on April 6th: here

    References, and other material:
  • for arrays and linked-lists: 1, 2, 3,


  • Quizzes and Exams:
  • Program analysis: Q1, solution of Q1, Q2, solution of Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9
  • Midterm 1: here
  • Midterm 2: topics, exam
  • Midterm 3: topics, exam


  • Lab Assignments:
  • More details about labs: attendance policy, late assignment policy, details about written reports (1, 2, 3)
  • 1st lab assignment: here: due by January, 26th, to be done in pairs (as defined in class).
  • 1st programming assignment: here: due by February, 18th, to be done in pairs.
  • 2nd programming assignment: here: due by March, 9th, to be done in pairs.
  • 3rd programming assignment: here: due by April, 10th, to be done in pairs, and some help here.
  • extra-programming assignment: here: due by April, 15th, to be done individually.
  • 4th programming assignment: here: due by April, 29th, to be done in pairs, and an additional file here.

    Emails/News sent to students:

    More material about the past semesters: here.


    Martine Ceberio
    Last modified: Mon Apr 2 09:08:37 MDT 2007