42004 - Seminar on Algorithms and Programming (SAP)

Type: Elective
Semester: S3
Teaching Points: 15
Offer: Annual
Responsible Unit: CS
Responsible: Christian Blum
Language: English
Requirements: General programming, algorithmics, computing theory, logic, and discrete mathematics knowledge.

This seminar deals with advanced research topics on Algorithmics and Programming. Its goal is to expose the student to research lines related to this intensification being carried out in the Department.

The precise contents of the course will vary from year to year. In general, the course will be divided in modules that will be taught by different instructors. In some cases, Department members will present topics related to their recent research interests. In others, well-known researchers from other institutions will be invited to teach a module concerning topics for which there is less expertise in the department. There will be a minimum of three different modules every course. Occasionally, visiting researchers may be invited to give a single research talk on their recent work.

In general, each module can have a slightly different methodology. In most cases, the teacher will offer a minimum of hours of “master class”, covering the topics that students must work on. Depending on the module type, there can be sessions of problem solving, article reading, practical projects, etc. Students will be exposed to different working methods.

Even though every module can have its own evaluation system, the most usual ones will be:
- Solving problems (which must be handed out in class).
- Theoretical and/or practical projects.
- Research articles.
- Participation in class.

The marks for each module will be the joint evaluation of at least two of the criteria. The final mark is calculated as an average of the marks for each module.

As for guest teacher speeches, students can choose between handing in a summary or a thought about one or some of the speeches. This mark will proportionally count for the final mark.

These are some main references about the general topics of the seminar.
Each module will propose its own references, which are more likely to be magazine articles or conferences than books.

- Abramsky, S.; Gabbay, D.M.; Maibaum, T.S.E. (ed.).
Handbook of logic in computer science.
Oxford Science, Publications. Vol. 1-3, 1993-1995.

- Atallah, M.J. (ed.).
Algorithms and theory of computation handbook.
CRC Press, 1999.

- Cormen, T., Leiserson, C., Rivest, R.
Introduction to algorithms. 2nd ed.
The MIT Press; New York: McGraw-Hill, 2001.

- Leeuwen, J.V.
Handbook of theoretical computer science; Vol A: Algorithms and Complexity.
Elsevier. 1990.

- Papadimitriou, Ch.
Computational complexity.
Addison Wesley, 1994.

- Robinson, A.; Voronkov, A. (ed.).
Handbook of automated reasoing.
MIT Press. Vol. 2, 2001.

- Schöning, U.
Logic for computer scientists.
Birkhäuser, 1989.

Class materials for each module might be available before the course starts.