CS 367: Introduction to Data Structures

Lecture 1: 1221 Computer Sciences, MTWR: 11:00 am - 12:15 pm

Bryan Gibson, bgibson@cs.wisc.edu
TBD Computer Sciences


Overview CS 367 covers data structures (including lists, stacks, queues, trees, graphs, and hash tables) and their applications; the development, implementation and analysis of efficient data structures and algorithms (including sorting and searching); and provides additional experience in use of an object-oriented programming language (Java).
Prereqs: CS 302 or consent of instructor

Enrollment
Waiting List
If you are waiting to enroll in CS 367 lecture 1, please attend the course during the first two weeks. As space opens, those on the waiting list will be invited to enroll. Invitations are sent to your @wisc.edu email address and your invitation will expire so please act quickly. Those on the signup sheet passed out in lecture will get priority over others and depending on any special circumstances that you list on that sheet.

Course Accounts Each student registered for the course has an account on the CS instructional machines. The instructional Linux machines are located in rooms 1350 and 1351 of the Computer Sciences building.

Course Resources The material comes from many sources: lecture, the on-line readings, the course web site, and piazza. There is no required textbook for the course.

Course Website http://pages.cs.wisc.edu/~cs367-1

Course Work Grades are determined using the following breakdown:
  • Exams (46%): 2 exams
    • Midterm (20%): Thursday, July 11th, in class
    • Final (26%): Thursday, August 8th, in class

  • Assignments (54%):
    • Programming (30%):  3 programming assignments each worth 10%.
    • Homework (24%):  8 homework assignments each worth 3%.
All assignments are submitted electronically.  Instructions for the submission process are on the Assignments page of the course website.
Late Policy Homework assignments are not accepted late.

Programming assignments are accepted up to 72 hours late with penalties based on how late an assignment was submitted and how many free days you have left. See the Assignments page of the course website for complete details.

Collaboration Policy Homework must be done individually. Collaboration on homework assignments is not allowed.

Programs can be done in pairs. You may have one partner for each programming assignment. You may not pair program with multiple partners on the same assignment. Your partner must be currently enrolled in this course.

Using someone else's work or allowing someone else to have access to your work in violation of the collaboration policy is academic misconduct and will be dealt with in accordance with University Academic Misconduct procedures. If you are not sure if something violates the collaboration policy, please ask me. Ignorance of what constitutes a violation of the policy is not a defense; it is your responsibility to be sure.


Syllabus The following is a tentative schedule of the topics to be covered:
  • Week 1: introduction, interfaces, generics, (array-based) lists, iterators
  • Week 2: using the command line, exceptions, complexity
  • Week 3: linked lists, stacks and queues
  • Week 4: recursion, search, (Midterm)
  • Week 5: general trees, binary trees, binary search trees, red-black trees
  • Week 6: priority queues, heaps
  • Week 7: hashing, graphs
  • Week 8: sorting, (Final)

Reminders
  • Notify me within the first week of class if you have a conflict with any of the exams.
  • Notify me within the first week of classes if you participate in religious observances that may interfere with course requirements.
  • If you are a person with special circumstances that you believe will affect your class performance (for example, visual, hearing, or learning disabilites, or language differences), please let me know as soon as possible so that we may work together to develop strategies to meet both your needs and the requirements of the course.