it-swarm-id.com

Subjek / teori paling sulit dalam Ilmu Komputer?

Subjek/teori CS mana yang paling sulit yang Anda pelajari tetapi penting untuk bidang ini? Dan alasannya tolong?

17

“Ada 2 masalah sulit dalam ilmu komputer: caching, penamaan, dan kesalahan off-by-1”

37
Brian Carlton

Jujur, konstruksi kompiler!

35
Pemdas

Desain & Analisis Algoritma

Saya pikir pertanyaan itu tergantung pada guru yang Anda miliki, dan bagaimana mata pelajaran itu diatur dalam karier Anda.

Menganalisa algoritma bisa sesulit yang diinginkan seseorang. Perhatikan bahwa ada masalah yang tidak terpecahkan, dan tidak hanya itu: masalah yang tidak dapat diselesaikan.

Masalahnya adalah bahwa Anda dapat memiliki masalah, dan jika Anda tahu itu tidak dapat diselesaikan, itu sempurna. Tetapi bagaimana jika Anda tidak melakukannya? Anda dapat menghabiskan banyak waktu untuk mendemonstrasikan NP-Complete, atau mencoba mencari solusi waktu polinomial untuk menyelesaikannya.

Memperagakan NP-Completness tidak mudah. Ya, banyak masalah diketahui, tetapi masalahnya adalah menemukan pengurangan untuk menunjukkan bahwa itu NP-Lengkap. Dan bagaimana jika Anda menghabiskan banyak jam/hari/bulan untuk mencoba mendemonstrasikannya, dan itu dapat diselesaikan dalam waktu polinomial? :)

Ada juga mata pelajaran lain, seperti Penyusun, Teori grup dan Fungsi Rekursif Primitif yang bisa sekeras rencana pelajaran atau yang diinginkan guru; )

22
Oscar Mederos

Pengenalan Pola yaitu Kecerdasan Buatan. Ini mengacu pada komputasi pintar bersama dengan alat pengenalan pola lain seperti, Pengenalan Karakter Optik, Suara ke teks, identifikasi wajah, dll.

Banyak hal "keren" yang dapat Anda lakukan atau berharap Anda bisa lakukan dengan komputer mengandalkan algoritma ini, dan kami telah berusaha untuk menyempurnakannya selama beberapa dekade tanpa banyak keberhasilan.

18
Malfist

Pilihan saya adalah teori komputabilitas

(Hmm ... mungkin itu tidak penting, tapi itu pasti sulit)

12
Maglob

Hanya ada dua masalah sulit dalam Ilmu Komputer: cache invalidation dan penamaan hal-hal. - Phil Karlton

10
Gareth

teori kategori (matematika diskrit), tetapi sepadan

7
Steven A. Lowe

Kriptografi

Jika Anda melakukannya hanya sedikit salah, itu bisa menelan biaya jutaan perusahaan.

6
davidhaskins

Sistem Operasi, terutama bagian yang ada hubungannya dengan threading.

Dan alasannya bukan karena sulitnya membuat 5 filsuf makan pizza dengan garpu. Alasannya adalah karena menulis kode multithread dengan sendirinya sulit dan belum tentu mudah untuk dihitung oleh manusia (setidaknya laki-laki - menurut istri saya).

4
Peter Turner

Analisis numerik

Ini tidak terlalu sulit pada masalah mainan yang Anda berikan dalam kursus, tetapi begitu Anda mulai mempertimbangkan masalah nyata itu berubah menjadi pekerjaan yang serius.

3
Peter Taylor

Teori Antrian

Yah secara teknis ini adalah cabang matematika, tetapi sangat relevan dalam CS.

Hampir semuanya dalam CS didasarkan pada antrian (terlihat (jelas) dan tidak terlihat (tidak begitu jelas atau tersirat)).

Pada hari-hari awal CS antriannya jelas.
Antrian program (setiap program setumpuk kartu).

Saat ini antrian tidak begitu jelas. Internet misalnya: jaringan packet switched, tetapi paket membentuk antrian dan merutekan paket adalah bentuk minimalisasi antrian.

3
Martin York

Saya juga memilih Desain Kompiler. Terutama di mana bagian DFA dan NFA masuk. Saya juga tidak begitu jelas tentang NP masalah dan lainnya.

3
Yuva

Menafsirkan persyaratan klien ketika klien tidak benar-benar tahu apa yang mereka inginkan. Ini tidak diajarkan di perguruan tinggi, dan merupakan salah satu keterampilan yang paling penting untuk dimiliki.

2
Steven Striga

Ada banyak topik canggung di lapangan, tetapi pilihan saya untuk kesulitan yang terus-menerus ada adalah yang melibatkan Global System Properties. Contoh dari topik umum ini meliputi:

  • Multi-threading aman dan bebas macet
  • Keamanan

