Text Books and readings:
1) Reading: Algorithms in a Nutshell by George T. Heineman, Gary Pollice, and Stanley Selkow
Course Objectives (Learning Outcomes)
At the end of the course the student will be able to:
1. Define and give simple examples of algorithms.
2. Analyze the run-time complexity of simple algorithms, both iterative and
recursive, using the O notation.
3. Understand and describe brute-force as a strategy for designing algorithms.
4. Understand and describe divide-and-conquer as a strategy for designing algorithms.
5. Describe and implement the following graph algorithms: BFS (breadth-first search),
DFS (depth-first search), and minimum spanning tree, shortest path and sailsman problem
6. Describe and implement main string search algorithms.
7. Describe and implement simple sort algorithms, including heapsort and quicksort.
8. Understand and describe the greedy strategy for algorithm design.
9. Give a basic intuitive definition of the computational complexity classes
P, NP, NP-Hard, and NP-Complete.
Course Schedule:
Firts exam 20%
Second exam 20%
10 % lab-works
10 % homwork and participation
40% final exam