Kuliah Video SICP (1986)
(ocw.mit.edu)- Anda dapat mengikuti alur lengkap MIT 6.001
Structure and Interpretation of Computer Programsmelalui 20 kuliah video, sehingga ini menjadi materi yang baik untuk meninjau ulang SICP secara sistematis - Kuliah ini diselenggarakan pada Juli 1986 untuk karyawan Hewlett-Packard, dan diproduksi secara profesional oleh Hewlett-Packard Television
- Video dapat ditonton di MIT OCW dan situs penyedia terpisah, serta tersedia dengan lisensi Creative Commons yang kompatibel dengan penggunaan komersial
- Materi kuliah didasarkan pada edisi pertama SICP tahun 1985; pada edisi kedua tahun 1996, sebagian program ditulis ulang dan materi baru ditambahkan
- Topik keseluruhan dan urutan penyajiannya tetap dipertahankan, sehingga masih bernilai sebagai referensi bagi pelajar yang belajar menggunakan edisi kedua
Struktur kuliah dan cara penyediaannya
- 20 kuliah oleh Hal Abelson dan Gerald Jay Sussman mencakup mata kuliah MIT 6.001
Structure and Interpretation of Computer Programssecara lengkap - Kuliah ini diselenggarakan pada Juli 1986 untuk karyawan Hewlett-Packard, dan diproduksi secara profesional oleh Hewlett-Packard Television
- Video ini merupakan materi yang disediakan oleh Hal Abelson dan Gerald Jay Sussman, dan digunakan dengan izin
- Video yang sama juga tersedia selain di MIT OCW melalui situs penyedia terpisah, dan mengikuti lisensi Creative Commons yang kompatibel dengan penggunaan komersial
Catatan terkait edisi buku ajar
- Kuliah ini didasarkan pada edisi pertama Structure and Interpretation of Computer Programs yang diterbitkan pada 1985
- Dalam edisi kedua tahun 1996, berbagai program yang dibahas dalam kuliah ditulis ulang dan materi baru ditambahkan
- Karena topik keseluruhan dan urutan penyajiannya tidak berubah, kuliah video ini tetap berguna bagi mahasiswa yang menggunakan edisi kedua
Daftar kuliah
-
Lisp dan abstraksi prosedur
- 1A: Overview and Introduction to Lisp: Gambaran umum dan pengenalan Lisp
- 1B: Procedures and Processes; Substitution Model: Prosedur, proses, dan model substitusi
- 2A: Higher-order Procedures: Prosedur orde tinggi
-
Data dan pemrosesan simbolik
- 2B: Compound Data: Data majemuk
- 3A: Henderson Escher Example: Contoh Henderson Escher
- 3B: Symbolic Differentiation; Quotation: Diferensiasi simbolik dan kutipan
- 4A: Pattern Matching and Rule-based Substitution: Pencocokan pola dan substitusi berbasis aturan
- 4B: Generic Operators: Operator generik
-
State, objek, dan stream
- 5A: Assignment, State, and Side-effects: Assignment, state, dan efek samping
- 5B: Computational Objects: Objek komputasional
- 6A: Streams, Part 1: Stream bagian 1
- 6B: Streams, Part 2: Stream bagian 2
-
Evaluator dan pemrograman logika
- 7A: Metacircular Evaluator, Part 1: Evaluator metasirkular bagian 1
- 7B: Metacircular Evaluator, Part 2: Evaluator metasirkular bagian 2
- 8A: Logic Programming, Part 1: Pemrograman logika bagian 1
- 8B: Logic Programming, Part 2: Pemrograman logika bagian 2
-
Model mesin dan kompilasi
- 9A: Register Machines: Mesin register
- 9B: Explicit-control Evaluator: Evaluator kontrol eksplisit
- 10A: Compilation: Kompilasi
- 10B: Storage Allocation and Garbage Collection: Alokasi penyimpanan dan garbage collection
1 komentar
Opini Hacker News
Untuk mempelajari SICP, kamu bisa memakai MIT Scheme, atau sebagai opsi lain menggunakan Racket atau DrRacket dengan paket add-on ini: https://docs.racket-lang.org/sicp-manual/
Yang lain punya terlalu banyak fitur di sekelilingnya sehingga bisa mengganggu fokus
MIT Scheme tidak dibuat untuk berjalan di Apple Silicon, dan dengan sedikit trik versi amd64 bisa dipakai di Mac modern, tetapi jika Apple menghapus Rosetta2, kemungkinan itu akan hilang
Jadi Racket bisa menjadi pilihan yang lebih baik
Hampir semua implementasi Scheme yang layak sebenarnya bisa dipakai untuk SICP, tetapi saya tidak merekomendasikannya karena bahasanya sudah berubah bahkan setelah edisi ke-2
Namun setelah mulai mengerjakan proyek sendiri, kamu boleh memakai sistem lain, dan mungkin perlu membaca dokumentasi untuk menemukan padanan modern dari idiom lama
Semua programmer harus belajar LISP, atau setidaknya mempelajarinya dengan serius
Sebagian besar programmer aplikasi hanya tahu cara berpikir prosedural seperti programmer C
LISP adalah bahasa “indah” yang berurusan dengan konsep, bukan hardware, dan ketika saya memakainya selama beberapa tahun untuk proyek pascasarjana di almamater saya pada 1990, cara berpikir saya benar-benar berubah
Dulu saya mencoba SICP hanya dengan bukunya, dan menurut saya kuliahnya jauh lebih baik, sementara buku berperan sebagai referensi pendamping
Tidak perlu mengerjakan latihan atau mengikuti bukunya
Baik kamu baru masuk bidang ini maupun sudah berpengalaman puluhan tahun, jika belum pernah menonton video ini atau mengikuti kelas SICP, ini kemungkinan bermanfaat bagi hampir siapa saja
Saya menyelesaikan seluruh video ini dan bukunya, dan juga membentuk kelompok belajar offline lewat newsgroup
Itu sangat menyenangkan dan menjadi terobosan besar, tetapi sekitar pertengahan buku jumlah peserta studi mulai berkurang
Nasihat untuk membaca SICP adalah nasihat terbaik yang pernah saya dapat dari /g/
Saya belajar Lisp lewat ini, lalu belajar Clojure, kemudian membangun karier di seputar itu
Itu bahasa yang cukup saya sukai
Sangat saya rekomendasikan
Menonton kuliah pertama saja langsung membuat ketagihan
Apa yang bisa didapat dari sini oleh orang yang tertarik pada pemrograman sistem?
Jadi selama pemrograman sistem terutama berkaitan dengan manajemen state dan abstraksi, menurut saya ini sangat relevan secara mendalam
Namun jika yang dimaksud dengan “pemrograman sistem” adalah sekadar memaksa sistem-sistem kotor yang sudah ada untuk saling tersambung, atau mengasah intuisi terhadap library pihak ketiga, mungkin tidak terlalu relevan
Meski begitu, di sini pun ada insight. Saya pernah menonton video Sussman menjelaskan mengapa ia meletakkan SICP dan meminta MIT membuat mata kuliah pengantar baru; itu tampak seperti ia menutup dengan sopan dan penuh pertimbangan sebuah permata yang telah ia poles
Maksudnya, masa ketika kita bisa berharap menembus dan memahami semua lapisan abstraksi sudah berakhir
Kuliah-kuliah ini kualitas audionya terlalu buruk
Apakah ada cara untuk membersihkannya dengan baik?