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:
- 3 Homeworks and 4 Programs: 50%
- Test 1: 15%
- Test 2: 15%
- Final: 20%
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.