"The Feynman Problem Solving Algorithm: (1) write down the problem; (2) think very hard; (3) write down the answer." Richard Feynman
"Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better." Edsger Dijkstra
"Beware of bugs in the above code. I have only proved it correct, not tried it." Donald Knuth
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.", Tony Hoare
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.", Donald Knuth
Algorithms are well defined procedures for executing some computational task, and form the backbone of computer science. This unit is concerned with the design and analysis of algorithms, and these concepts are introduced through the study of graph algorithms, searching algorithms, string processing algorithms, greedy and dynamic programming algorithms as well as algorithms from other selected areas. These algorithms are studied in the context of the modern computer applications they facilitate. Elementary analysis of the algorithms is performed and complex classes of problems and approximation algorithms are also described.
Unit coordinator: Dr Tim French| Type | Time | Day | Location |
|---|---|---|---|
| Lecture | 9-11 am | Wednesday | GGGL:GENTILLI |
| Laboratory | 10am - 12pm | Monday | CSSE Lab 2.03 |
| Assessment | % of final mark | Assessment Dates |
|---|---|---|
| Laboratories | 4 x 2.5% | various |
| Midsemester Test | 20% | 9am October 3 Gentilli |
| Project | 20% | Available: September 18 Due: 5pm November 1 |
| Final exam | 50% | End of Semester Examination Period |