(Are you looking at a stale web page? Try refreshing your
browser.)
(
Latest Revision --
Apr 01, 2014
)
Study Problems for CS 4440
Working these problems could make a big difference in how you perform on tests.
Directions for Submission of Work on The Problems
Answer the questions as best you can in the time you have. Explain and justify
your statements. Show your mastery of the material when you can.
Make answers thoughtful and complete. Give proofs for statements
unless they are obviously true. Tell what you know and admit
what you do not know.
Put things into your own words. Do not copy, quote, or closely
paraphrase the textbook or other people's writings.
Write so as to be understandable to a certain intended readership -- an
intelligent person who has completed the prerequisites for CS 4440 but who has
not yet taken CS 4440.
You will need to keep an extra copy of everything you turn in. Your notes on
problems will typically be due on the class day just prior to a test day.
You probably won't get them back from me until after the test.
Form and Format
- Everything except source code (including "psuedo-code"): Turn in a
hard copy. Put it on the 'counter' in front of me before the beginning
of class on the due date. Double space. Make margins of between
1" and 1-1/4" on sides, top and bottom. Use a font size from 10 to 14.
(I prefer a fixed-width font.)
- Source code: Turn in neat, compilable code. No more than 70
characters per line. Turn in one hard copy and one e-mail copy. Put
the hard copy on the 'counter' in front of me before class starts. Send
the e-mail before midnight on the due date. No attachments,
please. Just put the text in-line into the message.
Send e-mail to: john@ishi.csustan.edu
Problem Assignment #1
Chapter #01 -- Representative Problems
- Pages 22-23; problems 1, 2, 3.
Chapter #04 -- Greedy Algorithms
- Pages 189-190; problems 3, 5.
- Create a small undirected graph with five nodes and eight edges.
Use both Krusal's and Prim's algorithms to compute (by hand)
a minimum spanning tree. Show your work.
- Create a small directed graph with five nodes and nine edges, and use
Dikjstra's algorithm to compute (by hand) all the shortest paths
from a start node to all the other nodes. Show your work.
- Pages 188-189; problems 1, 2.
Chapter #05 -- Divide and Conquer
- Run the inversion-counting algorithm of section 5.3 (by hand) using the
following list as the input.
52 62 4 24 90 79 25 53 45 99 68 38 81 71 17 14 15 91 8 56 44 23 35 1 72
55 12 95 9 80 49 60
Compute the number of inversions. Show your work.
- Do problem #6 on p. 248. Give pseudo-code for your algorithm, and
demonstrate that your algorithm is O(logN) by appropriately applying and
citing the divide and conquer theorem.
Problem Assignment #2
Chapter #06 -- Dynamic Programming
- Pages 312-314; problems 1 & 2
Chapter #07 -- Network Flow
- Pages 415-417; problems 1, 2, 4.