Strategi untuk menjadi macet dalam memahami TCS

19

Saya seorang mahasiswa pascasarjana yang mengambil kursus teori komputasi dan saya memiliki masalah serius dalam memproduksi konten begitu saya diminta. Saya dapat mengikuti buku teks (Pengantar Teori Komputasi oleh Michael Sipser) dan kuliah; namun ketika diminta untuk membuktikan sesuatu atau memberikan deskripsi formal tentang TM tertentu, saya hanya tersedak.

Apa yang bisa saya lakukan dalam situasi seperti itu? Saya kira masalah saya adalah dengan memahami konsep-konsep abstrak hingga saya benar-benar dapat menggunakannya. Apakah ada cara terstruktur untuk mendekati konsep abstrak baru dan akhirnya membangun intuisi?

pemicu
sumber
5
mengalahkan saya. ini sepertinya pertanyaan yang masuk akal untuk situs ini.
Suresh
4
Saya memilih untuk menutup. Masalah utama yang saya lihat adalah bahwa pertanyaannya sebenarnya bukan tentang ilmu komputer; ini tentang cara belajar ilmu komputer. Yang terakhir tidak memiliki jawaban yang obyektif, karena setiap orang akan memiliki cara terbaik mereka sendiri. Tiga suara untuk ditutup semuanya ditugaskan untuk alasan "terlalu lokal", tapi saya pikir pertanyaan ini juga di luar topik, karena ini bukan tentang ilmu komputer.
Carl Mummert
1
Saya pikir pertanyaan ini pantas dan merupakan jenis pertanyaan yang saya perjuangkan dengan intens. Saya pikir mendapatkan bimbingan tentang masalah-masalah seperti ini dari komunitas tepercaya adalah sesuatu yang banyak siswa CS berjuang dengan. Saya mengerti keberatan terhadap pertanyaan itu. Tampaknya bagi saya bahwa pertanyaannya cukup sesuai dengan bagian meta situs ini.
BrotherJack
6
@CarlMummert: Setiap pertanyaan tentang ilmu komputer adalah pertanyaan tentang cara belajar ilmu komputer.
JeffE
2
Pertanyaannya terlalu luas dalam bentuknya saat ini. Fokuskan pertanyaan Anda, mis. Tanyakan sumber daya (mis. Buku masalah) untuk membantu meningkatkan kemampuan Anda untuk menyelesaikan pertanyaan dalam kursus, atau jika Anda memiliki contoh spesifik fokus pada masalah itu dan tanyakan tentang intuisi atau metode untuk mendekati masalah yang sama.
Kaveh

Jawaban:

15

Abstraksi adalah roti dan mentega dalam ilmu komputer, tetapi sayangnya sulit untuk mengajar secara eksplisit.

Menurut pendapat saya, memahami konsep lebih penting daripada kemampuan untuk menghitung atau membuktikan hal-hal secara mekanis. Tentu, Anda perlu mengetahui cara Anda menggunakan beberapa metode dasar, tetapi dagingnya ada di tempat lain.

Pertama-tama, Anda harus memahami konten sampai batas tertentu. Untuk tujuan ini, saya merasa berguna untuk menanyakan pertanyaan berikut setiap kali ada sesuatu yang tidak jelas bagi Anda:

  • Kenapa kita melakukan ini?
  • Untuk apa kita menggunakan ini?
  • Hal- hal serupa apa yang berhubungan dengan ini?
  • Bagaimana sumber lain menjelaskannya?
  • Apa yang sebenarnya tidak saya mengerti?

Setelah Anda menjawab pertanyaan-pertanyaan ini (atau menemukan pertanyaan tindak lanjut dan memperlakukannya dengan cara yang sama) dan masih memiliki masalah, buka guru Anda (atau di sini). Sekarang Anda sudah bisa merumuskan pertanyaan yang terfokus dan dirumuskan dengan tepat; menjawab pertanyaan seperti itu adalah pekerjaan guru Anda (dan filosofi StackExchange).

Selain itu, itu adalah latihan dan pengalaman. Cobalah untuk mereproduksi bukti setelah membacanya; berhati-hatilah untuk tidak mempelajarinya dengan hati tetapi menyaring ide-ide penting dari mereka. Setelah beberapa waktu, Anda harus dapat mereproduksi semua bukti dasar dengan mengisi celah di antara langkah-langkah utama. Bahkan nanti, Anda akan mulai melihat pola dalam pernyataan dan bukti. Ini adalah bagaimana orang melihat sebuah pernyataan dan berkata "Oh ya, tentu, gunakan metode X dengan teorema Y dan kemudian gunakan Z untuk mendapatkan apa yang Anda inginkan." Ini adalah pengenalan pola yang dipicu oleh pelatihan bertahun-tahun. Sabar.

Adapun latihan dasar, pergi dan temukan buku teks dengan beberapa. Dari atas kepala saya, saya bisa merujuk ke Matematika Beton oleh Graham, Knuth, dan Patashnik. Buku ini tidak hanya kotak alat berharga bagi para ilmuwan komputer, tetapi juga berisi banyak latihan dengan solusi (!). Ingatlah untuk mencoba menyelesaikannya sebelum mencari jawaban dan untuk mereproduksi jawaban yang harus Anda cari.

