- Kuliah "Mathematics for Computer Science" dari MIT OpenCourseWare memberikan dasar matematika yang esensial untuk ilmu komputer dan rekayasa perangkat lunak
- Mencakup kombinatorika, teori graf, matematika diskret dan lainnya, dengan penekanan pada penguatan kemampuan pemecahan masalah dalam ilmu komputer
- Materi kuliah menyediakan catatan kuliah, soal latihan, solusi secara lengkap, sangat membantu untuk pembelajaran praktis
- Kursus ini dapat diterapkan baik di praktik kerja maupun riset, seperti dalam perancangan algoritma, teori komputasi, verifikasi kesalahan
- Tersedia gratis dan dapat diakses siapa saja, berdasarkan kurikulum standar MIT
Gambaran kursus
- "Mathematics for Computer Science" dari MIT OpenCourseWare adalah mata kuliah matematika inti untuk mahasiswa ilmu komputer dan teknik elektro
- Topik utamanya mencakup kombinatorika, teori graf, struktur diskret, probabilitas, serta memberikan dasar untuk landasan logis program dan analisis algoritma
Area pembelajaran utama
- Matematika diskret: menekankan struktur matematika dasar program seperti bilangan, fungsi, himpunan, dan logika
- Kombinatorika dan probabilitas: membantu memahami efisiensi, keacakan, distribusi data dalam algoritma
- Teori graf: berperan penting dalam struktur data dan pemodelan jaringan, pencarian jalur, serta masalah optimisasi
- Pembuktian ketepatan algoritma: menggunakan penalaran logis dan induksi matematika untuk menjamin keandalan program
Materi pembelajaran
- Catatan kuliah: tersusun sistematis dengan fokus pada penjelasan teori dan contoh
- Soal latihan: mencakup soal dengan beragam tingkat kesulitan di tiap bab untuk meningkatkan kemampuan penerapan konsep
- Solusi: menyediakan pembahasan agar hasil dapat diverifikasi setelah menyelesaikan soal secara mandiri
Penerapan dan nilai
- Menjadi fondasi dasar untuk bidang ilmu komputer, perancangan sistem, kecerdasan buatan, rekayasa perangkat lunak
- Dengan akses gratis, memberikan peluang belajar yang luas bagi calon pengembang, engineer profesional, maupun peneliti
- Disusun berdasarkan kurikulum standar MIT, sehingga menawarkan pengalaman belajar berstandar global
Catatan tambahan
- Saat menggunakan situs eksternal, syarat penggunaan dan lisensi situs tersebut dapat berbeda dari MIT OCW
- MIT OCW tidak bertanggung jawab atas konten di situs eksternal
1 komentar
Komentar Hacker News
Sangat menakjubkan bahwa siapa pun bisa mengikuti kuliah universitas kelas dunia secara gratis, terutama kuliah matematika mendalam berdurasi 31 jam seperti ini. Tapi seri kuliah yang panjang selalu sulit dituntaskan. Saya jadi cenderung mencari video pendek yang hanya menjelaskan konsep secara cepat, tetapi akhirnya kurang mendalam dan sering tetap berhenti di tengah jalan. Sepertinya motivasi yang datang saat benar-benar terdaftar di universitas itu penting. Apakah ada yang pernah menuntaskan kuliah seperti ini sendirian sampai akhir, dan bagaimana cara menjaga konsistensi serta disiplin diri? Dalam kasus platform kuliah seperti Coursera, KhanAcademy, dan lainnya, adanya tenggat waktu memberi sedikit unsur pemaksaan sehingga motivasi jadi lebih terjaga. Mungkin saya memang terbiasa belajar dengan pola berbasis deadline. Kalau ada yang mencari kuliah singkat karena sulit fokus (meski mungkin kurang mendalam), saya merekomendasikan playlist YouTube Professor Dave Explains
Saya menyukai matematika, menyelesaikan PhD, dan cukup kuat dalam manajemen diri, tetapi pada awalnya tetap tidak mudah belajar hanya lewat kuliah video. Rasanya perlu mencapai ambang tertentu dalam pengetahuan dasar sebelum pembelajaran mandiri lewat video bisa benar-benar berjalan. Faktor pentingnya adalah mengikuti program bersama rekan-rekan, dan terutama keberadaan mentor yang berpengalaman. Menurut saya sulit mencapai tahap belajar mandiri dalam matematika tanpa mentor. Anda benar-benar butuh seseorang yang bisa mengoreksi kesalahan dan menunjukkan arah. Kurang lebih seperti guru piano. Hal penting lain adalah investasi waktu. Jika ingin benar-benar fasih dalam aljabar linear, analisis, kalkulus, dan sebagainya, Anda perlu menginvestasikan lebih dari 10 jam per minggu selama setahun. Kalau hanya 2 jam, yang tersisa biasanya cuma pemahaman dangkal tanpa kedalaman
Menanggapi pertanyaan apakah sumber motivasi itu memang datang dari benar-benar terdaftar di universitas, menurut saya dalam kebanyakan kasus faktornya adalah premi upah yang didapat setelah lulus. Tidak seperti mahasiswa MIT sungguhan, hanya mengikuti kuliah online tidak membuat Anda semakin dekat ke ijazah MIT, jadi motivasinya lebih lemah. Jika Anda terbiasa belajar dengan deadline, salah satu cara adalah memberi hukuman pada diri sendiri atau membuat janji dengan seseorang sehingga ada biaya yang harus dibayar bila tidak menyelesaikannya. Saya sendiri pernah benar-benar menuntaskan kuliah atau buku secara mandiri, dan motivasi saya adalah rasa ingin tahu murni, serta rasa tidak suka mengakui bahwa saya tidak tahu sesuatu atau bertingkah seolah tahu padahal tidak
Saat kuliah, masa-masa belajar mata kuliah CS tingkat lanjut bersama profesor dan teman seangkatan adalah salah satu periode paling menyenangkan dalam hidup saya. Setelah lulus, saya sibuk dengan pekerjaan, dan sekarang tanpa tugas yang dinilai profesor, ujian, atau sesi tanya jawab, mempelajari hal baru jadi jauh lebih sulit. Saya sedang mempertimbangkan mendaftar ke universitas online sekadar untuk kesenangan; saya ingin tahu apakah ada program yang online, terjangkau, menawarkan mata kuliah CS/ML tingkat lanjut, dan memungkinkan interaksi yang layak dengan profesor. Kalau ada saran, saya akan sangat berterima kasih
Kuliah ini sangat membantu proyek saya saat ini (pratinjau G-code dan sistem pemodelan 3D untuk OpenPythonSCAD). Materi tambahan yang saya rekomendasikan adalah SICP(Structure and Interpretation of Computer Programs), Euclid's Elements online, Motion Mountain, serta LibriVox dan Project Gutenberg. Saya juga teringat masa kecil ketika mendapatkan buku dari berbagai saluran, seperti rak buku kecil di pedesaan, menara buku di penjara, dan department store di kota berjarak 26 mil
Saat mengikuti kuliah ini, saya kesulitan menuntaskan satu kuliah sekaligus karena kurang latihan dan pembiasaan matematika. Saya melengkapi dasar-dasarnya dengan mencari penjelasan di situs lain, lalu membagi satu kuliah menjadi beberapa hari (atau beberapa minggu). Yang penting adalah mengatur ekspektasi. Di titik-titik yang buntu, kita perlu merenung baik-baik atau menunggu sampai perlahan menjadi terbiasa. Saya merangkum hal-hal yang saya pahami dan yang belum saya mengerti dalam file catatan sederhana atau di kertas, lalu jika terus dijalani dengan konsisten selama beberapa bulan, pada suatu titik jalannya mulai terlihat
Daftar topik kuliah bisa dilihat di halaman MIT OCW, dan catatan kuliahnya tersedia di sini. Saya tidak terlalu familiar dengan keseluruhan kursusnya, tetapi kuliah terakhir, "Large Deviations", punya sisi yang unik. Secara pribadi saya menyukai kuliah "State machines" karena memperkenalkan konsep invarians dengan contoh yang mudah dipahami, seperti puzzle 15, alih-alih contoh variabel boolean. Buku teksnya (PDF) ada di sini. Soal-soalnya juga cukup praktis. Misalnya, alih-alih aljabar boolean yang kering, materi ini membahas hal seperti memformalkan kondisi ketika file system terkunci
Kuliah "Large Deviations" adalah topik yang menarik, tetapi catatan kuliahnya sendiri sebenarnya tidak mendefinisikan apa itu large deviations. Ada contoh batas Chernoff (eksponensial) untuk jumlah peubah acak IID, tetapi istilah large deviations tidak dipakai secara langsung, jadi agak disayangkan. Batas seperti ini sering muncul dalam ilmu komputer, terutama dalam teori pembelajaran modern
Tiap unit tampaknya berdiri sendiri. Jadi saya penasaran apakah boleh dipelajari dalam urutan apa pun. Saya bertanya untuk memastikan karena Set theory dan semacamnya adalah fondasi matematis
Saya penasaran apakah ada yang pernah berpindah karier lewat OpenCourseware. Menurut saya, berbeda dari promosi yang dulu digaungkan pada era MOOC, kenyataannya materi seperti ini lebih cocok untuk orang yang sudah berpendidikan tinggi, pembelajar mandiri, atau kalangan hobi. Bukan untuk menyalahkan siapa pun; saya sendiri juga sedang belajar komputasi kuantum di sela-sela pekerjaan dan urusan rumah tangga, tetapi dengan ritme seperti ini rasanya saya baru akan bisa mengejar ketertinggalan puluhan tahun lagi
Saya agak alergi dengan nama kursus seperti "Mathematics for Computer Science". Sejak awal saya selalu menganggap computer science sebagai salah satu cabang matematika
Secara teori saya setuju, tetapi di industri nyata kebutuhan akan software engineer jauh lebih besar daripada lulusan matematika, dan hampir tidak ada orang yang masuk ke CS karena minat matematis. Karena itu kurikulum CS juga praktis. Fokusnya ada pada algoritme utama, struktur data, cara coding Python, dan hal-hal yang dibutuhkan untuk masuk big tech
Tidak aneh juga jika setiap subbidang matematika punya nama kuliah dalam format "Mathematics for [subbidang tertentu]". Saya sendiri belum pernah menamai kuliah secara langsung, tetapi dari sisi isi ini mirip dengan kuliah "Intro to" lain
Saya berencana memformalkan kursus ini di Lean. Saya belum tahu seberapa sulitnya, tetapi kalau tertarik silakan ikut lewat repositori github
Pekerjaan ini juga sangat selaras dengan tujuan CSLib initiative. Untuk saat ini saya hanya punya tautan ke postingan LinkedIn ini
Saya penasaran manfaat apa yang akan didapat dari pekerjaan ini
Saya berharap ada buku soal dengan pembahasan/solusi juga. Saya bingung bagaimana seharusnya memverifikasi jawaban saya
Video kuliahnya bisa ditonton di MIT OCW dan playlist YouTube
Saya ingin tahu di mana bisa menemukan pembahasan/solusi untuk soal-soal dalam kursus ini
Topik-topik kuliahnya memang menarik, tetapi saya merasa tidak banyak yang benar-benar wajib bagi software engineer biasa. Saat pertama kali mulai pemrograman, saya sadar betapa sedikitnya materi matematika yang ternyata dipakai dalam pekerjaan nyata. Tentu saja, kuliah MIT seperti ini ditujukan untuk ilmuwan komputer, bukan software engineer. Di universitas-universitas Amerika, keduanya cukup dibedakan
Kalau Anda sedikit saja menyentuh bidang fisika atau robotika, pernyataan seperti itu tidak berlaku. Tanpa matematika Anda tidak akan bisa memahami apa pun
Saya pernah bekerja sebagai software engineer baik saat punya pengetahuan matematika maupun saat tidak, dan kontribusi serta efektivitasnya benar-benar berbeda di kedua kondisi itu
Topik minggu pertama adalah "Predicates, Sets, and Proofs", dan saya sendiri cukup sering memakai predikat dan himpunan dalam pemrograman sehari-hari
Meski saya tidak memakainya, bukan berarti orang lain juga tidak. Software engineering tidak mungkin berdiri tanpa computer science
Meski tidak perlu memahami semua isinya secara mendalam, menurut saya pemahaman konseptual tetap sangat penting untuk menulis program yang benar sesuai spesifikasi. Manusia secara naluriah bisa menyelesaikan masalah algoritmik secara ad-hoc, tetapi matematika memberi struktur dan ketelitian pada cara berpikir, serta memungkinkan kita menata masalah sehingga proses penyelesaiannya menjadi lebih mekanis. Setidaknya jika memahami teori himpunan, logika, dan aljabar relasional, Anda akan jauh lebih mudah melihat keterkaitan antara pemrograman dan matematika. Buku yang saya rekomendasikan adalah Introductory Logic and Sets for Computer Scientists karya Nimal Nissanke, dan Understanding Formal Methods karya Jean-Francois Monin
Tunggu dulu... CS itu memang sejak awal adalah gelar matematika. Judul ini terasa seperti matematika untuk matematika sendiri