Pemikiran


Ujian kualifikasi berakhir minggu lalu. Terlepas dari hasilnya, banyak hal yang saya pelajari selama mempersiapkan ujian ini.

Secara singkat, ada dua subjek ujian kualifikasi yang harus saya lewati. Tiap subjek, ada empat topik yang diujikan (saya hanya perlu menyelesaikan tiga dari empat topik untuk masing-masing subjek). Kedua subjek itu adalah:

Foundations of Theoretical Computer Science (cs5201), yang meliputi:

  1. Algorithms
  2. Theory of Computation
  3. Principles of Programming Languages
  4. Logic and Artificial Intelligence

Foundations of Computer Systems (cs5202), yang meliputi:

  1. Database Systems
  2. Operating Systems
  3. Computer Networks
  4. Computer Architecture

Kedua subjek ini dinilai sebagai aspek dasar yang minimal sudah dipelajari oleh mahasiswa selama undergraduate study (pendidikan strata 1). Tujuan dari ujian ini adalah untuk menguji pengetahuan dasar, kreatifitas, kemampuan evaluasi, desain and analisa serta mengaplikasikan prinsip-prinsip dasar yang sudah pernah dipelajari. Detail informasi dan referensinya dapat dilihat langsung pada link yang cs5201 dan cs5202.

Beberapa pelajaran berharga yang saya peroleh dari persiapan ujian ini:

Foundation is important

Aspek-aspek dasar sangatlah penting. Seperti bangunan, tanpa pondasi yang kuat, sulit untuk membangun gedung yang tinggi. Masing-masing topik pada kedua subjek saling berkaitan satu sama lain, dan topik-topik ini juga yang menjadi dasar riset lebih lanjut di bidang komputer. Jadi, dasar dari satu topik dapat menyokong dasar yang lain.
Contohnya:

  • struktur data (algoritma) sangat erat kaitannya dengan banyak hal mulai dari index database, filesystem sampai format protokol jaringan
  • page replacement (sistem operasi) berkaitan dengan buffer replacement (database)
  • algoritma routing (jaringan komputer) menggunakan algoritma graph dan dynamic algorithm
  • teori bahasa dan automata (teori komputasi) berkaitan dengan konsep bahasa pemrograman dan analisa kompleksitas algoritma (Polynomial dan Non-deterministic Polynomial)
  • first order logic berkaitan dengan software verification.

Concept is more important than remembering things

Ada banyak algoritma di luar sana. Sangat sulit untuk mengetahui secara detail sebuah algoritma. Bahkan sangat mungkin orang yang mengembangkan algoritma tersebut juga lupa detail algoritma yang dia kembangkan (saya pernah bertanya tentang algoritma di sebuah paper pada penulis aslinya, dan berhubung algoritma tersebut sudah tua, si penulis sendiri juga tidak terlalu ingat detailnya). Pemahaman konsep jauh lebih penting daripada mengingat proses kerja algoritmanya. Dengan memahami konsepnya, kita bisa dengan leluasa mengaplikasikan sebuah algoritma.
Sebagai contoh sederhana,
index pada database pada umumnya diimplementasikan dengan menggunakan hashtable atau B+Tree. Hashtable sangat bagus untuk point query, tetapi sangat buruk untuk range query, sedangkan B+Tree bagus untuk range query, walaupun untuk point query sedikit kalah dibandingkan Hashtable. Database designer dapat mengaplikasikan konsep ini untuk menentukan index database berdasarkan workload query yang sering dilakukan pada database tersebut. Bagaimana dengan attribut yang akan diindex, jumlah buffer yang optimal untuk sebuah sistem? tentunya para database designer sangat akrab dengan hal ini (konsep struktur data, dan buffer replacement sangat berguna di sini).

Independent study

Ujian ini termasuk modul tanpa kuliah. Persiapannya dilakukan sendiri oleh mahasiswa. Kemampuan belajar secara independen merupakan hal yang sangat penting.
Banyaknya materi yang perlu dipersiapkan melatih saya untuk belajar memetakan framework, pengetahuan, dan konsep-konsep yang ada. Selain itu saya menjadi terbiasa untuk bertanya mengapa sesuatu harus didesain seperti itu, dan mengevaluasi pro dan kontra suatu konsep.
Pada dasarnya, semua informasi yang kita perlukan tersedia dan sangat mudah diakses di internet. Tidak ada masa yang lebih mudah dari saat, di mana kita bisa mendapat akses informasi dan pengetahuan secara mudah dan cepat di internet.

Banyak konsep dasar yang tidak pernah saya ketahui selama undergraduate study saya

