Reading
- Syllabus
- Chapter 4 on greedy algorithms.
- Chapter 3 on dynamic programming.
- Chapter 9 on computational complexity, reductions, NP-hardness,
and approximation algorithms.
- Chapter 10 on parallel algorithms
Notes
Disclaimer: These are intended to to be minimal notes for those missing
class, etc. They are not meant as an equal substitute for either the
text or for attending class.
Homework Problems
An explanation of the problem difficulty rating can be found
here .
Homework Assignments
- Due Wednesday August 31:
- Read the sylabus
- Turn in solutions to three purported Google or Microsoft
interview questions that are "algorithmic" in nature from the following
list. For this
assignment, you need not use LaTeX; You may write solutions out by hand
if you like.
- Sign-up as a member of the class group:
http://groups.google.com/group/pitt-cs-1510-fall-2011
Email your login name and real name to the TA. You may use a login name
that doesn't reveal your identity, and we will not reveal your
identity. This group should be used for questions of general interest.
I will use the group for announcements.
- Due Friday September 2 (Class will not meet on this day. Email
your soluions to the TA by 3PM. Your solutions must be written using
LaTeX).
- Greedy homework problems 1 and 2
- No class Monday September 5 due to Labor Day holiday.
- Due Wednesday September 7
- Greedy homework problems 3, 4 and 5
- Due Friday September 9
- Greedy homework problems 6 and 7
- Monday September 12
- Greedy homework problems 8 and 12
- Wednesday September 14
- Greedy homework problems 9, 10 and 13
- Friday September 16
- Greedy homework problem 15
- Dynamic programming problem 1
- Monday September 19 (No class, preferably turn in a hard
copy of your homework in Daniel Cole's mailbox on the 6th floor of
Sennott Square before 3PM if you are on campus. Or email Daniel a pdf
version if this is inconvenient)
- (Extra Credit)
Greedy homework problem 14
- Dynamic programming homework problems 2, 3 and 4
- Wednesday September 21
- Dynamic programming homework problems 5 and 6
- Friday September 23
- Dynamic programming homework problem 7
- Monday September 26
- Dynamic programming homework problems 8 and 9
- Wednesday September 28
- Dynamic programming homework problems 10 and 11
- Friday September 30
- Dynamic programming homework problems 12, 14 and 15
- Monday October 3
- Dynamic programming homework problems 13, 16 and 17
- Wednesday October 5
- Dynamic programming homework problems 18 and 19
- Friday October 7
- Dynamic programming homework problems 21
- Tuesday October 11
- Dynamic programming homework problem 20
- Wednesday October 12
- Dynamic programming homework problems 23 and 26
- Reduction homework problem 1
- Friday October 14
- Dynamic programming homework problems 24 and 25
- Reduction homework problem 2
- Monday October 17
- Dynamic programming homework problem 27
- (Extra Credit)
Dynamic programming homework problem 22
- Reduction homework problems 3 and 4
- Wednesday October 19
- Reduction homework problems 5, 8 and 12
- Friday October 21 (No class, preferably turn in a hard copy
of your homework in Daniel Cole's mailbox on the 6th floor of Sennott
Square before 3PM if you are on campus. Or email Daniel a pdf version
if this is inconvenient)
- Reduction homework problems 7, 9 and 13
- Monday October 24
- Midterm 1 on Greedy and Dynamic Programming. No homework due.
- Wednesday October 26
- Reduction homework problems 6, 10 and 15
- Friday October 28
- Reduction homework problems 11, 14 and 16
- Monday October 31
- Reduction homework problems 17, 18, 22
- Parallel algorithms homework problem 1
- Wednesday November 2
- Reduction homework problems 19, 20, 23
- Parallel algorithms homework problems 2 and 3
- Friday November 4
- Reduction homework problems 21 and 25
- Parallel algorithms homework problems 4 and 5
- Monday November 7
- (Extra credit)
Reduction homework problem 24
- Parallel algorithms homework problems 6, 7 and 8
- Wednesday November 9
- Parallel algorithms homework problems 9, 10 and 11
- Friday November 11
- Parallel algorithms homework problems 12, 13, 14, and 16
- Monday November 14
- Parallel algorithms homework problems 15, 17, 18 and 20
- Wednesday November 16
- Parallel algorithms homework problems 19, 21 and 23
- Wednesday November 18
- Parallel algorithms homework problems 22 and 24
- Monday November 21
- (Extra credit)
Parallel algorithms problem 25
- No more homework due
Old Tests
- 1995(postscript): Midterm 1
,
Midterm 2 , Midterm 3
,
Midterm 4 .
- 1996(postscript): Midterm 1
,
Midterm 2 , Midterm 3
.
- 1997 (html):
Midterm 1 ,
Midterm 2 .
- 1998 summer (html): Final
.
- 1998 (html):
Midterm 1 ,
Midterm 2 .
- 1999 (html):
Midterm 1 ,
Midterm 2 .
- 2000 (html): Midterm
1 . Midterm
2 .
- 2001 (html): Midterm
1 . Midterm
2 .
- 2002 (html): Midterm
1 and Midterm 2.
- 2003: Midterm 1, and Midterm 2, and Midterm 3, and Midterm 4.
- 2005: Midterm 1 and Midterm 2
- 2007: Midterm 1 and Midterm 2
- 2008: Midterm 1 and Midterm 2
- 2009: Midterm 1 and Midterm 2
- 2010: Midterm 1 and Midterm 2
- 2011: Midterm 1
Other Stuff
If you find any good sources of information on the WWW, related to what
we're doing in class, I'd appreciate if you would let me know.
- Longest
Common
Subsequence
Applet
- Win a million dollars for solving the P versus NP problem (that
is do NP-complete problems have polynomial time algorithms?) here.
- Here
is an article that I wrote describing the pruning method for
designing dynamic programming algorithms.
- A
list of algorithm courses on the WWW
- Here
is a Java applet for the dynamic programming algorithm for the Longest
Common Subsequence problem.
- Another good source
for information on adversarial lower bounds.
- A recent article
from the Associated Press on the game minesweeper. For more
information, check out Richard Kaye's homepage
.
- Survey
of
PRAM
algorithms (local
copy)
- Bill Gates quote on Computer Science Education from an interview
(local copy)with Maria Klawe:
- Well, certainly it's the goal of our University Relations
Group to make sure that we're talking about what we think the state of
the art problems are, finding out from the universities and a lot of
dialogue back and forth about that. In a certain sense, yeah, the
curriculum has changed, but say somebody came for an interview and they
said, "Hey, I read the 'Art of Computer Programming', that's all I ever
read, I did all the problems, I would hire them right then." Even
if they didn't do the double-star problems, I mean, just the fact that
they'd read the whole book, you know, those are the kinds of things you
need to know to be a good programmer. Actually, there's some of that
you don't even need to know, but the kind of algorithmic thinking
that's promoted there.
-

-
