Study algorithms: Courses and Projects
On this page, you will find:
- Algorithm courses and projects currently offered at ITU.
- Why study algorithms?
- How to study algorithms?
Recent, current, and upcoming courses
Projects Spring 2005
12-week project based on following the CAOS seminar series.
Projects December 2005
More information on the projects can be found here:
Project and thesis proposals in Algorithms.
A thesis project in algorithms can range from theoretical to experimental,
and in many cases it is both. A typical project is to look at a piece of
new algorithmic research, understand it, implement (part of) it, and
value its practical performance, e.g., by comparing to previous soultions.
See the page on Project and thesis proposals in Algorithms for more information.
In courses offered to the industry, algorithms are often mentioned as "Advanced programming" or simply as "Extended programming".
For studies within technical IT, an introductory course in algorithms is almost always mandatory, following a course in introductory programming. The student attends the course before or at the same time as other technical courses like operating systems and databases. The reason for this is that most technical courses are based on the assumption that the students have a basic understanding of algorithms from the start.
In an introductory programming course, you are often preoccupied with the syntax: "How do you write..." and "What do you call...", and often you cannot survey considerations on how to program the task in question in a smart way.
At an introduction course within algorithms and data structures, we assume the syntax to be known and focus on general programming techniques such as recursion, use of references, program correctness and program running time. The techniques to be covered do not depend on a particular programming language and can therefore be used in all software development.
In particular, algorithms focus on how to make efficient and correct programs as well as on which things at all can be implemented efficiently. A basic understanding of algorithms is an essential competence to every software developer who wants to know if certain ideas are feasible at all. At the specialised algorithm courses, you will learn how e.g. efficient databases, search engines and word-processing programs are constructed. Alternatively, you can concentrate upon theoretical problems.
In order to start studying algorithms, it is a prerequisite to have knowledge of introductory programming. If this is not the case, you will have to attend a course in introductory programming before attending the algorithms introduction course called Introduction to algorithms and data structures. Like introductory programming, this course is offered every semester.
Students are strongly encouraged to choose a programming project in the project period following upon the course in introductory programming. This could for example be the Search Engine project, where focus is on programming. If you have the energy, you could consider attending the course in introductory programming and the one in introduction to algorithms and data structures at the same time, as a few students have so far been successful in doing so.
Upon the introduction course to algorithms and data structures you can proceed with one of the more advanced courses.
The course Introduction to algorithms and data structures will be very helpful for everyone ever writing a program. Algorithmic courses are central to both the Internet and Software Technology study line (INT) and the Software Development study line (SWU). The introductory course is an excelent choise also for students on the Multimedia Technology study line (MMT). All students studying at ITU can benefit from algorithmic courses.
Internet and Software Technology
INT has a special profile Algorithms and data structures, and for six out of seven study profiles algorithmic courses are recommended. Algorithm courses are part of the subject area ("fagområde") Software technology.
The profiles Software Developer with a specialisation in fast programs and Software Developer with a mathamatical and computer science oriented
profile in SWU focus on algorithmic studies. Algorithm courses are recommended for all profiles within SWU.
If the algorithm courses at ITU is not enough for you, there are
several nearby universities offering courses. The lists below will
not always be updated. Follow the links and have a look at
the universities' own information.
DIKU, University of Copenhagen
Last updated October 28, 2004
Send comments to Anna Östlin Pagh.