Syllabus: syllabus.pdf
Class Example: Example for divide and conquer.pdf Example for activity section problem
Homeworks: hw1.pdf hw2.pdf hw3.pdf
Programming Assignments: prog1.pdf prog2.pdf prog3.pdf
CS 421

CS 421 Algorithms (Summer 2021)

Instructor: Jyh-haw Yeh

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

Class Time: MoTueWe 4:00 - 5:50 PM      Location: Remote via Zoom

Office Hours:
MoTueWe 1:00-1:30 PM & 3:30 - 4:00 PM & 5:50 - 6:30 PM

Teaching Assistant:
TA Office Hours Location
Joshua Holmes (joshholmes@u.boisestate.edu) Tu 1:30-3:30 PM; Th & Fr 3:00-4:30 PM Remote via Zoom
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 use theoretic methods to analyze the efficiency of algorithms.
    _/ able to use efficient known algorithms to solve searching, sorting, and scheduling problems.
    _/ able to solve optimization problems using either dynamic programming or greedy algorithms.
    _/ familiar with popular number-theoretc algorithms.
    _/ able to identify (by proof) NPC problems.

Catalog Description:

Asymptotic analysis, recurrences, and amortized analysis. Divide-and-conquer, dynamic programming, greedy algorithms and graph algorithms. Primality and other number-theoretic algorithms. Tractability and NP-Completeness.

Prerequisites:
    _/ CS 321: Data Structures

Course Outline Topics:

Topics Weeks
Asymptotic Notations and Common Functions (Chapter 3) Week 1
Divide-and-conquer & recurrences (Chapter 4) Week 1 & 2
Dynamic Programming (Chapter 15) Week 2 & 3
Mid-term Exam 1 & Review Week 3
Greedy Algorithms (Chapter 16) Week 4
Amortized Analysis (Chapter 17) Week 4
Graph Algorithms (Chapter 22, 24) Week 5
Mid-term Exam 2 & Review Week 5 and/or 6
Graph Algorithms (Chapter 25) Week 6
Number-theoretic Algorithms (Chapter 31) Week 6 or 7
NP-Completeness (Chapter 34) Week 7
Final Exam & Review Week 7
Programming Assignments Discussion When assigned

Design and Analysis:
    _/ Students will get algorithm design experience in this course
    _/ Students will get algorithm 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).
    _/ 88 <= A- < 90 <= A < 96 <= A+
    _/ 78 <= B- < 80 <= B < 88
    _/ 68 <= C- < 70 <= C < 78
    _/ 58 <= D- < 60 <= D < 68
    _/ F < 58

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.