Algorithms (Algoritmer) TIN092/DIT600 (7.5 points)

Period 1, September-October 2009

Announcements

News


The Sexiest Jobs!

Why study algorithms? Because it will have the sexiest jobs in the next ten years, according to Hal Varian, Head honcho at Google economics.
I keep saying that the sexy job in the next 10 years will be statisticians, And I am not kidding. Though at the fore, statisticians are only a small part of an army of experts using modern statistical techniques for data analysis. Computing and numerical skills, experts say, matter far more than degrees. So the new data sleuths come from backgrounds like economics, computer science and mathematics.
Note: if you read carefully, when he says "statistics" he really means "statistical algorithms". One of the authors of our textbook also features in this New York Time story. In general, algorithms are increasing playing a very important role in technological developments from web search, on--line advertisement and commerce to bioinformatics and biomedicine. Companies like Google, Microsoft and Yahoo! or AstraZeneca and Applied Biosystems are looking for people with algorithmic skills. Algorithms are also just great fun! Try out these challenges from last year's Nordic Programming Championship andd see how the skills you learn here can help you in this year's championship !

Course goals

This course is not:

Prerequisites: (Suitable courses providing this knowledge depend on the study programme.)

Evaluation

To pass the course, you have to pass
  1. the programming assignment.
  2. the final written exam.
Your grade will be based only on your score in the final written exam (max. 60):
  1. Chalmers: "3": 24, "4": 36, "5": 48.
  2. GU: "G": 28, "VG": 48.
However, you can add upto a maximum of 12 bonus points to the score on your written exam in october 2009 by solving problems assigned weekly, see below. Observe that the bonus points cannot be used for any other exam than the one directly after the course, in october 2009.


Practical information

Course book:
Jon Kleinberg, Eva Tardos: Algorithm Design. Pearson/Addison-Wesley 2006, ISBN 0-321-29535-8.

The "dream textbook", written by two of the foremost researchers and teachers. It should be available at Cremona for ca 650 SEK, but it may be cheaper at other places. However, note that it is planned to use this book also in the Advanced Algorithms Course in period 2.

Instructor:
Devdatt Dubhashi: room 6478, dubhashi(at)chalmers.se. (Lectures.)

Assistants:
Birgit Grohe, [vacant; contact Devdatt instead] (overall responsibility for course administration, exercise sessions, grading of problem sets)
Filippo Del Tedesco, room 5472, tedesco(at)chalmers.se (grading of programming assignment and problem sets)
Leonid Molokov, room 6476, molokov(at)chalmers.se (lab supervision and grading of problem sets)
Azam Sheikh Muhammad, room 6453, azams(at)chalmers.se (mainly grading of programming assignment)
Willard Rafnsson, room 6449, willard.rafnsson(at)chalmers.se (exercise sessions, grading of problem sets)

When you contact us: The subject line of every email should start with "Algorithms" and course code.

Student representatives for course evaluation:
Malin Ahlberg, ahlberg.malin(at)gmail.com
Jafari Hamidreza, hamidrjafari(at)gmail.com
Faiza Munir, faizam(at)student.chalmers.se
Mehvish Rashid, mehvish(at)student.chalmers.se
Rafaél Vandon, vandonr(at)esiee.fr
For general information about course evaluation at Chalmers see this link.

Schedule: (Possible changes of single classes will be announced.)

Schedule in TimeEdit

Language:
The course language is English. According to Chalmers central regulations for master's programmes, solutions to the exam problems must be written in English (with exceptions in well justified cases only). We ask you to use English also for submissions of the programming assignment and the problem sets since none of the staff in the course is from Sweden.


Lecture Diary

