Syllabus: syllabus.pdf
Classnotes: notes.pdf BTree pseudocode.pdf
Homeworks: hw1.pdf hw2.pdf hw3.pdf
Programming Assignments: prog1.pdf prog2.pdf prog3.pdf prog4.pdf B-Tree_Testing_Handout
CS 321

CS 321 Data Structures (Spring 2022)

Instructor: Jyh-haw Yeh

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

Class Time: TueThur 4:30 - 5:45 PM      Location: CCP 243

Office Hours:
TueThur 3:30 - 4:30 PM, and Tue 5:45 - 6:30 PM

Teaching Assistant:
TA and Tutor Office Hours Location
(TA) Royal Pathak
(TA) Chidi Agbo
(Tutor) Janathan Porter
Check Tutoring Center Calendar
CCP 241

Textbook:
    _/ Introduction to Algorithms, 4th 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.

Pre-requisites:
    _/ CS 221: Computer Science II
    _/ MATH 189: Discrete Mathematics

Co-requisites:
    _/ CS-HU 250: Intro to Version Control
    _/ CS-HU 271: Agile Development
    _/ CS-HU 310: Intro to Database System Usage

Course Outline Topics: For more detailed schedule, please check the syllabus

Topics Lectures
Getting Started (Chapter 2) and Introduction to Asymptotic Notations (Big-Oh, Theta, and Big-Omega) 2
Sorting (Chapter 6, 7, 8) 5
Basic Data Structures (Chapter 10) 1
Hash Tables (Chapter 11) 2
Trees (Concept & Terminology, Expression Trees) 3
Search Trees (Chapter 12 Binary Search Trees, AVL Trees, and Chapter 18 B-Trees) 5
Graph Algorithms (Chapter 20, 21) 3
Exams & Review 5
Programming Assignments Discussion 4

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).
    _/ 87 <= A- < 90 <= A < 97 <= A+
    _/ 77 <= B- < 80 <= B < 87
    _/ 67 <= C- < 70 <= C < 77
    _/ 57 <= D- < 60 <= D < 67
    _/ F < 57

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.
    _/ A software tool may be used to check the similarity of codes.