Course Web Page
Contact Info for Instructor and TA, office hours, assignments, tests,
and general information is all on the course web page.
Course Description
The advanced study of data structures and algorithms
and the mathematics needed to analyze their time and space complexity.
Text:
Our text is Introduction to Algorithms, fourth
edition by Thomas H. Cormen, Charles E. Leiserson, Ronald
L. Rivest, and Clifford Stein. Another good reference is Algorithm Design by Kleinberg and Tardos
Prerequisites
CS361 or an equivalent undergraduate algorithms class is a
prerequisite for this class. You should be familiar with the
following topics: asymptotic notation; recurrence relations and simple techniques for solving recurrences;
proofs and basic proof techniques such as induction; basic probability; basic logic; basic graph theory; and
algorithms and data structures as covered in an
undergraduate class. If you have taken and done well in an undergraduate class that
uses our required textbook, or the textbook "Algorithm Design" by Kleinberg
and Tardos, then you should be ok. If not, then you should take
CS361 (or equivalent) prior to taking this class.
Assignments:
- Assignment deadlines are strict: late homeworks will
automatically receive a grade of zero, without prior
approval. Prior approval is generally given only in the case of a
medical problem or family emergency.
- Group collaboration is encouraged on the homeworks, provided that
you write at the top of your homework the names of all the other
students that you collaborated with. Note that although collaboration
is encouraged, the solutions must always be written up
individually. You should not look at or copy another student's
solution and should not copy solutions from the
Internet. In particular, when writing up your solutions, you should not
be looking at any other solution. A rule of thumb here is the ''Star Trek'' Rule. After working with your
group,
go watch a half hour of Star Trek on TV, or your favorite mindless (sorry Trekkies) but fun TV show, before
you write up the solutions.
You may consult other textbooks or the Internet as you would another student (i.e. cite your source and use
the ``Star Trek'' rule).
Remember Copying solutions from another student or from the
Internet is cheating. In case a student presents a solution that
is essentially identical in whole or in part to solutions from another
student or other source, that student will receive a 0 on the
assignment, will be reported to the University Administration and may
not be permitted to continue in the class.
- Put pages of hw in order. We don't care what order you
solve the hw in, but before you turn it in, you must put the problems
in order (this makes grading much easier)
- Homeworks and exams will be submitted and graded online. Stay tuned for instructions.
- Regrades: if you feel a mistake was made grading your hw, please
let the TA know about it (if you still feel there is a problem, then
please talk to Prof. Saia). Please ask for a regrade within one week
of receiving the graded assignment.
- I will not be handing out solutions to problems. I am happy to help you if you are stuck on a problem via Piazza,
office hours or lecture.
The point of homework is not to solve that particular homework problem, but to practice solving a type of problem and get honest
feedback on your progress. I've found that when solutions are available, my own students are much more likely to rely on them, rather
than trying to figure out the problems themselves, which means they get both less practice and less honest feedback, which means they
do worse on exams and in the course overall. And while I firmly believe that each student is ultimately responsible for their own learning,
I also believe that it's my responsibility as an instructor to help them. Putting dessert on the table does not help anyone eat their
vegetables - Jeff Erickson.
Participation/Help:
For every 5 hours that you spend working on the homeworks, you should
post on Piazza or speak in lecture or office hours at least once. This ping can be a question,
comment or your partial solution to a problem that you want me to give feedback on. (Note that this
should be at least 1 ping per week assuming 6 hours of work outside lecture.)
Please do not struggle fruitlessly for hours and hours on homeworks without reaching out for feedback.
Notes on Grading Hws
Your hws and test answers should have the following properties. We will be looking for
these when we grade:
- Clarity: Make sure all of your work and answers are clearly
legible and well separated from other problems. If we can't read it,
then we can't grade it. Likewise, if we can't immediately find all of
the relevant work for a problem, then we will be more likely to grade
only what we see at first.
- Completeness: Full credit for all problems is based on both
sufficient intermediate work (the lack of which often produces a
'justify' comment) and the final answer. There are many ways of solving
most problems, and we need to understand exactly how YOU chose to solve
each problem.
Here is a good rule of thumb for deciding how much detail is sufficient:
if you were to present your solution to the class and everyone understood
the steps, then you can assume it is sufficient.
- Succinctness: The work and solutions which you hand-in should be
long enough to convey exactly why the answer you get is correct, yet
short enough to be easily digestible by someone with a basic knowledge
of this material.
If you find yourself writing more than half a page of dense algebra, or using more than a page
or two to writeup your solution, you're probably on the wrong track.
Don't turn in pages with scratch work or multiple answers - if you need to
do scratch work, do it on separate scratch paper. Clearly indicate your
final answer (circle, box, underline, etc.).
Note: It's usually best to rewrite your solution to a problem before you
hand it in. If you do this, you'll find you can usually make the
solution much more succinct, and you will learn more for next time.
Exams
All class exams will be closed book, closed electronic devices and closed notes (except you will be allowed 2
physical pieces of paper on which you can write condensed notes in advance).
I am serious about preventing cheating. There will be 2 proctors in each exam, assigned seating, and 2
video cameras recording each exam session. If you are caught cheating, you will - at a minimum - receive a failing
grade in the
class. If you witness cheating, report it to me as soon as possible.
Topics
Topics will likely include:
- Probability and Expectation: linearity of expectation, birthday paradox, coupon collector's problem.
Applications: Hashing, Quicksort, Bucketsort, Skip Lists, maybe Rabin-Karp Algorithm? (fingerprinting) (2.5
weeks, Chapter 5)
- Divide and Conquer: Recurrence Relations, Annihilators, Recursion and Strong Induction (2 weeks, Chapter 3
and 4 and notes; Chapters 6 and 12)
- Dynamic Programming: String Alignment, Matrix Multiplication, Longest Common Subsequence (1.5 weeks,
Chapter 15)
- Greedy Algorithms (1 week, Chapter 16)
- Amortized Analysis: Dynamic Tables and Union Find (1 week, Chapter 17)
- Graph Algorithms with Proofs: Minimum Spanning
Tree, Single-Source Shortest Path, All-Pairs Shortest Paths (2 weeks, Chapters
22,23,24,25)
- NP-Hardness and Approximation Algorithms (2 weeks, lecture notes)
Course Assessment
Approximate weighting:
- Participation: Piazza, questions and comments in lectures, office hours and recitation sections: 10%
- Homework and Quiz, 20%
- Midterm, 30%
- Final, 40%
Grading Policies
Grades assigned at the end of the semester are final. You will not be able to do any additional projects, papers,
etc. to change your grade.
Credit Hour Statement
This is a three credit-hour course. Class meets for two 75-minute sessions of direct instruction for
fifteen weeks during the semester. Please plan for a minimum of six hours of out-of-class work
(or homework, study, assignment completion, and class preparation) each week.
Accommodations
UNM is committed to providing equitable access to learning opportunities for
students with documented disabilities. As your instructor, it is my objective to facilitate an inclusive
classroom setting, in which students have full access and opportunity to participate. To engage in
a confidential conversation about the process for requesting reasonable accommodations for this class
and/or program, please contact Accessibility Resource Center at arcsrvs@unm.edu or by phone at 505-
277-3506.
Title IX
Our classroom and our university should always be spaces of mutual respect, kindness, and
support, without fear of discrimination, harassment, or violence. Should you ever need assistance or
have concerns about incidents that violate this principle, please access the resources available to you on
campus. Please note that, because UNM faculty, TAs, and GAs are considered "responsible employees"
any disclosure of gender discrimination (including sexual harassment, sexual misconduct, and sexual
violence) made to a faculty member, TA, or GA must be reported by that faculty member, TA, or GA
to the university’s Title IX coordinator. Information on the campus policy regarding
sexual
misconduct and reporting.
Connecting to Campus and Finding Support
UNM has many resources and center=
s to help you thrive, including opportunities to get involved, mental health resources, academic support such as tutoring, resource centers, free food at Lobo Food Pantry, and jobs on campus. Your advisor, staff
at the resource centers and Dean of Students, and I can help you find the
right opportunities for you.
UNM Administrative Mandate on Required Vaccinations
COVID-19 Health and Awareness: UNM is a mask friendly,
but not a mask required, community.
If you are experiencing COVID-19 symptoms, please do not come to class. If you do need to stay home,
please communicate with me; I can work with you to provide alternatives for course participation and
completion. Let me, an advisor, or another UNM staff member know that you need support so that we
can connect you to the right resources. Please be aware that UNM will publish information on websites
and email about any changes to our public health status and community response.
Student Health and Counseling (SHAC) is reachable at (505) 277-3136. If you are having active respiratory symptoms
(e.g., fever, cough, sore throat, etc.)
and need testing for COVID-19. Or, If you recently tested positive and may need oral treatment, call SHAC.