Ini sulit karena Anda mencari sesuatu yang hanya ada ketika semuanya sudah benar; Anda membutuhkan properti sistem global dan hampir semua alat yang tersedia (dan semua yang menyamakan masalah nyata dalam pengalaman saya) hanya benar-benar melakukan penalaran lokal . Ini merupakan proses untuk beralih dari pemikiran tentang potongan-potongan program ke seluruh Shebang yang sulit, terutama karena sangat mungkin untuk memiliki potongan-potongan yang semuanya benar dalam diri mereka sendiri tetapi di mana masih ada bug halus karena komponen-komponennya disusun secara tidak benar; bug dapat muncul karakteristik yang tidak diinginkan ...

1
Donal Fellows

Konstruksi Kompiler. Sulit tetapi harus memahami konsep di belakang

1
Nipuna

Desain Kernel siapa saja? Yah saya tidak benar-benar tahu bagaimana hal itu dilakukan dan apa fitur yang ditargetkan untuk OS, tetapi bagi saya berpikir tentang mendesain kernel harus menjadi tugas yang menakutkan.

Saya juga memikirkan keamanan komputer; Saya tidak benar-benar tahu apa yang membuat sistem tidak aman kecuali tentu saja, buffer overflows yang jelas, injeksi XSS dan SQL.

Saya tidak yakin, tetapi tampaknya beberapa algoritma juga tidak aman; lihat proyek MetaSploit, ia mencantumkan semua jenis dan jenis pelanggaran keamanan: Anda dapat melihat ada banyak cara suatu program dapat cacat.

1
jokoon

Secara pribadi, milik saya adalah Formal Logic. Sulit untuk memulainya, tetapi begitu Anda menurunkan aturan dan berhasil bermain dengan cukup, otak Anda bergerak Logic++;, yang dalam perkembangannya adalah hal yang sangat bagus.

Sebagai catatan tambahan, saya menjawab pertanyaan secara langsung - ini jelas bukan subjek yang paling sulit ketika saya meraih gelar saya, tapi mungkin itu subjek "kehidupan nyata yang paling sulit diterapkan".

1
Kyle Rozendo

Desain dan Analisis Algoritma. Ini tidak terlalu sulit untuk dipahami dan dianalisis diketahui algoritma, itu yang merancang dan menganalisis algoritma baru untuk masalah sulit sulit, dan membutuhkan pemahaman luas dari banyak bidang dan praktik dalam menerapkan berbagai macam teknik.

0
philosodad

Saya suka jawaban Anda (dan saya tidak lupa memperbaikinya), seperti kompiler, kernel, dll, tetapi sebagian besar programmer tidak pernah menemui masalah ini. Ada sedikit lebih mudah, tetapi masalah yang lebih umum: concurrency - utas, mengunci. Sangat mudah untuk menulis program yang menghasilkan kesalahan magis, jika kita membuat bug kecil dalam arsitektur concurrency.

Jadi, saya katakan, ini bukan masalah tersulit dalam komputasi, tetapi karena ini biasa digunakan, ini adalah masalah yang berbahaya.

0
ern0

Optimalisasi Algoritma adalah Topik yang menantang.

0
Rachel

Notasi Z/metode formal yang digunakan untuk melukai otak saya di perguruan tinggi. Terutama karena aku membencinya. Keras jauh lebih mudah ketika Anda menikmati apa yang Anda lakukan dan jauh lebih sulit ketika Anda tidak.

0
Ian

Subjek/teori CS mana yang paling sulit yang Anda pelajari tetapi penting untuk bidang ini?

Matematika diskrit.

Itu sulit karena teori-teori sangat longgar terkait satu sama lain tetapi mereka digunakan dalam CS. Terlalu banyak hafalan kurasa ...

Bukti oleh Induksi, Big O, rekursi, bagi dan konqure, Teori Grafik, bla bla .. argh!

Kompiler bagi saya mudah, karena kami harus mengambil Teori Automata. ^^

0

Constraint Programming. yang berhubungan dengan masalah kombinatorial, masalah NP-complete.

0
Sorantis

Layanan Informasi Manajemen Selama masa kuliah saya dulu punya satu mata pelajaran manajemen setiap semester yang benar-benar membuat saya marah.
Sulit! baik mata pelajaran seperti Desain Kompiler, Desain OS dll sulit tetapi mereka benar-benar menarik dan menantang. Saya benar-benar kacau dalam mata pelajaran seperti Sistem Informasi Manajemen/Layanan dll karena mereka penuh dengan kebosanan dan Anda harus melalui banyak teori.

0
Ranger

Jika Anda bekerja dalam pointer C/C++ adalah konsep yang paling penting untuk diketahui. Tetapi entah bagaimana saya tidak pernah memahaminya sepenuhnya di perguruan tinggi.

0
Manoj R

Pemrograman Berorientasi Objek

Itu mungkin karena saya memotong gigi pada FORTRAN dan APL, tetapi pergeseran dari bahasa yang sangat prosedural ke objek telah menjadi sesuatu yang saya perjuangkan selama bertahun-tahun. Itu tidak membantu yang disebut 'ahli' menulis artikel dan tutorial yang bertentangan tentang apa artinya menjadi berorientasi objek dan cara terbaik/tepat untuk membangun program berorientasi objek.

0
oosterwal