Buku lain yang bermanfaat adalah Pengantar Algoritma oleh Cormen, Leiserson, Rivest dan Stein. Termasuk bab yang cukup besar tentang dasar-dasar matematika. Ini juga mengandung banyak latihan; solusi tersedia melalui halaman tertaut (Konten Tambahan). Ada juga video ceramah oleh salah satu penulis yang mungkin cocok dengan buku ini.

Untuk pengantar kuliah tentang bukti, lihat Bukti Aljabar Linier di Akademi Khan . Saya belum menonton mereka, tetapi mudah-mudahan mereka dasar dan bermanfaat. Ada banyak bukti di Akademi Khan; Saya hanya membayangkan bahwa bukti aljabar linier mungkin paling cocok dengan ilmu komputer. Jangan ragu untuk menonton orang lain juga.

Raphael
sumber
7
Saya setuju bahwa memahami konsep lebih penting daripada kemampuan untuk menghitung atau membuktikan hal-hal. Tetapi pemahaman adalah hasil praktik dengan perhitungan dan bukti, bukan pengganti untuk praktik itu.
JeffE
Terima kasih untuk wawasan. Saya akan menerima saran Anda dan berusaha untuk meningkatkan berdasarkan itu.
trigoman
Untuk kebutuhan yang lebih mendasar, Kitab Bukti dapat menjadi referensi yang berharga.
Raphael
8

Kadang-kadang saya menemukan bahwa orang-orang yang tidak melakukan teori dengan baik, hanya memiliki dasar-dasar yang salah (pada 1-3 kuliah pertama, mereka berpikir materi ini sangat mudah, sehingga mereka tidak terlalu memperhatikan, tetapi kemudian, di kuliah 5-7 hal dipercepat dan sudah terlambat untuk rekap).

Seperti yang dikatakan @fbernardo, mungkin ide yang baik untuk memulai dari awal. BUKAN sejauh FLA (tidak ada gunanya saat mempelajari TC, IMHO), tapi pasti buka Sipser dan mulai memecahkan pertanyaan satu per satu, dengan pesanan mereka. Dengan pengalaman Anda akan mendapatkan intuisi dan alat dasar yang sangat penting untuk konsep yang lebih maju.

Jika Anda tidak dapat mengatasi pertanyaan dasar Sipser dari bab pertama (bukan bab automata, jika Anda belajar tentang TM), maka Anda mungkin kurang memiliki konsep yang lebih mendasar, seperti metode bukti dasar (induksi, dll.) Atau set dasar teori dan matematika diskrit.

Semoga beruntung, lagian!

Ran G.
sumber
3

Satu-satunya saran saya adalah Anda mulai dari awal. Dalam kursus saya, kami menggunakan buku Sipser juga, itu adalah buku yang bagus menurut saya. Tetapi kami memiliki kursus sebelum TC, bernama FLA (Formal Languages ​​a Automaton) yang memberi intuisi dan latar belakang yang lebih baik pada TC. Jadi, sekali lagi, semua orang belajar dengan kecepatan berbeda, dan Anda memiliki buku yang sangat bagus. Pertanyaan spesifik lainnya yang selalu dapat Anda temukan bantuan di sini. :)

fbernardo
sumber
2

Anda mengajukan pertanyaan umum dalam judul Anda dan kemudian setidaknya dua poin dasar / spesifik dalam pertanyaan, dan saya pikir ada jawaban yang baik (terpisah) untuk masing-masing:

  • bagaimana membuktikan barang
  • membuat descr formal perilaku TMs

Di sini hanya membahas item pertama (yang secara inheren luas & layak mendapatkannya) - jenisnya gajah di ruang pendidikan STEM (sains, teknologi, teknik, matematika) yang mendapat sedikit perhatian & sering disorot ke tingkat yang mengejutkan . Tampaknya seolah-olah tidak ada yang benar-benar tahu bagaimana mengajar bagaimana membangun bukti. Subjek ini dimulai dalam kelas geometri, trigonometri dan kalkulus, tetapi jarang merupakan elemen yang ketat. kebanyakan guru memperlakukannya sebagai pilihan. Tampaknya seluruh kelas yang didedikasikan untuk "bagaimana membuktikan hal-hal" akan menjadi tambahan yang sangat baik atau bahkan kritis atau mengubah pendidikan STEM.

Berikut adalah beberapa referensi yang saya temukan pada pencarian cepat untuk bagaimana membuktikan barang, & saya pikir ada banyak sumber daya yang bagus. Saat ini juga mungkin ada banyak video tentang subjek yang dapat dinaikkan melalui pencarian, tetapi saya belum melihat organisasi komprehensif yang bagus tentang jenis video "bagaimana membuktikan barang".

Bagian penting dari pembuktian adalah untuk menguasai dasar-dasar matematika dan menggunakannya semua sebagai alat atau bagian bangunan. Misalnya tahu apa itu himpunan, apa tupel itu, apa perbedaan / kesamaannya, kapan Anda akan menggunakan satu tapi bukan yang lain, dll.

Pendekatan lain adalah memperlakukannya seperti bor. Lakukan banyak latihan bukti sendiri, mulai dari mudah ke sulit (berharap saya tahu lebih banyak buku seperti ini, sepertinya tidak banyak).

ay
sumber
1
Tambahkan klasik Pólya "Cara mengatasinya". Ini juga berguna (khususnya untuk lulusan) untuk melihat-lihat penulisan matematika, misalnya Knuth et al "Menulis matematika". Keterampilan ini terlalu sering dianggap remeh.
vonbrand