VERY IMPORTANT: ALL students SHOULD HAVE THEIR TEXTBOOKS BY DAY 1 of classes!!!
Course Description: The purpose of this course is to present the student with the mathematical techniques used for analyzing the time and space performance of computer algorithms. The focus will be on the practical application of these techniques to designing efficient algorithms. The following topics will be covered: asymptotic notation, recurrences, lower bounds for worst case and average case, dynamic programming, searching algorithms, sorting algorithms, graph algorithms, and if time allows, parallel algorithms, string matching algorithms.
Textbooks:
It is very important that ALL students have their books from Day 1.
- “Introduction to Algorithms”, by Cormen, Leiserson, Rivest, and Stein, Third Edition, McGraw Hill
- “Algorithms in a nutshell”, by Heineman, Police, and Selkow, by O’Reilly, 2008.
Exams: There will be two tests, some written assignments, quizzes (announced and unannounced), a project and a presentation. The project will involve programming some algorithms and carrying out an analysis on their performance. For the presentation, students will individually present an algorithm research paper from a journal or conference, preferably recent.
Grades:
Test 1 20%
Test 2 20%
Presentation 15%
Quizzes and Assignments 15%
Project 20%
Class participation 5%
Announcements:
- Weeks 15 and 16 (finals’ week):
- Projects presentations
- Week 14:
- More work on projects, no class
- Projects reports due by Sunday November, 28th at 7pm via email to your instructor
- Week 13:
- Final exam on Monday November 15th
- Work on projects on Wednesday: no class / instructor available for questions
- Week 12:
- Presentations of articles in class: 5- to 7-minute presentations
- Week 11:
- Long quiz on Monday November, 1 at 1:30 until 2:50pm: objective = to get ready for the exam scheduled on Monday November, 15.
- Week 6:
- First exam on Monday September, 27 at 1:30pm until 2:50pm.
- There will be no office hours since Dr. Ceberio will be out of town attending a conference.
- Week 5: The Monday office hours will exceptionally be moved to Tuesday from 10am to noon.
- Week 3: Since Monday is a day off, office hours from Monday will be moved to Tuesday from 10am to noon.
What to expect — some of this semester’s milestones:
- Semester-long projects:
- Projects will be proposed during week 3: see below for the list of projects / also sent as email to all students enrolled in the class
- Students need to have chosen a project by the end of the last course of Week 4 (i.e., September, 15 at 3pm):
- IMPORTANT! Project assignments were sent out to all students on Wednesday September, 15. You should all be now working on them as all projects require your full attention until the end of week 14.
- Project meetings with instructor: Week 9-10 / week 11-12 / week 14
- The second half of week 13 will be dedicated to working on your projects
- Week 14: no class but you will have to meet with me to report on your project’s progress
- Week 15 and week of the finals: project presentations
- First midterm exam on September 27th
- Article presentations: week 12 (Nov. 8 and 10); articles will be given to students on October 27th.
- Final exam the Monday November, 15th
Material:
- CS5350 Syllabus
- Copy of the daily grading form
- Outline of the semester Lectures and activites
- The list of projects for this semester is now available
- Make sure you give your preferences to Dr. Ceberio by September, 15 at 3pm
- An example of a tree drawn for you by Maria Barraza
- An interesting presentation about testing
- Solution to the Hotel problem by a student
Assignments:
- Week 10:
- Reading assignment: Chapter 8 of Algorithms in a Nutshell and Chapter 26 of Introduction to Algorithms
- Homework:
- Prepare a presentation of the Ford-Fulkerson method. Show how it can be implemented different ways with different performances.
- Prepare a presentation of the example of the FF method as shown on your book, p. 726.
- Week 9:
- Reading assignment: Chapters 16 and 17 of Introduction to Algorithms.
- Extra-credit due by November 3rd on paper
- Homework due by October 27 at the start of the class (randomly picked) + some exercises given in class on showing the greedy choice property
- Week 8:
-
- Reading assignment: Chapters 15 and 16 of Introduction to Algorithms, Chapter 6 of Algorithms in a Nutshell
- Homework assignment:
- Work on the matrix chain multiplication problem, as described in class, for Wednesday October, 13
- More homework to be randomly picked-up next Monday (October 18): description of exercises
- Week 7:
- Reading assignment: Chapters 15 and 16 of Introduction to Algorithms, Chapter 6 of Algorithms in a Nutshell
- Week 5:
- Reading assignment: Chapters 4 and 5 of Introduction to Algorithms
- Homework assignments:
- Exercises 4.1.1, 4.1.2, 4.1.3, 4.1.5
- Problems 3.1 and 3.4
- Extra-exercises to work on:
- 4.3.1, 4.3.2, 4.3.3, 4.3.6, 4.3.9
- 4.4.2, 4.4.4, 4.4.5, 4.4.6, 4.4.7, 4.4.8
- Extra credit: Due via email by Friday Sept. 24 at 7pm: Write an explanation of the proof of the master theorem in your own words (potential for extra points: 10 points towards the sum of the exams’ grades)
- Week 4:
- Reading assignment: Chapter 4 of Introduction to Algorithms, revision of Chapters 1 and 2 + Chapters 3 and 4 of Algorithms in a Nutshell
- Homework assignments:
- Prove all properties of transitivity, reflexivity, etc. from your textbook Introduction to Algorithms that we did not do together in class
- Exercises 3.1.2, 3.1.4, 3.1.5, 3.1.7, 3.1.8
- Week 3: Read Chapter 3 of Introduction to Algorithms and Chapter 2 of Algorithms in a Nutshell. There will be a quiz on Wednesday September, 8th on the whole 3.2 section.
- Homework: Exercises given in class and exercises 3.2.1 and 3.2.2 from Introduction to Algorithms
- Exercises given in class were:
- To show how the recursive Fibonacci number computation is an example of Divide and Conquer algorithm
- To present one algorithm (different from what we saw in class) that is a Divide and Conquer algorithm, and show that it is actually one
- To do the problem on Horner’s rule from the Introduction to Algorithms textbook
- To do the problem on Insertion and Merge sort from the Introduction to Algorithms textbook
- Week 2: Read Chapters 2 and 3 of Introduction to Algorithms
- Week 1: Read Chapters 1 and 2 of both textbooks
Some material:
- August 25: Some information about Fibonacci numbers
Note: More information (such as assignments, reminders for due dates, quizzes, exams) will be posted on this page as the semester goes.
Hi Martine,
nice page; I’ll add the link, thanks.
nigel
Fibonacci
(Don’t know if this is the place it’s meant to be posted, feel free to edit this if I’ wrong).
A few months ago, two very smart friends, one studying architecture and the other one studying biology asked me what these numbers where used for after an interesting discussion. At the time I try to find out, with simple, visual explanations so they coud understand and relate it to their fields (I didn’t know at the time what they were used for).
The following images and explanations is what I found, I hope you like them and find them interesting too.
There are some natural occurrences of the Fibonacci numbers in nature, such as plant petal patterns and spirals found in snails, as described in the info Dr. Ceberio posted about the Fibonacci sequence above.
Here are some nice visual representations about it:
http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/coneflower.jpg
http://nmazca.com/3142857/fibonacci_phyllotaxis_sm.jpg
http://img.gran-angular.net/9/TDC/fractales/girasol01.jpg
However, in addition, I found that the bones in our hand appear to be following the Fibonacci sequence, as shown in this picture:
http://laophi.files.wordpress.com/2010/02/fibonacci1.jpg
They are also found in architecture, and a good example is the Vatican staircase at Vatican city, which I had the fortune to walk through never realizing it was based on Fibonacci numbers of course…
http://blog.amarelloartis.com/wp-content/uploads/2006/11/vatican_staircase3.jpg
And also, since they are used to show recursion, you can create seemingly infinite patterns with enough iterations, and create figures similar to fractals, based on the sequence as shown in this picture.
http://www.futures-investor.co.uk/images/Image12.jpg
Hope you found this interesting!
Hello again,
I found this page that contains explanations about the proofs of the logarithm properties, in case someone finds this helpful.
http://www.onlinemathlearning.com/logarithms-properties.html
Thanks Ivan. I am glad to see that these proofs are exactly those we have discussed in class.
Thanks Ivan!
Hello again,
For those who will be doing the Rubick’s cube project. I found this great page with many animations and examples. There are many web pages but this was by far the best. There is a simple “memorize” solution for beginners, with animations and you can actually rotate the cube while the animation is running: http://www.ryanheise.com/cube/beginner.html and there is the advanced one describing a method for solving Rubik’s Cube very efficiently (24 – 42 moves usually depending on the starting case) and without memorization: http://www.ryanheise.com/cube/
Hi
I found two simulators for agentes (sofware or physical=robots):
a) http://education.mit.edu/starlogo/
b) http://www.cyberbotics.com/
The first one is free and the second one doesn’t. They may be interesting for someone wants to simulate his/her project.
Hello world,
This site contains a collection of practice dynamic programming problems and their solutions.
http://people.csail.mit.edu/bdean/6.046/dp/
Hope someone finds this useful!
PS. Thanks Maria!
Hi, Dr. Ceberio
I’m trying to download or open the documents for the links for week 9 and can’t get any readable file. I’m guessing the links are broken or maybe my computer is not downloading the information correctly. Thanks! Sorry for the inconvenience.
Azucena
Azucena,
By now, your problem should be solved: solution in your email.
Martine
Dr. Ceberio,
I still can’t access the new documents you are posting on your website; I tried doing it using my laptop, my office’s computer, and even mydesktop.utep.edu and in all the ocassions I got the same wrong files. I’m guessing I’m the only one having these problems since nobody else is posting any info. regarding this. Do you have any suggestions? Thanks a lot!
Azucena
Azucena,
It happens to me as well. You get a zip file with a lot of xml files in it right? For some reason it hppens to me as well only sometimes. To fix this, just change the termination of the file from .docx.zip to just .docx , you might get a warning about the file becoming unusable (but it actually does the opposite and becomes usable). In addition you might need to enable the file extensions so that they are viewable and editable.
Hope this helps, sorry it’s a little late!
Dear All,
Here is a rather long cheat sheet that you may find useful while you study, even if the cheat sheet is not allowed on tests
http://www.tug.org/texshowcase/cheat.pdf