(Slides with kind permission of Kevin Wayne, Princeton and Chandra Chekuri, U. of Illinois, Urbana-Champaign.)
  1. [Week 36] Introduction to course, Stable Matchings [KT 1.1], Greedy algorithms [KT 4.1]
    1. [Sept. 1] Stable matchings and Greedy .
    2. [Sept. 3] Greedy algorithms cont'd, [KT, 4.2, 4.4]. Please review priority queues from [KT 2.5] and Dijkstra's algorithm from [KT 4.4] same slides as Sept. 1.
  2. [Week 37] Greedy algorithms [KT 4.2 - 4.8]
    1. [Sept. 8] Minimum spanning trees., [KT 4.5, 4.6]
    2. [Sept. 10] Huffman Codes , [KT 4.8]
  3. [Week 38] Dynamic programming [KT 6.1 - 6.9]
    1. [Sept. 15] Dynamic Programming [KT 6.1 - 6.4].
    2. [Sept. 17] Dynamic prog (concluded) RNA secondary structure [KT 6.5] sequence alignment [KT 6.6] and all pairs shortest paths [KT 6.8, 6.9].
  4. [Week 39] Divide--and--Conquer [KT 5.1 - 5.5]
    1. [Sept. 22] Divide-and-Conquer , Multiplication by Divide-and-Conquer
    2. [Sept. 24] Closest points and selection via Divide and Conquer.
  5. [Week 40] Network Flow [KT 7.1 - 7.3, 7.5, 7.10, 7.12]
    1. [Sept. 29] Network Flows [KT 7.1 - 7.2]
    2. [Oct. 1] Network Flows applications [KT 7.5, 7.6, 7.10, 7.12]
  6. [Week 41] NP-completeness [KT 8.1 - 8.10]
    1. [Oct. 6] Introduction to NP-completeness [KT 8.1]
    2. [Oct. 8] More reductions [KT 8.2]
  7. [Week 42] Wrap up and review
    1. [Oct. 13] NP [KT 8.3, 8.4]. Minesweeper is NP-complete! .
    2. [Oct. 15] Sample Exam . Sample Exam solutions.

Exercise Diary

  1. Please observe the change in Exercise Session Schedule, see above.
  2. [Week 36] Solved Exercises p. 65--66. Notes from the exercise session i reading week 1
  3. [Week 37] Solved Exercises, p. 183 --188. Notes from the exercise session in reading week 2
  4. [Week 38] Solved Exercises, p. 242 - 246.
  5. [Week 39] Solved Exercises, p.307-310. Notes from the exercise session in reading week 4
  6. [Week 40] Solved Exercises, p. 411 - 414. Notes from the exercise session in reading week 5
  7. [Week 41] Solved Exercises, p. 500 - 505. Notes from the exercise session in reading week 6
  8. [Week 42] Wrap up and review: We will go through the exam from 21 okt 2008, see top of this page.

Problem Sets

They are voluntary, but strongly recommended. You can get up to a maximum of 12 bonus points to add to your score on the exam in october 2009 to determine the grade. In each week's problem set, you may submit upto 2 problems for grading and for each problem you can get a maximum of 2 points . For the maximum 2 points, the solution should be complete, correct and elegant. To get any credit, you must have made non-trivial progress on the problem - simply submitting a scribble will not get any points. You may discuss problems with each other but you must write up your own solutions . Each week on Monday, a new Problem Set will appear here with at least 3 problems. Deadlines are strict !
The deadline for submission of the problem sets are on monday mornings at 10:00. Please submit in the box in linsen, 6th floor, marked with the course name and code. The problem set grading will be finished by friday lunchtime and you can get back you submission with bonus point notification in the open box next to the submission box in linsen.
  1. [Week 36] Problem Set 1 . There are a limited amout of paper copies of the problem set for those who have not bought the course book (yet). Fetch them in the shelf next to the submission box in linsen floor 6.
  2. [Week 37] Problem Set 2. . Paper copies available.
  3. [Week 38] Problem Set 3. . Now paper copies available.
  4. [Week 39] Problem Set 4. . Paper copies available.
  5. [Week 40] Problem Set 5. . Paper copies available.
  6. [Week 41] Problem Set 6. .

About cheating

Sadly, some serious remarks must be added here: Submitting others' work in your own name is cheating. This applies to both theoretical solutions and program code, partially or completely copied, exactly copied or modified. Observe carefully any specific rules that may have been given for the respective course requirements (e.g., programming assignments, written exam). You are also responsible for not giving others the opportunity to copy from your work. Cheating can lead to severe consequences, in very bad cases even suspension from studies. Do not try. If you have major difficulties fulfilling the course requirements, the proper way is to approach the teachers and ask for advice. We are here to help. A useful link that claifies the difference between collaboration and cheating.