Pelajaran berharga terakhir ini cukup ironis. Ternyata banyak hal yang merupakan konsep dasar, tidak pernah saya pelajari sebelumnya. Contohnya: query optimization, concurrency control dan recovery (database), konsep dasar P dan NP (algoritma), decidability dan semi-decidability (teori komputasi), hoare logic. Membuktikan kebenaran dan menganalisa kompleksitas (space and time) algoritma yang dikembangkan juga termasuk kebiasaan baru yang dibentuk dari persiapan ini. Believe me, this is very important if you are software developer.
Ada banyak hal yang sudah pernah saya pelajari sebelumnya, dan tidak sedikit juga yang belum pernah saya pelajari sebelumnya. Pada akhirnya, kembali lagi bahwa belajar adalah sebuah proses. Sudah pernah belajar sebelumnya bukan berarti benar-benar paham, dan semakin saya belajar pemahaman terhadap suatu hal akan semakin diperkuat (Remember, learning is an iterative process!!).

    Secara pribadi, saya merasa topik-topik  yang diujikan ini merupakan topik-topik mendasar. Walaupun saya lebih banyak mendalami data mining, machine learning dan artificial intelligence, saya merasa pemahaman terhadap konsep-konsep dasar sangat perlu terutama bagi orang-orang yang membangun sebuah sistem.

    Di tengah-tengah kesibukan studi, secara tidak sengaja saya menemukan bahwa tulisan saya, Berburu Resource di Internet, muncul di majalah online Inovasi, tepatnya di Inovasi Edisi Vol.9/XIX/November 2007. Thanks to majalah online Inovasi. Thanks to Google for linking me to the resource :).
    Sebelumnya sempat terpikir bahwa tulisan ini mungkin tidak masuk karena sudah lama tidak ada kabarnya, ternyata penerbitannya majalahnya yang molor.
    Tulisan saya ini mungkin akan sangat berguna bagi teman-teman dalam mencari resource di Internet, terutama yang sedang mengerjakan riset atau tugas akhir. Banyak sekali yang bertanya sumber-sumber resource berkaitan dengan data mining di blog ini. Karena data mining itu sangat luas dan banyak sekali hal yang saya juga masih belajar, semoga artikel ini bisa jadi guideline awal dalam berburu resource di internet. Paling tidak trik-trik ini sangat ampuh selama saya berburu resource di internet.
    Teman-teman mungkin juga dapat membuka bagian Tips dari blog ini. Ada beberapa posting terkait dengan berburu resource.

    Artikel dapat didownload di sini [link baru].

    Update 20 Maret 2008:
    Sepertinya memang ada perubahan struktur website majalah inovasi. saya baru saja update link sumbernya. Thanks to Google… 🙂

    Sebenarnya itu topik tugas saya yang minggu lalu saya kumpulkan. Saat mengerjakan tugas ini, saya menemukan banyak hal menarik yang dapat saya share di sini, terutama dari website-website yang saya temukan.
    Ini kutipan dari laporan yang saya kumpulkan, karena itu dalam bahasa Inggris. Hopefully, you can all understand. 🙂

    Everyone knows that Google is one of the best (possibly the best) search engines right now. Most people prefer to use this search engine rather than other search engines. Most of them even set their homepage to Google (iGoogle). But, there are some other services offered that could be different from Google approach. They are either using another search algorithm which they believe that it performs better than others or providing new features that have not been offered before.

    As an example, Ask.com (http://www.ask.com/) uses ExpertRank algorithm (formerly known as Teoma) which goes beyond mere link popularity to determine popularity among pages. Teoma analyzed links in context to rank a web page’s importance within its specific subjects. For instance, a web page about soccer would rank higher if other web page about soccer link to it. This is also known as subject-specific popularity. Ask.com says that performing this task in which includes identifying topics, the experts of those topics, and popularity amongst those experts at the exact moment of search query is processed requires many additional calculation that other search engine do not perform. Moreover, Ask.com also provides suggestion to expand and narrow the search term. As far as I know, Google is working on this issue as well. I am quite sure that Google Sets (http://labs.google.com/sets) is one of important parts of the system.

    Search features are another aspect of providing good search engine. They could be vertical (specific) search, suggestion, or good user interface. There are many vertical search engines which are preferred bycertain users. For example: Digg (http://digg.com/) for share content, Technorati (http://technorati.com/) for blog and tagged social media, Retrevo (http://www.retrevo.com/) for consumer electronics. Better user interface offers assistance for user to evaluate and explore search result. Vivisimo (http://vivisimo.com/) gives clustered results, in a tree form, to make users easier explore and evaluate search results. This feature is also offered by some meta search engines such as Clusty (http://clusty.com/) which is owned by vivisimo, and Grokker (http://www.grokker.com/). Furthermore, Grokker also provides Map View. Here is the example (follow the link). In this aspect, Google is also working hard to provide additional useful feature to its users, making it faster, easier, and user friendlier. Prototype of the work can be found in Google Experimental Search (http://www.google.com/experimental/).

    Related to web 2.0 which encourage web users to collaborate in providing good resources, some companies even have tried to organize and make use of it. Swivel (http://www.swivel.com/) is a very good example. Swivel tries to make data useful. Every user can post and share data so people can share insights, makegreat decisions, and improves lives.I think this service will be a huge data repository, and could be next YouTube for data. Another good example is Spock (http://www.spock.com/), people search engine. This service uses man and machine as the approach to search people. Spock performs some entity resolution algorithm (to distinguish and organize web content about people in the web) combine with Spock members tag to provide the result.

    There are many aspects of search engine that can be explored. So, although Google is the most popular search engine right now with its complicated and sophisticated architecture, there are always other aspects that other search engine can offer. These things make all search engine companies, including the leaders such as Google, Ask.com, Yahoo still keep trying to develop some idea for an ideal search engine.

    Update:
    Selain itu, masih ada beberapa website yang saya temukan kemudian. Beberapa di antaranya sangat menarik.

    • FareCast (http://www.farecast.com/): Smart travel search
      Farecast merupakan travel search engine. Search engine ini dapat membantu kita mencari penerbangan. Yang menarik dari website ini adalah adanya airfare prediction. Mereka dapat memberi saran tentang harga tiket, apakah akan naik (beli sekarang) atau turun (tunggu).
    • Pluggd (http://www.pluggd.com/): Podcast search
      Pluggd adalah podcast search, jadi kita dapat mencari podcast di sini. Yang menarik dari website ini adalah adanya track bar yang menunjukkan bagian-bagian podcast yang sesuai dengan search query kita. Jadi kita tidak perlu melihat semuanya, cukup melihat yang sesuai dengan apa yang kita cari.
    • Quitura (http://www.quintura.com/): using tag cloud to navigate query
      Yang menarik dari website ini adalah kita adanya navigasi query dengan menggunakan tag cloud.

    Akhirnya ada sedikit waktu untuk posting di blog lagi.
    Menyambung posting sebelumnya, kali ini saya akan sedikit share tentang ketertarikan saya dengan data mining.

    Terima kasih sebelumnya buat pak Gun yang telah menularkan sedikit ilmunya, dan Prof Jiawei Han untuk bukunya yang membuat saya sedikit addicted dengan bidang ini.

    Satu hal yang pasti bahwa saya belajar banyak hal, terutama berkaitan dengan jenis-jenis data dan karakteristiknya serta problem-problem yang dihadapi untuk mengolah jenis data tersebut. Selain itu, aplikasi data mining pada real-world problems membuat saya juga mengetahui perkembangan berbagai macam ilmu, misalnya: bioinformatika, kedokteran, literatur, web, genetika, dan lain-lain. Sangat menarik!!!
    Kemudian, salah satu hal yang cukup istimewa dari data mining adalah posisi disiplin ilmunya yang merupakan irisan banyak bidang ilmu lain seperti kecerdasan buatan, information retrieval, statistik, database, machine learning, visualisasi. Ini membuat saya juga mengenal banyak hal setiap kali membaca hal-hal yang berkaitan dengan data mining.
    Nah, kalo dikaitkan dengan penggunaannya. Data mining dapat diaplikasikan pada banyak bidang. Saya juga banyak mengenal orang di luar computer science yang mempelajari data mining.
    Sebagai salah satu bidang yang lagi hot saat ini di dunia computer science, saya merasa bahwa data mining akan menjadi sangat penting pada tahun-tahun mendatang. Saat semua data dapat dengan mudahnya disimpan dan dibuat, peranan data mining akan menjadi sangat penting untuk dapat mencari hal-hal penting yang tersembunyi di dalamnya. Yang jelas, saat ini kita mulai kebanjiran data, dan hingga saat ini belum ada yang dapat mengolah semuanya dengan sangat baik.

    Selamat tahun baru 2007…. 🙂
    Semoga di tahun yang baru ini segala harapan, impian, dan cita-cita kita semua dapat tercapai.
    Posting pertama tahun ini akan dimulai dengan pemikiran saya dan apa yang saya bayangkan tentang hal-hal yang menjadi akan menjadi tren di tahun 2007, terutama yang berkaitan dengan data mining tentunya.
    Banyak hal yang saya lihat dalam email, news, blog, dan rss feed saya di tahun 2006. Saya bisa melihat ada dua hal yang menjadi tren dan sangat diexplore tahun lalu akan menjadi semakin rame yaitu komunitas dan personalisasi. Dua hal ini yang semakin terlihat sejak tahun 2006. Di samping itu perkembangan data mining dari area biomedical, bioinformatics, dan brain informatics serta text mining juga akan semakin ramai diexplore.

    Komunitas
    Flickr, del.icio.us, mySpace, dan youTube merupakan nama-nama yang semakin beken di tahun 2006. Satu hal yang menghubungkan layanan-layanan tersebut adalah bahwa layanan-layanan tersebut sukses membentuk komunitas. Mengapa Yahoo! sangat tertarik membeli Flickr? yang jelas, faktor komunitas inilah yang menjadi daya tarik utama Flickr.
    Issue-iisue yang berhubungan dengan komunitas seperti Social Network Analysis sangat mungkin menjadi salah satu area yang akan berkembang. SIGKDD Exploration pertengahan tahun lalu mengangkat link mining sebagai special topic. Walaupun aplikasi link mining tidak hanya social network saja, namun salah satu aplikasi besar link mining adalah mining social network.
    Task-task link mining seperti group detection, link prediction, dan classification merupakan task-task penting terutama dalam bisnis yang berkaitan dengan komunitas seperti CRM, layanan-layanan iklan, sistem rekomendasi, dan sejenisnya.
    Pengetahuan yang diperoleh dari komunitas dapat dipakai untuk memberikan layanan-layanan secara personal. Ini sangat berkaitan juga dengan personalisasi.

    Personalisasi
    Hal ini berkaitan dengan perkembangan layanan-layanan di internet dan software-software yang saat ini berkembang.
    Menjadi semakin personal. Kira-kira seperti itulah tren perkembangan software dan layanan di internet.
    Browser firefox dengan aneka plug in semakin diminati, Google berusaha menyempurnakan layanan search personal yang akan meningkatkan keakuratan search berdasarkan search yang pernah dilakukan seseorang. Bahkan, isunya Microsoft juga sedang mengembangkan sistem operasi yang basisnya plug in.
    Bisa jadi PC masa depan semakin personal, tinggal memasang plug in sesuai kebutuhan dan keinginan. Atau, mungkin hanya perlu browser saja. Web 2.0 yang sedang dalam pengembangan memungkinkan aplikasi berjalan secara online via browser saja. Lihat saja Google Docs dan Spreadsheets. Walaupun masih terus dikembangkan, bisa jadi ini akan menggeser microsoft office.
    Berkaitan dengan personalisasi salah satu yang menjadi highlight di tahun 2006 lalu adalah Netflix challenge. Selain permasalahannya yang menantang, hadiahnya juga menjadi salah satu daya tarik utama.

    Biomedical, Bioinformatics, dan Brain Informatics
    Area ini merupakan area yang berkembang pesat beberapa tahun belakangan. Kebutuhan akan penemuan obat-obatan baru, dan terapi yang paling tepat untuk suatu penyakit. Algoritma-algoritma yang sangat efisien dan efektif sangat diperlukan dalam mencari pola-pola yang tersembunyi karena data medis dan biologis yang sangat besar. Apalagi datanya juga bervariasi, mulai dari data, teks, bahkan gambar dan multimedia.
    Brain informatics muncul setelah adanya fMRI di mana alat ini dapat mendeteksi aktifasi otak. Dengan menggunakan alat ini, para peneliti dapat mempelajari cara makhluk hidup berpikir, terutama manusia. Bagaimana mental state manusia dalam merespon sebuah rangsangan misalnya suara, atau gambar yang dilihat dapat dipelajari. Sangat mungkin jika, web intelligence mengadaptasi model pengetahuan yang diperoleh dari sini. Internet dapat memberikan respon sesuai dengan yang diharapkan manusia.

    Text Mining
    Jumlah dokumen yang semakin lama semakin banyak, terutama sejak boomingnya blog, menjadikan text mining sebagai area yang sangat aktif berkembang.
    Tidak hanya dokumen di internet, dokumen-dokumen di area biomedical dan bioinformatics juga sangat luar biasa besar.
    Karena itu text mining akan menjadi salah satu area data mining yang akan berkembang pesat.

    Satu hal lagi yang pasti, area yang dijangkau data mining semakin lama akan semakin luas.
    Juga, semakin banyak jenis pengetahuan yang diperoleh dari berbagai data sangat memungkinkan untuk pengembangan Data Mining secara terintegrasi. Holistic Data Mining diprediksikan oleh Nucleus Research dalam top ten prediction for 2007 sebagai salah satu tren 2007.