Saya pikir kursus tentang desain algoritma dan kompleksitas komputasi selalu menantang bagi siswa yang tidak terbiasa dengan mata pelajaran ini karena mereka memang membutuhkan tingkat kematangan matematika dan keterampilan memecahkan masalah. Dalam kursus pascasarjana pertama saya tentang "kompleksitas komputasi", seorang teman saya yang memiliki gelar dalam matematika murni mengatakan kepada saya betapa terkejutnya dia dengan kenyataan bahwa meskipun kursus itu tidak memerlukan banyak latar belakang matematika (setidaknya itulah yang dikatakan dalam garis besar kursus), sebenarnya dibutuhkan hampir semua keterampilan yang ia dapatkan melalui semua gelar sarjana matematika murni!
Saya menemukan bahwa saya paling tahu tentang "jalan" (ketika saya pertama kali memulai studi pascasarjana) dengan membaca dan melakukan latihan dari buku Sipser . Pastikan Anda melakukan latihan karena keterampilan pemecahan masalah dan kematangan matematika adalah apa yang ingin Anda pelajari dan bukan hanya sekumpulan fakta atau definisi.
Namun, buku Sipser hanya baik untuk hal-hal kompleksitas dan kelengkapan NP, tidak cukup untuk mengganti buku CLRS. Satu-satunya masalah dengan buku CLRS adalah bahwa keuntungan dari cakupan yang komprehensif mungkin menjadi kelemahannya karena buku itu mungkin terlihat cukup menakutkan atau membingungkan bagi siswa. Jadi saran saya adalah Anda harus benar-benar pergi ke perpustakaan dan mencari buku tentang algoritma, memindai satu per satu dan memilih yang paling sesuai dengan pola pikir Anda. Dan lagi jangan lupa melakukan latihan!
Untuk algoritma, saya pribadi menyarankan buku-buku berikut (selain yang disarankan oleh Sadeq dan JeffE):
- Algoritma buku yang sangat mudah dibaca dan indah oleh S. Dasgupta, CH Papadimitriou, dan UV Vazirani.
- Catatan pembunuh (atau konsep buku) oleh Jeff Erickson. (Karena JeffE terlalu sederhana untuk menyarankan catatannya sendiri, saya harus melakukannya sendiri.)
Secara umum, setiap kali Anda mempelajari algoritma atau struktur data tertentu, jika entah bagaimana eksposisi dalam buku teks Anda tidak cukup jelas bagi Anda, maka cara terbaik adalah mencari di Google untuk catatan kuliah tentang topik tertentu itu. Dalam beberapa kasus, penjelasan berbeda tentang hal yang sama pada akhirnya memberi Anda gambaran lengkap. Setidaknya, begitulah cara kerjanya bagi saya.