Professional Documents
Culture Documents
Catalog Description
Description and utilization of formal ADT representations,
especially those on lists, sets, and graphs; time and space
analysis of recursive and non-recursive algorithms, including
graph and sorting algorithms; algorithm design techniques.
Prerequisites
Credit in CSC 2290 or CSC 1254 or CSC 1351
Credit or registration in CSC 2259
Algorithm Basics
Notion of Algorithm
Non-recursive algorithms
Recursive algorithms
Linear Lists:
Linked lists, Queues, Stacks
Trees:
Binary search tree, AVL tree, 2-3 tree, B-tree
Graphs:
Graph (DFS and BFS) traversals,
Sets:
Subsets, Union-find operations
Brute force
Selection sort, Brute-force string matching, Convex hull problem
Exhaustive search: Traveling salesman, knapsack, and assignment problems
Divide-and-conquer
Master theorem
Mergesort, Quicksort, Quickhull
Decrease-and-conquer
Insertion sort
Permutations: Minimal change approach, Johnson-Trotter algorithm
Fake-coin problem: Ternary search
Computing a median
Transform-and-conquer
Gaussian elimination, Heaps and Heapsort, Problem reduction
Space-and-time tradeoffs
Horspool’s algorithm for string matching
Boyer-Moore algorithm for string matching
Dynamic programming
Warshall’s algorithm for transitive closure
Floyd’s algorithms for all-pairs shortest paths
Greedy techniques
Prim’s algorithm for the MST problem
Kruskal’s algorithm for the MST problem
Dijkstra’s algorithm for single-source shortest path problem
Huffman tree and code
Textbooks:
Required:
Anany Levitin, Introduction to The Design & Analysis of Algorithms, 2nd Ed.
Recommended:
Richard F. Gilberg and Behrouz A. Forouzan, Data Structures: A Pseudocode
Approach with C
Michael Main, Data Structures and Other Objects using JAVA
Robert Sedgewick, Tim Lindholm, Michael Schidlowsky, Algorithms in Java,
Third Edition, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching
Resources:
Course-related materials posted regularly online:
www.csc.lsu.edu/~karki
moodle.lsu.edu
Server “classes” for working in programming assignments
classes.csc.lsu.edu
CSC 3102 0.9 B.B. Karki, LSU
Grading Policy
Grading Scale:
A = 90% or more D = 50% to 64%
B = 78% to 89% F = below 50%
C = 65% to 77%
Grading Items:
Quiz (10%) - Four to six including some pop quizzes
Homework assignment (10%)
Four assignments, Assigned on regular basis
Also helpful in preparation for the quiz and exam.
Programming assignment (20%)
Four assignments, Assigned on regular basis
Implementation and exploration of some data structures and algorithms
with C/C++, JAVA
Mid-term exam (30%)
Final exam (30%)
Exams are closed book
Late submission of assignment will be penalized
Academic dishonesty will be treated seriously.
CSC 3102 0.10 B.B. Karki, LSU
Sample Questions: Type 1
The quadratic basic efficiency class has greater order of growth than the factorial
efficiency class.
Big O is used to represent an upper bound on order of growth of a given function.
Any weighted connected graph with distinct weights has exactly one minimum
spanning tree.
It is always true that the bottom-up and top-down algorithms yield the same heap
for the same input.
CSC 3102 0.11 B.B. Karki, LSU
Sample Questions: Type 2
Compare the orders of growth of nlogn and n3/2. Show your work.
Generate the bad-symbol and good-suffix tables for a 7-bit long pattern 1000000.
Solve the following recurrence relation: x(n) = 3x(n-1) for n > 1, x(1) = 4.
Construct a heap for the list 1, 8, 6, 5, 3, 7, 4 using either the bottom-up algorithm or
the top-down algorithm.
Use Master Theorem to find the order of growth of the following recurrence:
T(n) = 4T(n/2) + n3 for n > 0, T(1) = 1.