Department: PhD in Computer Science
Module Description: Algorithms address the problems of how to best solve specific problems using minimal time and space resources. The study of designing efficient algorithms is an important component and core module of computer science. Many CS researchers make contributions by designing advanced algorithms to solve real-world problems. Research in advanced algorithms anticipates the growing quantity and power of data and works to use algorithms to their full capacity. Some research areas include: understanding the complexity of computational problems, designing secure cryptographic systems, computational geometry, computational topology, etc. Students would eventually learn to design algorithms for their research studies.
Cormen, T. H. et al. (2022). Introduction to algorithms. 4th edn. Cambridge, Massachusetts: MIT Press. 3rd edition available
Kleinberg, J. and Tardos Éva. (2022). Algorithm design. 2nd edn. Harlow: Pearson Education Limited.
Gibbons, A. (1999). Algorithmic graph theory. Cambridge Cambridgeshire: Cambridge University Press.
Motwani, R. and Raghavan, P. (1995). Randomized algorithms. Cambridge: Cambridge University Press.
A few books are suggested for covering the basics and fundamentals of algorithms, but we will primarily rely on the web resources and research papers. The indicative list of papers will be updated on a regular basis.
Lee, D. T. (1996). Computational Geometry. ACM Computing Surveys, 28(1), pp. 27–27.
Abood, O. G. and Guirguis, S. K. (2018). A survey on cryptography algorithms. International Journal of Scientific and Research Publications (IJSRP), 8(7).
Priyadarsini. (2015). A survey on some applications of graph theory in cryptography. Journal of Discrete Mathematical Sciences and Cryptography, 18(3), pp. 209–217.