Syllabus: syllabus.pdf
Classnotes: notes.pdf
Homeworks: hw1.pdf hw2.pdf hw3.pdf
Programming Assignments: prog1.pdf prog2.pdf prog3.pdf prog4.pdf
CS 321

CS 321 Data Structures (Summer 2018)

Instructor: Jyh-haw Yeh

Office: CCP 247      Phone: 426-3034      email: jhyeh@boisestate.edu

Class Time: MoTueWe 4:30 - 6:20 PM      Location: CCP 243

Office Hours:
TuWe 1:00 - 2:15 PM MoTuWe 4:10 - 4:30 PM

Teaching Assistant:
TA and Tutor Office Hours Location
Anil Acharya
Jake Douglas
Rena Tralini

Check Tutoring Center Schedule

Kount Tutoring Center (CCP 241)

Textbook:
    _/ Introduction to Algorithms, 3rd Edition, McGraw-Hill by T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein.

Course Objectives: At the end of the course, students will be
    _/ able to apply the most efficient known algorithms to solve searching and sorting problems.
    _/ familiar with variety of different data structures and their appropriate usage.
    _/ able to choose appropriate data structures to implement algorithms.
    _/ able to apply basic graph search algorithms (such as BFS and DFS) to applications.

Catalog Description:

Sorting, searching, and order statistics. Further data structures: trees, priority queues, dictionaries, balanced search trees, B-Trees, heaps, hash tables, and graphs.

Prerequisites:
    _/ CS 221: Computer Science II
    _/ MATH 189: Discrete Mathematics

Course Outline Topics:

Topics Weeks
Getting Started (Chapter 2) and Introduction to Asymptotic Notations (Big-Oh, Theta, and Big-Omega) Week 1
Sorting (Chapter 6, 7, 8) Week 1 & 2
Mid-term Exam1 & Review Week 3
Basic Data Structures (Chapter 10) Week 3
Hash Tables (Chapter 11) Week 3 & 4
Trees (Concept & Terminology, Expression Trees) Week 4
Search Trees (Chapter 12 Binary Search Trees, AVL Trees, and Chapter 18 B-Trees) Week 4 & 5
Mid-term Exam2 & Review Week 5 or 6
Graph Algorithms (Chapter 22, 23) Week 7
Final Exam & Review Week 7
Programming Assignments Discussion N/A

Design and Analysis:
    _/ Students will get programming design experience in this course
    _/ Students will get efficiency analysis experience in this course

Grading:

Final Grade: You are guaranteed to receive at least the grade as follows (I reserve the right to lower the cutoffs if I feel it is appropriate).
    _/ 89 <= A- < 90 <= A < 97 <= A+
    _/ 79 <= B- < 80 <= B < 87 <= B+
    _/ 69 <= C- < 70 <= C < 77 <= C+
    _/ 59 <= D- < 60 <= D < 67 <= D+
    _/ F < 59

Grading Policy:
    _/ Homeworks will not be accepted late.
    _/ Programming assignments must be submitted electronically to the instructor by 11.00PM of the due date to avoid any penalty. Within one week after the deadline, you can still submit your assignment. However, 20% late submission penalty will be applied. No submission will be accepted after one week past the due date.
    _/ All students should submit correct and complete files to the instructor. Any accidentally wrong or incomplete submission may need to submit again and incur the late submission penalty.
    The points you can get for incorrect programs are as follows.
    • Can not be compiled or run time error: no points.
    • Wrong answer: Varying from 0% to 80% points depends on the answer.

Academic Honesty:
    _/ Each student must work independently unless specified otherwise.
    _/ Determination of academic dishonesty is at the discretion of the instructor of the course within the policy guidelines of the University.