Saya mencoba memahami apa yang terlibat dalam penelitian ilmu komputer teoretis. Apa yang dilakukan ilmuwan komputer teoretis?
Saya tahu waktu yang signifikan dihabiskan untuk mengajar, mengawasi mahasiswa pascasarjana, melamar pendanaan, dan tugas departemen. Mengesampingkan mereka bagaimana Anda menghabiskan waktu penelitian Anda? Apa kegiatan utama yang biasanya Anda lakukan? Saya kira Anda membaca makalah, berpikir, mengadakan pertemuan, dan menulis dokumen. Apakah ada yang lain?
soft-question
research-practice
mahasiswa sarjana cs
sumber
sumber
Jawaban:
Mengenai topik
Ada berbagai jenis masalah yang dapat dianggap sebagai ilmu komputer teoretis . Kata yang penting di sini adalah " teoretis " (karena kita semua memiliki beberapa gagasan tentang apa yang berhubungan dengan ilmu komputer). Memahami kata teoretis tidak begitu jelas. Untuk waktu yang lama saya menganggapnya berarti matematika, sebagai lawan misalnya untuk "peretasan". Saya belajar lebih baik dari orang-orang di bidang linguistik: teoretisbagi mereka jelas tidak berarti matematika, tetapi didasarkan pada teori yang mungkin agak informal (meskipun mungkin juga matematika), dan merupakan badan pengetahuan dan konsep yang terorganisir yang menyusun pemahaman tentang fenomena yang dapat diamati dan mudah-mudahan memungkinkan penggunaan deduktif dan prediktif. dari pengetahuan yang diperoleh. Ini juga mengurangi jumlah untuk belajar dan mengajar dengan mengurangi jumlah konsep primitif dari mana sisanya dapat disimpulkan.
Teoretis dapat dilawan dengan praktis , yaitu bagaimana pengetahuan ini digunakan untuk benar-benar menjalankan mesin komputasi, membangun sistem, dll. Saya juga dapat menentang penerapan yang merupakan penggunaan pengetahuan ini untuk mengatasi masalah di bidang ilmu pengetahuan dan manusia lainnya. kegiatan.
Tapi saya ragu ada batas yang jelas.
Ini mengatakan, ilmu komputer teoretis mencakup beragam domain, dan saya akan mencoba memberikan beberapa, sementara saya yakin saya melupakan yang lain, dan juga bahwa orang lain mungkin tidak setuju dengan organisasi ini.
satu domain adalah kemampuan komputasi , yang mempelajari apa yang dapat dihitung, dan bagaimana dalam pengertian yang agak abstrak: sebagian besar yang dijelaskan dalam jawaban Suresh Venkat.
yang lain adalah algoritmik , yang menemukan cara yang efektif untuk menghitung jawaban untuk masalah tertentu, dengan kendala spesifik. Komputasi adalah konteks teoretis untuk algoritme.
semantik (karena ingin nama yang lebih baik), menganalisis organisasi konseptual masalah komputasi, dan algoritma, ke dalam konsep tingkat yang lebih tinggi, sehingga membuat faktor teknik yang telah terbukti bermanfaat dan sering digunakan kembali, seperti konsep subprogram, data- struktur, modul, menyembunyikan informasi. Ini termasuk pengembangan alat matematika yang memformalkan secara memadai konsep-konsep ini untuk memungkinkan penalaran tingkat tinggi (Scott semantik misalnya). Ini juga menyentuh pada cara ini diekspresikan, sehingga pada pemisahan dan hubungan antara sintaksis dan semantik. Konsep bahasa pemrograman adalah bagian dari itu (meskipun desain bahasa mungkin merupakan aplikasi praktis dari pengetahuan itu). Ini juga dapat mencakup hubungan antara teori bukti dan teori perhitungan, dan peran modern dari sistem tipe.
topik lain, yang bisa berkembang lebih dari yang sejauh ini, adalah hubungan antara komputasi dan fisika fundamental. Sebagai contoh. apakah ada hubungan antara batas-batas perhitungan dan sifat-sifat dunia fisik, seperti kepadatan informasi fisik atau hukum termodinamika. Komputasi kuantum dapat meningkatkan sedikit kecakapan komputasi kita; Bisakah kita berharap lebih? Beberapa mungkin membantah bahwa ini masih TCS, meskipun ada studi TCS tentang hiperkomputasi .
Mengenai kegiatan spesifik
Saya melewatkan kegiatan yang jelas diperlukan oleh kehidupan akademik. atau kehidupan ilmiah dalam industri: mengajar, menerbitkan, mengkaji makalah, menulis permohonan hibah, mengambil tanggung jawab akademik, mengelola orang, menasihati siswa atau pembuat kebijakan. Tetapi meskipun begitu, tidak ada jawaban sederhana untuk pertanyaan Anda. Di sini saya hanya membuat sketsa beberapa aspek yang muncul di benak saya, tetapi saya yakin masih banyak yang bisa dikatakan. Dan saya tidak yakin saya menjawab Anda. Beberapa ilmuwan terbaik telah menulis buku tentang karya mereka, dan itu mungkin memberi Anda petunjuk tentang kegiatan ilmiah.
Meneliti dalam teori dapat melibatkan berbagai hal, tergantung pada keterampilan dan minat Anda yang sangat bervariasi dari ilmuwan ke ilmuwan. Agak sulit untuk membicarakannya, karena setiap orang lebih memandang aktivitas dan minatnya sendiri daripada orang lain. Kebanyakan penelitian membutuhkan pengetahuan yang luas, karena hasil yang menarik dan benar-benar orisinal sering kali berasal dari menempatkan sesuatu dalam hubungan, atau mentransfer teknik dari satu (sub) bidang ke bidang lain, atau mendapatkan pandangan teknis yang berbeda dari masalah yang sama. Jadi belajar sebanyak mungkin secara luas dan mendalam adalah penting. Ingatlah bahwa walaupun Anda memiliki waktu dan kemampuan untuk itu sebagai siswa, atau sebagai staf pengajar / ilmuwan junior, keduanya akan berkurang kemudian, karena tanggung jawab dan kehidupan secara umum. Mengajarkan apa yang tidak Anda spesialisasi mungkin merupakan cara untuk terus belajar.
Jenis pekerjaan yang dilakukan orang bisa sangat bervariasi, karena orang untungnya sangat berbeda, dengan beragam minat dan kemampuan teknis, sehingga saling melengkapi. Beberapa orang adalah pemecah masalah. Mereka melihat pertanyaan teoretis atau praktis yang diajukan oleh orang lain, atau sendiri, dan mencoba menyelesaikannya, atau mendekati solusi yang lengkap atau sebagian. Orang lain akan lebih baik dalam menyusun pengetahuan yang ada, dan menempatkan hal dalam hubungan, dan kemudian menemukan pertanyaan baru untuk diajukan. Keduanya penting.
Menemukan bukti yang lebih sederhana dari hasil teknis, atau presentasi teori yang lebih sederhana, atau menggabungkan konsep adalah penting. Ini menggeneralisasi hasil, mengurangi jumlah hal untuk dipelajari, menekankan ide-ide penting dan mungkin membawa pemahaman baru. Karena waktu belajar kita terbatas, kemajuan hanya mungkin terjadi ketika kita memadatkan pengetahuan.
Contoh sederhana adalah studi tentang keluarga abstrak dari bahasa formal. Ketika teori bahasa pertama kali dikembangkan, properti penutupan di bawah berbagai operasi terbukti berulang-ulang untuk setiap keluarga bahasa (reguler, bebas konteks, RE, ...), dengan teknik ad hoc tergantung pada keluarga. Kemudian terjadi bahwa properti penutupan ini memiliki hubungan intrinsik secara independen dari keluarga yang bersangkutan, dan mereka dipelajari demikian. Hari ini, kita hanya perlu memeriksa beberapa properti penutupan sederhana untuk keluarga tertentu, dan kita mendapatkan "gratis" satu set seluruh properti lainnya.
Poin penting lainnya adalah bahwa tidak ada perbedaan yang jelas antara karya teoretis, praktis, atau eksperimental. Teori yang baik dapat mengarah pada implementasi sistem yang dapat memekanisasi penyelesaian masalah. Dan akan dibutuhkan ahli teori yang baik untuk mengimplementasikan sistem seperti itu, dengan campuran kerja teoretis dan praktis, termasuk implementasi sistem, atau desain bahasa. Banyak contoh muncul di pikiran, seperti sistem bukti dan / atau program sintesis, bahasa khusus untuk sistem paralel sinkron, bahasa algoritmik terbatas tempat kompleksitas komputasi dapat diturunkan secara sistematis. Tidak hanya penting untuk dapat menghasilkan sistem praktis seperti itu, yang membuat hasil teoretis lebih banyak tersedia dan dapat digunakan, tetapi sering kali sangat penting bagi ahli teori untuk menggunakan secara mahir sistem ini, jika hanya untuk membongkar bagian-bagian yang sekarang kurang kreatif dalam bukunya. bekerja, atau berkontribusi pada pengembangan dan perluasan sistem ini.
Aspek lain adalah untuk dapat membandingkan pendekatan teoritis dengan eksperimen praktis. Di sini, masalahnya adalah membandingkan teknik yang berbeda untuk mencapai tujuan yang sama. Membandingkan implementasi sering tidak berarti karena efisiensinya sering bergantung pada bahasa pemrograman, atau keterampilan pemrograman implementor. Tetapi jika mereka dapat diekspresikan semua dalam kerangka teori umum, maka kadang-kadang mungkin untuk membandingkan mereka secara eksperimental dalam kerangka itu. Di sini, teori dan praktik saling mendukung, seperti yang sering mereka lakukan dalam sains. Analisis teoritis murni tidak selalu mudah dicapai. Selanjutnya, analisis eksperimental, ketika dilakukan dengan baik, dapat menunjukkan perilaku yang tidak terduga yang dapat memotivasi analisis teoritis yang lebih baik.
Dunia ini tidak sederhana atau jelas. Itu sebabnya bisa menyenangkan, dengan ruang untuk semua jenis keterampilan. Mempertanyakan pengetahuan Anda sendiri, dan menjawab pertanyaan orang lain, dengan cara apa pun.
Dua hal yang sering dilupakan: etika sains, dan menjelaskannya kepada orang-orang. Keduanya penting, dan sulit.
sumber
Di satu sisi, menjelajahi situs ini akan memberi tahu Anda jenis pertanyaan yang dipikirkan ilmuwan komputer (pada tingkat rendah). Pada tingkat yang sangat tinggi, ilmuwan komputer teoritis mengajukan pertanyaan tentang dasar matematika perhitungan:
Mulai dari pertanyaan-pertanyaan ini, sejumlah besar topik lain bermunculan, menyentuh bidang aplikasi, matematika, bagian lain dari ilmu komputer, dan sebagainya.
sumber
terpikir oleh saya bahwa akun tangan pertama mungkin membantu, tetapi yang tampaknya agak jarang di CS (sebagai lawan dari misalnya matematika, penulisan biografi / seperti memoar dll). berikut adalah dua referensi online yang menjawab pertanyaan & mungkin bermanfaat. mereka lebih ditujukan untuk kehidupan mahasiswa PhD & CS berorientasi tetapi kebanyakan akan melakukan penelitian tingkat profesor (selain mengajar, tetapi juga banyak Phds lakukan). [& dalam beberapa hal profesor dapat dilihat sebagai secara terus menerus / berulang kali menulis banyak tesis PhD "mini-" (makalah penelitian) atau dalam beberapa kasus tesis "super-" Phd (buku) di atas karier mereka.] ada juga beberapa buku yang layak tentang subjek, akan menambahkan beberapa jika Anda menunjukkan mereka akan menjadi jawaban yang dapat diterima untuk pertanyaan Anda.
Bagaimana melakukan Penelitian Di MIT AI Lab "oleh sejumlah besar mahasiswa pascasarjana MIT AI saat ini, mantan, dan terhormat" / David Chapman, Editor
Bagaimana Menjadi Mahasiswa PhD yang Sukses (dalam Ilmu Komputer) Mark Dredze (Universitas Johns Hopkins), Hanna M. Wallach (Universitas Massachusetts Amherst)
sumber