[teknologia] Re: Sharing tentang Programming Competition
On 5/21/06, Felix Halim [EMAIL PROTECTED] wrote: Oh, kalo suka PC, pasti nantinya akan menyukai semua computer sciencestuffs, bahkan bakal menyesal karena tidak mempelajari mathematicssecara serius waktu kecil!Hiihihi.. orang yang menyukai teknologi belum tentu menyukai matematika, apalagi memahaminya. Penyuka teknologi itu ada beberapa level. Ada yang cuma suka produk-produknya aja, jadi kalau ada hp Nokia terbaru, pasti deh orang ini menjadi 1000 pembeli pertama. Tipe ini juga mengetahui banyak fasilitas-fasilitas yang ditawarkan oleh suatu produk, seperti GPRS, bluetooth, dan juga melek dengan istilah dual core, GSM, CDMA, IMEI. Tapi jangan ditanya implementasi! Walaupun mengerti dual core, tapi jangan ditanya arsitektur mikroprosesor! Bacaannya biasanya majalah teknologi kalangan umum. Seperti majalah hp, majalah komputer.. Lalu ada juga seseorang yang bisa programming, tapi tidak melek matematika, karena programmer sekarang memang tidak harus tau computer science. Mau ngompile? Download aja compiler, nggak usah belajar teori kompilasi! Mau generate bilangan random? Pake aja rand() --kalau di C-- nggak usah ngerti pseudorandom. Don't reinvent the wheel eh? Sebagian besar developer berada di sini, termasuk saya mungkin :) Level paling atas ya level nya Mas Felix, kalau kerja di Microsoft ya di bagian MSR (Microsoft Research) :) ... Menyukai disini dalam arti bisa meng-appreciate computer sciencestuff, betapa susahnya itu dibuat, tapi belum tentu terjun ke semuacomputer science stuffs karena teralu luas. Keliatannya katamengagummi lebih tepat disini :) Semua orang kagum melihat kecanggihan komputer. Tapi saya yakin, yang dikagumi bukanlah computer science stuff, tapi sesuatu yang lain. Beberapa hari yang lalu seorang teman berkata begini Hebat ya, manusia bisa membuat komputer padahal masih zaman dulu (maksudnya komputer ENIAC pada WWII). Yang dia kagumi adalah bagaimana orang dengan teknologi tahun 1940-an bisa membuat komputer. Jelas sekali bahwa temen saya ini tidak mengerti computer science karena membuat ENIAC tidak lebih susah daripada membuat Intel Pentium (dengan teknologi sekarang tentunya). Saya tau darimana kekaguman itu berasal. Orang yang tidak mengerti computer science pasti akan mengaitkan teknologi dengan hardware. Jadi, untuk membuat komputer, seseorang harus membuat IC sampai sepersekian nano seperti current PC, bagaimana mungkin pada zaman WWII orang bisa membuat komputer kalau begini? Kalau begini kejadiannya saya juga kagum! Ini keliru, komputer adalah sesuatu yang hardware-agnostic, yang penting itu arsitekturnya, bukan bagaimana mengimplementasikan arsitektur. Gerbang AND atau OR nggak harus pakai transistor silikon! Kalau pada perang dunia II belum ada transistor, pake aja 'transistor' tabung, nggak ada yang aneh di sini. Mungkin yang mas Dicky maksud dengan Ada banyak orang suka PC, tapibelum tentu suka pemrograman adalah yang suka PC hanya sebagai Spectactor doank, tapi kalo disuruh koding, males? begitu kan? :DDilemma yang sering dialami oleh mahasiswa fakultas ilmu komputer.. dia suka komputer (gaming, editing, deface situs) dan berniat menjadi pakar komputer, pas bertemu dengan koding, langsung deh.. salah jurusan. regards,Dicky Arinal --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---
[teknologia] Re: Sharing tentang Programming Competition
On 5/21/06, Dicky Arinal [EMAIL PROTECTED] wrote: On 5/21/06, Felix Halim [EMAIL PROTECTED] wrote: Untuk menentukan suatu program benar atau salah, Judge menggunakan Test Cases (just like how developers testing their program). Jadi juri biasanya punya Test Cases yang bisa mengeksploitasi bug di problem tersebut. Nah, jika peserta mengirim solusinya, si judge tinggal nge-run saja program dari si peserta, lalu dimasukkan input test cases dari juri. Jika semua test cases lolos, maka program peserta tersebut dianggap benar. Peserta mendapat nilai untuk problem tersebut. Bukan generate random cases yah? Biasanya Test Cases yang paling menjebak tidak tergenerate dari Random Cases :D Di TopCoder, ada satu session khusus namanya Challenge Phase dimana sesama coder bisa nge-challenge coding coder lain, dengan cara memberikan TestCase ke program orang yang mau di challenge... Kalo programnya outputnya ngaco, berarti Challenge Successful, maka si challenger dapet 50 points, dan si defender hilang pointnya semua untuk problem tersebut. Hanya geek yang suka. di binus sendiri aja peminatnya dikit sekali, padahal mahasiswa computer science nya ribuan. FYI, PC ini sebenarnya adalah mempertandingkan skills2 yang didapet dari courses yang ada di universitas: kayak course Data Structure Algorithms, course Artificial Intelligence, Number Theory, Numerical Methods, Linear Algebra, C Programming, etc... Hehhe.. ga usah maksa common people untuk menyukai hal2 teknis.. hal2 teknis itu high barrier to entry, cuma utk beberapa orang dan sebagian (besar) orang universitas itu cuma mau cari nilai, mana ada yang suka ama numerical methods, calculus, algebra.. beberapa dari mereka mungkin dapet A, tapi 'A' nya itu yaa cuma buat ujian aja. Saya rasa ini berlaku global, ga cuma di Indo. Betul sekali, itulah yang terasa di kampus saya. Tapi kalo orang yang dapet A itu mustinya memang jago. Kalo ternyata tidak, berarti ada yang salah dengan penilaian di Universitasnya. Kalau suatu saat pemrograman menjadi populer di Indonesia, nanti tidak ada Indonesian Idol, adanya Indonesian Coder, yang jadi jurinya tokoh IT Indonesia kayak Pak BR, Pak Onno, dan mungkin kalo Pak Patriawan kalau sudah pulang dari SV.. :) Untuk menjadi bintang coder, harus juara di TopCoder. Kalau tidak, saya rasa belum bisa diakui sebagai bintang coder sungguhan. Bintang coder sekarang adalah Petr, lihat di http://www.topcoder.com/tc Bagian Top 10 kanan itulah Bintang Coder dunia. Coba Googling nama mereka satu persatu, udah juara PC ribuan kali sejak kecil. (hiperbola) Kayaknya butuh banyak seminar tentang PC agar masyarakat indo mengerti apa itu PC, dan mulai menyukai PC seperti menyukai game tembak tembakan babi buta gitu. Kalao bisa seperti ini, semua hambatan hilang deh. Ada banyak orang suka PC, tapi belum tentu suka pemrograman, dan beberapa orang yang suka pemrograman belum tentu suka computer science. Cuma creame de la creame yang mengetahui dyamic programming, memoization, automata dan sebagainya. Oh, kalo suka PC, pasti nantinya akan menyukai semua computer science stuffs, bahkan bakal menyesal karena tidak mempelajari mathematics secara serius waktu kecil! Menyukai disini dalam arti bisa meng-appreciate computer science stuff, betapa susahnya itu dibuat, tapi belum tentu terjun ke semua computer science stuffs karena teralu luas. Keliatannya kata mengagummi lebih tepat disini :) Mungkin yang mas Dicky maksud dengan Ada banyak orang suka PC, tapi belum tentu suka pemrograman adalah yang suka PC hanya sebagai Spectactor doank, tapi kalo disuruh koding, males? begitu kan? :D Tapi kalo yang benar2 suka PC sampai ikut PC, sudah pasti dia suka Pemogramman juga. (PC disini adalah Programming Contest!) Felix Halim --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---
[teknologia] Re: Sharing tentang Programming Competition
Felix Halim wrote: On 5/21/06, Dicky Arinal [EMAIL PROTECTED] wrote: On 5/21/06, Felix Halim [EMAIL PROTECTED] wrote: Untuk menentukan suatu program benar atau salah, Judge menggunakan Test Cases (just like how developers testing their program). Jadi juri biasanya punya Test Cases yang bisa mengeksploitasi bug di problem tersebut. Nah, jika peserta mengirim solusinya, si judge tinggal nge-run saja program dari si peserta, lalu dimasukkan input test cases dari juri. Jika semua test cases lolos, maka program peserta tersebut dianggap benar. Peserta mendapat nilai untuk problem tersebut. Bukan generate random cases yah? Biasanya Test Cases yang paling menjebak tidak tergenerate dari Random Cases :D Di TopCoder, ada satu session khusus namanya Challenge Phase dimana sesama coder bisa nge-challenge coding coder lain, dengan cara memberikan TestCase ke program orang yang mau di challenge... Kalo programnya outputnya ngaco, berarti Challenge Successful, maka si challenger dapet 50 points, dan si defender hilang pointnya semua untuk problem tersebut. btw thanks atas informasinya. tadinya saya kira soalnya itu mirip2 membangun sistem sehingga bisa coding lebih dari 5000-10,000 lines :)) Challenge coding orang lainya menggunakan apa ? boundary checking ? berapa permutation ? apakah dinilai juga program yg paling efisien dan memakan paling sedikit cpu cycle ? Hanya geek yang suka. di binus sendiri aja peminatnya dikit sekali, padahal mahasiswa computer science nya ribuan. FYI, PC ini sebenarnya adalah mempertandingkan skills2 yang didapet dari courses yang ada di universitas: kayak course Data Structure Algorithms, course Artificial Intelligence, Number Theory, Numerical Methods, Linear Algebra, C Programming, etc... Hehhe.. ga usah maksa common people untuk menyukai hal2 teknis.. hal2 teknis itu high barrier to entry, cuma utk beberapa orang dan sebagian (besar) orang universitas itu cuma mau cari nilai, mana ada yang suka ama numerical methods, calculus, algebra.. beberapa dari mereka mungkin dapet A, tapi 'A' nya itu yaa cuma buat ujian aja. Saya rasa ini berlaku global, ga cuma di Indo. Betul sekali, itulah yang terasa di kampus saya. Tapi kalo orang yang dapet A itu mustinya memang jago. Kalo ternyata tidak, berarti ada yang salah dengan penilaian di Universitasnya. Kalau suatu saat pemrograman menjadi populer di Indonesia, nanti tidak ada Indonesian Idol, adanya Indonesian Coder, yang jadi jurinya tokoh IT Indonesia kayak Pak BR, Pak Onno, dan mungkin kalo Pak Patriawan kalau sudah pulang dari SV.. :) Untuk menjadi bintang coder, harus juara di TopCoder. Kalau tidak, saya rasa belum bisa diakui sebagai bintang coder sungguhan. mungkin kalo ada PC di Indonesia, dosenya felix seperti mark p.e. kandidat yg bagus untuk jadi juri :) Oh, kalo suka PC, pasti nantinya akan menyukai semua computer science stuffs, bahkan bakal menyesal karena tidak mempelajari mathematics secara serius waktu kecil! Menyukai disini dalam arti bisa meng-appreciate computer science stuff, betapa susahnya itu dibuat, tapi belum tentu terjun ke semua computer science stuffs karena teralu luas. Keliatannya kata mengagummi lebih tepat disini :) he he .. iya saya setuju point ini. point dimana CS sangat dan terlalu luas itu benar sekali , sampai kadang2 saya mikir kenapa gak semua anak sma saja terjun ke CS karena peluangnya limitless. -mcp X-Google-Language: INDONESIAN,ASCII-7-bit Received: by 10.11.53.63 with SMTP id b63mr98873cwa; Sun, 21 May 2006 04:08:07 -0700 (PDT) X-Google-Token: XAd97wwAAABSzHH6i-zch1sxWkMFrU4i Received: from 71.135.47.95 by g10g2000cwb.googlegroups.com with HTTP; Sun, 21 May 2006 11:08:07 + (UTC) From: m.c. cptrwn [EMAIL PROTECTED] To: teknologia teknologia@googlegroups.com Subject: Re: Sharing tentang Programming Competition Date: Sun, 21 May 2006 11:08:07 - Message-ID: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3,gzip(gfe),gzip(gfe) Mime-Version: 1.0 Content-Type: text/plain Felix Halim wrote: On 5/21/06, Dicky Arinal [EMAIL PROTECTED] wrote: On 5/21/06, Felix Halim [EMAIL PROTECTED] wrote: Untuk menentukan suatu program benar atau salah, Judge menggunakan Test Cases (just like how developers testing their program). Jadi juri biasanya punya Test Cases yang bisa mengeksploitasi bug di problem tersebut. Nah, jika peserta mengirim solusinya, si judge tinggal nge-run saja program dari si peserta, lalu dimasukkan input test cases dari juri. Jika semua test cases lolos, maka program peserta tersebut dianggap benar. Peserta mendapat nilai untuk problem tersebut. Bukan generate random cases yah? Biasanya
[teknologia] Re: Sharing tentang Programming Competition
On 5/21/06, m.c. cptrwn [EMAIL PROTECTED] wrote: Biasanya Test Cases yang paling menjebak tidak tergenerate dari Random Cases :D Di TopCoder, ada satu session khusus namanya Challenge Phase dimana sesama coder bisa nge-challenge coding coder lain, dengan cara memberikan TestCase ke program orang yang mau di challenge... Kalo programnya outputnya ngaco, berarti Challenge Successful, maka si challenger dapet 50 points, dan si defender hilang pointnya semua untuk problem tersebut. btw thanks atas informasinya. tadinya saya kira soalnya itu mirip2 membangun sistem sehingga bisa coding lebih dari 5000-10,000 lines :)) Ini mungkin PC untuk bagian Development Competition nya TopCoder. Tipe PC ini berbeda dengan yang PC untuk bagian Algorithms Competition. Untuk Development Competition bisa jadi 5000 sampe 10,000 baris. Mas Sindunata Sudarmaji bisa ditanyain lebih lanjut... tapi untuk Algorithms Competition rata2 paling 60 baris untuk 1 soal Algorithms (biasanya sekali lomba TopCoder kasih 3 soal Algorithms untuk di solve dalam 75 menit). Challenge coding orang lainya menggunakan apa ? boundary checking ? Setiap soal Algorithm competition selalu ada input output format yang diberitahu di problem statementnya. Kita nge challenge code orang lain kalau: 1. keliatan bug yang jelas contohnya, kurang pengecekan untuk kondisi tertentu. Maka kita challenge dengan input yang tidak dihandle oleh orang tersebut, otomatis programnya pasti outputnya ngaco :D biasanya justru banyak sekali kondisi kondisi yang sangat kecil yang terlupakan oleh programmer... (karena disepelekan). Disitulah kita bisa cari points, challenge coder yang gak baca soal dengan teliti ato emang salah ketik :D 2. orangnya salah make algorithm kalo input rangenya misalkan n = 1000. tapi di coding orang tersebut ada begini: for i = 1 .. n for j = 1.. n for k = 1..n do abcdef; Nah udah pasti gagal tuh algoritma, karena untuk n nya 1000 pasti dia berjalan 1000,000,000 kali looping dan karena komputer TopCoder dalam 2 detik hanya bisa looping sebanyak 50 jutaan, yah pasti coding orang tersebut berjalan lebih dari 2 detik (50 detik tepatnya). Maka, challenge aja dengan input sebesar 1000, pasti programnya TimeLimit (timelimit itu kalo program berjalan lebih lama dari 2 detik, maka dianggap salah). untuk solve problem yang inputnya n=1000 harus pake algo yang lebih kecil dari O(N^2). 3. Tricky cases kalo kita punya testcase yang tricky abis, kita bisa gambling nge challenge orang pake tricky cases kita :D berapa permutation ? apakah dinilai juga program yg paling efisien dan memakan paling sedikit cpu cycle ? Asalkan untuk semua input yang dicobakan ke program peserta tersebut semua berjalan kurang dari 2 detik semuanya produce correct output, maka programnya dianggap benar. Untuk menjadi bintang coder, harus juara di TopCoder. Kalau tidak, saya rasa belum bisa diakui sebagai bintang coder sungguhan. mungkin kalo ada PC di Indonesia, dosenya felix seperti mark p.e. kandidat yg bagus untuk jadi juri :) saya cuman bisa coding, mana bisa jadi dosen :P Menyukai disini dalam arti bisa meng-appreciate computer science stuff, betapa susahnya itu dibuat, tapi belum tentu terjun ke semua computer science stuffs karena teralu luas. Keliatannya kata mengagummi lebih tepat disini :) he he .. iya saya setuju point ini. point dimana CS sangat dan terlalu luas itu benar sekali , sampai kadang2 saya mikir kenapa gak semua anak sma saja terjun ke CS karena peluangnya limitless. Terutama kalo udah ngeliat program2 open-source yang canggih canggih.. pasti ada rasa kagum di hati ini. Tapi bagi yang bukan pencinta pemograman mungkin program opensource yang canggih itu terlihat biasa saja. Btw, Lihat dibawah... kok gmail ngeproduce junk kayak gini yah? Messagenya jadi dobel semua... Felix Halim -mcp X-Google-Language: INDONESIAN,ASCII-7-bit Received: by 10.11.53.63 with SMTP id b63mr98873cwa; Sun, 21 May 2006 04:08:07 -0700 (PDT) X-Google-Token: XAd97wwAAABSzHH6i-zch1sxWkMFrU4i Received: from 71.135.47.95 by g10g2000cwb.googlegroups.com with HTTP; Sun, 21 May 2006 11:08:07 + (UTC) From: m.c. cptrwn [EMAIL PROTECTED] To: teknologia teknologia@googlegroups.com Subject: Re: Sharing tentang Programming Competition Date: Sun, 21 May 2006 11:08:07 - Message-ID: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3,gzip(gfe),gzip(gfe) Mime-Version: 1.0 Content-Type: text/plain Felix Halim wrote: On 5/21/06, Dicky Arinal [EMAIL PROTECTED] wrote: On 5/21/06, Felix Halim [EMAIL PROTECTED] wrote: Untuk menentukan suatu program benar atau salah, Judge menggunakan Test Cases (just like how developers testing
[teknologia] Re: Sharing tentang Programming Competition
Felix Halim wrote: On 5/21/06, m.c. cptrwn [EMAIL PROTECTED] wrote: Biasanya Test Cases yang paling menjebak tidak tergenerate dari Random Cases :D Kita nge challenge code orang lain kalau: 1. keliatan bug yang jelas contohnya, kurang pengecekan untuk kondisi tertentu. Maka kita challenge dengan input yang tidak dihandle oleh orang tersebut, otomatis programnya pasti outputnya ngaco :D biasanya justru banyak sekali kondisi kondisi yang sangat kecil yang terlupakan oleh programmer... (karena disepelekan). Disitulah kita bisa cari points, challenge coder yang gak baca soal dengan teliti ato emang salah ketik :D 2. orangnya salah make algorithm kalo input rangenya misalkan n = 1000. tapi di coding orang tersebut ada begini: for i = 1 .. n for j = 1.. n for k = 1..n do abcdef; Nah udah pasti gagal tuh algoritma, karena untuk n nya 1000 pasti dia berjalan 1000,000,000 kali looping dan karena komputer TopCoder dalam 2 detik hanya bisa looping sebanyak 50 jutaan, yah pasti coding orang tersebut berjalan lebih dari 2 detik (50 detik tepatnya). Maka, challenge aja dengan input sebesar 1000, pasti programnya TimeLimit (timelimit itu kalo program berjalan lebih lama dari 2 detik, maka dianggap salah). untuk solve problem yang inputnya n=1000 harus pake algo yang lebih kecil dari O(N^2). 3. Tricky cases kalo kita punya testcase yang tricky abis, kita bisa gambling nge challenge orang pake tricky cases kita :D Sip sip ... good sharing ! ada contoh tricky case ? Btw gantian sharing :)) , kalau di qa cycle pada produk real time , tricky case ini bisa merupakan 'combination of events' yang tidak dihandle oleh systems dan mengakibatkan chain of reactios. Ada beberapa hal yang harus di-exploit oleh engineer : 1. task prioritization (semaphore) 2. cpu utilization 3. memory (leaks,consumptions,etc). contoh yang paling sederhana adalah hanya jika menggunakan printf() untuk logging messages. Dalam sistem apapun jika tidak ada fungsi kontrol (buffered) untuk memprint log message, dijamin cpu utilisasi bisa tinggi. Dan jika cpu utilisasi tinggi, biasanya hanya task tertentu yg menguasai cpu, sementara task lain yg bertugas untuk mengontrol system,networks atau forwarding packet terhenti. Walhasil , triple effects , networks down/router crash. mungkin kalo ada PC di Indonesia, dosenya felix seperti mark p.e. kandidat yg bagus untuk jadi juri :) saya cuman bisa coding, mana bisa jadi dosen :P maksud saya jugdnya pak mark p.e. sang dosen binus (mudah2an felix kenal) :) Menyukai disini dalam arti bisa meng-appreciate computer science stuff, betapa susahnya itu dibuat, tapi belum tentu terjun ke semua computer science stuffs karena teralu luas. Keliatannya kata mengagummi lebih tepat disini :) he he .. iya saya setuju point ini. point dimana CS sangat dan terlalu luas itu benar sekali , sampai kadang2 saya mikir kenapa gak semua anak sma saja terjun ke CS karena peluangnya limitless. Terutama kalo udah ngeliat program2 open-source yang canggih canggih.. pasti ada rasa kagum di hati ini. Tapi bagi yang bukan pencinta pemograman mungkin program opensource yang canggih itu terlihat biasa saja. Kalau dari pengalaman saya, kadang2 bukan hanya programer senior yang bikin hasil produk bagus tapi yg terpenting adalah software engineering management dan teamwork, dalam kasus ini saya merefer ke real time produk yang punya 5-10 juta codes :) -mcp X-Google-Language: INDONESIAN,ASCII-7-bit Received: by 10.11.53.63 with SMTP id b63mr101835cwa; Sun, 21 May 2006 07:45:03 -0700 (PDT) X-Google-Token: HOwNhQwAAADmn9FjNAMJyLk-PJYWLsAR Received: from 71.135.47.95 by j73g2000cwa.googlegroups.com with HTTP; Sun, 21 May 2006 14:45:03 + (UTC) From: m.c. cptrwn [EMAIL PROTECTED] To: teknologia teknologia@googlegroups.com Subject: Re: Sharing tentang Programming Competition Date: Sun, 21 May 2006 14:45:03 - Message-ID: [EMAIL PROTECTED] In-Reply-To: [EMAIL PROTECTED] References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3,gzip(gfe),gzip(gfe) Mime-Version: 1.0 Content-Type: text/plain Felix Halim wrote: On 5/21/06, m.c. cptrwn [EMAIL PROTECTED] wrote: Biasanya Test Cases yang paling menjebak tidak tergenerate dari Random Cases :D Kita nge challenge code orang lain kalau: 1. keliatan bug yang jelas contohnya, kurang pengecekan untuk kondisi tertentu. Maka kita challenge dengan input yang tidak dihandle oleh orang tersebut, otomatis programnya pasti outputnya ngaco :D biasanya justru banyak sekali kondisi kondisi yang sangat kecil yang terlupakan oleh programmer... (karena disepelekan). Disitulah kita bisa cari points, challenge coder yang gak baca soal
[teknologia] Re: Sharing tentang Programming Competition
On 5/16/06, Dicky Arinal [EMAIL PROTECTED] wrote: Sebenarnya saya pingin tau.. misalkan Alan Turing ikutan kompetisi kayak ginian, apa dia bisa menang? Masalahnya ada pada waktu sih.. sempit sekali. Kalau real world problem kan bisa di solve dengan waktu yang manusiawi CMIIW. Problem2 yang di design di programming contest itu solvable untuk waktu yang dikasih. Kalau alasannya adalah waktunya sempit, semua contestant juga mempunyai waktu yang sempit yang sama :D, sekarang tinggal masalah siapa yang bisa memanfaatkan waktu yang sempit tersebut untuk memikirkan solusi dari problem tersebut dan code it without a single error. Yup, without bug (the output must be match exactly to the given format). Tapi biasanya untuk dapet solusinya aja udah setengah mati, banyakan bengong-bengong buangin waktu mikirin solusinya :D, setelah dapet, codingnya sebentar paling 30 barisan. Lix, kamu kalau baca buku kayak MIT Press' Intro to Algorithm atau Donald Knuth's Algorithm apakah definisi2 formal penuh dengan persamaan matematikanya juga dilahap? Saya baca buku Intro to Algorithms by CLR, persamaan matematikanya saya baca semampu saya. Kalo gak ngerti diskip.. mudah2an beberapa tahun lagi mengerti maksudnya apa :D Kalo Donald Knuth itu udah jereng deh bacanya, keliatannya teralu dalem. Yang Intro to Algorithms itu jauh lebih manusiawi. Itu buku cocok tuch untuk programming contest sebagai background + collection of algorithms. Kalo mau dapet tips lebih banyak lagi, lihat website koko saya: http://www.comp.nus.edu.sg/~stevenha/programming/acmoj.html disitu direkomendasiin buku2 yang bagus untuk programming contest, serta beberapa hints untuk solving problems di UVA (http://acm.uva.es/p). Felix Halim X-Google-Language: INDONESIAN,ASCII-7-bit Received: by 10.54.68.5 with SMTP id q5mr149665wra; Sat, 20 May 2006 09:52:42 -0700 (PDT) Return-Path: [EMAIL PROTECTED] Received: from nz-out-0102.google.com ([64.233.162.202]) by mx.googlegroups.com with ESMTP id v23si425165cwb.2006.05.20.09.52.41; Sat, 20 May 2006 09:52:42 -0700 (PDT) Received-SPF: pass (googlegroups.com: domain of [EMAIL PROTECTED] designates 64.233.162.202 as permitted sender) DomainKey-Status: good (test mode) Received: by nz-out-0102.google.com with SMTP id 16so44085nzp for teknologia@googlegroups.com; Sat, 20 May 2006 09:52:41 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s¾ta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ZflKaKuC4U1gS/hWL2GR8KXn4KDaf75rw0MQvPS8LGNjjjN4xpYz+++4bbV5HYro+tA89sOQAdVGSEXBZYrsHFlhpK2XX/EcwDyzU7BTY/x4GUg+wLCzyqjyPvFAIT5zkR0H+FWoqovAUYxD8M8HAZbuzz9eg3dVSLGBcZ3b9tsReceived: by 10.36.41.3 with SMTP id o3mr1797279nzo; Sat, 20 May 2006 09:52:41 -0700 (PDT) Received: by 10.36.134.19 with HTTP; Sat, 20 May 2006 09:52:41 -0700 (PDT) Message-ID: [EMAIL PROTECTED] Date: Sat, 20 May 2006 23:52:41 +0700 From: Felix Halim [EMAIL PROTECTED] To: teknologia@googlegroups.com Subject: Re: [teknologia] Re: Sharing tentang Programming Competition In-Reply-To: [EMAIL PROTECTED] Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable References: [EMAIL PROTECTED] [EMAIL PROTECTED] On 5/16/06, Dicky Arinal [EMAIL PROTECTED] wrote: Sebenarnya saya pingin tau.. misalkan Alan Turing ikutan kompetisi kayak ginian, apa dia bisa menang? Masalahnya ada pada waktu sih.. sempit sekali. Kalau real world problem kan bisa di solve dengan waktu yang manusiawi CMIIW. Problem2 yang di design di programming contest itu solvable untuk waktu yang dikasih. Kalau alasannya adalah waktunya sempit, semua contestant juga mempunyai waktu yang sempit yang sama :D, sekarang tinggal masalah siapa yang bisa memanfaatkan waktu yang sempit tersebut untuk memikirkan solusi dari problem tersebut dan code it without a single error. Yup, without bug (the output must be match exactly to the given format). Tapi biasanya untuk dapet solusinya aja udah setengah mati, banyakan bengong-bengong buangin waktu mikirin solusinya :D, setelah dapet, codingnya sebentar paling 30 barisan. Lix, kamu kalau baca buku kayak MIT Press' Intro to Algorithm atau Donald Knuth's Algorithm apakah definisi2 formal penuh dengan persamaan matematikanya juga dilahap? Saya baca buku Intro to Algorithms by CLR, persamaan matematikanya saya baca semampu saya. Kalo gak ngerti diskip.. mudah2an beberapa tahun lagi mengerti maksudnya apa :D Kalo Donald Knuth itu udah jereng deh bacanya, keliatannya teralu dalem. Yang Intro to Algorithms itu jauh lebih manusiawi. Itu buku cocok tuch untuk programming contest sebagai background + collection of algorithms. Kalo mau dapet tips lebih banyak lagi, lihat website koko saya: http://www.comp.nus.edu.sg/~stevenha/programming/acmoj.html disitu direkomendasiin buku2 yang bagus untuk programming contest, serta beberapa hints untuk solving
[teknologia] Re: Sharing tentang Programming Competition
Felix Halim wrote: On 5/16/06, Dicky Arinal [EMAIL PROTECTED] wrote: Sebenarnya saya pingin tau.. misalkan Alan Turing ikutan kompetisi kayak ginian, apa dia bisa menang? Masalahnya ada pada waktu sih.. sempit sekali. Kalau real world problem kan bisa di solve dengan waktu yang manusiawi CMIIW. Problem2 yang di design di programming contest itu solvable untuk waktu yang dikasih. Kalau alasannya adalah waktunya sempit, semua contestant juga mempunyai waktu yang sempit yang sama :D, sekarang tinggal masalah siapa yang bisa memanfaatkan waktu yang sempit tersebut untuk memikirkan solusi dari problem tersebut dan code it without a single error. Yup, without bug (the output must be match exactly to the given format). Tapi biasanya untuk dapet solusinya aja udah setengah mati, banyakan bengong-bengong buangin waktu mikirin solusinya :D, setelah dapet, codingnya sebentar paling 30 barisan. Hmmm, cuman 30 baris ? lalu bagaimana si judge bisa menentukan siapa yg paling baik jika jawabanya singkat ? Apakah soal2nya sedikit banyak pernah dibahas di buku tertentu ? Oh ya, hambatan di bidang programming contest ini apa sich ? Apakah Fokus untuk persiapan ? stress menghadapi unpredictable questions ? Saya lihat kontesnya mirip2 dengan ccie labs dimana mikir untuk solusinya yg lama sementara waktu yg diiberikan singkat. cmiiw. -mcp --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---
[teknologia] Re: Sharing tentang Programming Competition
.google.com with SMTP id z31so539737nzd for teknologia@googlegroups.com; Sat, 20 May 2006 19:57:27 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s¾ta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=rWyR03XsbH6H7BS3rWSjmUZ6HGRXYwmDqI/QiPjNsjm1XF5rkNAVAJshTL3U4oOd6h2naNajzzuLueAvO2NEG9Ll+/mYYeKHT4zPN0Fw0TABkBXC93+/IUmbO01tZZocxwGzVsZnJYZduO66L3WR1gN7wfiomLOdQrSFGrtlxWwReceived: by 10.36.38.12 with SMTP id l12mr3423048nzl; Sat, 20 May 2006 19:57:27 -0700 (PDT) Received: by 10.36.134.19 with HTTP; Sat, 20 May 2006 19:57:27 -0700 (PDT) Message-ID: [EMAIL PROTECTED] Date: Sun, 21 May 2006 09:57:27 +0700 From: Felix Halim [EMAIL PROTECTED] To: teknologia@googlegroups.com Subject: Re: [teknologia] Re: Sharing tentang Programming Competition In-Reply-To: [EMAIL PROTECTED] Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] On 5/21/06, m.c. cptrwn [EMAIL PROTECTED] wrote: Hmmm, cuman 30 baris ? lalu bagaimana si judge bisa menentukan siapa yg paling baik jika jawabanya singkat ? Apakah soal2nya sedikit banyak pernah dibahas di buku tertentu ? Untuk menentukan suatu program benar atau salah, Judge menggunakan Test Cases (just like how developers testing their program). Jadi juri biasanya punya Test Cases yang bisa mengeksploitasi bug di problem tersebut. Nah, jika peserta mengirim solusinya, si judge tinggal nge-run saja program dari si peserta, lalu dimasukkan input test cases dari juri. Jika semua test cases lolos, maka program peserta tersebut dianggap benar. Peserta mendapat nilai untuk problem tersebut. contoh soal gampang yang bisa disolve dalam 30 baris: soal: http://acm.uva.es/p/v4/424.html jawaban : http://felix-halim.net/oj/424.php satu lagi yang menarik, house of santa claus untuk belajar recursion: soal: http://acm.uva.es/p/v2/291.html jawaban: http://felix-halim.net/oj/291.php tapi biasanya problem2 yang ada di TopCoder itu requires Dynamic Programming kayak soal Arbitrage ini (susah): soal: http://acm.uva.es/p/v1/104.html jawaban: http://felix-halim.net/oj/104.php Untuk soal tipe2 lainnya (Recursion, BFS, Graph), bisa diliat di: http://felix-halim.net/oj/tutorials.php Btw, 30 LOC yang saya maksud itu untuk coding algonya, saya tidak menghitung LOC untuk baca inputnya. Kalo mo diitung keseluruhan, biasanya 60 baris (30 barisnya itu coding algo nya, 30 baris lagi itu coding untuk baca input). Oh ya, hambatan di bidang programming contest ini apa sich ? Apakah Fokus untuk persiapan ? stress menghadapi unpredictable questions ? Hambatan di bidang programming contest adalah (IMHO): 1. kurangnya waktu latihan skill untuk sukses si programming competition gak jauh beda dengan skill yang dibutuhkan untuk sukses di dunia sepakbola (kebetulan saya penggemar bola juga). jadi, untuk suatu pemain sepakbola supaya sukses, dibutuhkan latihan yang intensif, dan biasanya sejak anak2 sudah dilatih cara gocek, cara dribble, cara nge-shoot, cara team-works, oper one-two, etc... sehingga pas masa2 gemilangnya menjadi yang terbaik. untuk programming contest (PC) pun begitu. cara ngesolve problem Greedy, cara ngesolve problem Graph, problem Net-flow, problem Dynamic Programming, problem Ad-Hoc, etc... nah semakin banyak latihan, maka akan semakin mahir dalam menggocek bola, dalam PC akan semakin cepat dia bisa nge solve problem (otomatis jumlah problems yang bisa di solve semakin banyak, dan problem yang susah bisa dikerjakan dengan gampang oleh yang skillful ini). 2. Fasilitas kurang memadai kurangnya publikasi Di Indo hanya segelintir) anak2 indo yang tahu PC sejak waktu SMA (yang mengikuti Tim Olimpiade Komputer Indonesia). Beberapa pada tahu PC sejak masuk Kuliah dan sisanya biasanya gak ada yang tahu apa itu PC... (coba bikin polling di milist ini, siapa yang tahu ttg PC, siapa yang enggak). - ini gara2 kurangnya publikasi... berita berita di indo kebanyakan berita selebritis, berita orang ngerampok, pembunuhan, etc... sampe saya aja males bukanya. Masih belum ada suatu media kayak koran PC - kalo koran bola udah banyak :D Kalaupun publikasinya sudah mantap, udah ada Koran Programming Contest tapi itu pun belum cukup. Coba saja hitung berapa banyak anak SMA yang punya komputer pribadi dirumah dan bisa internet untuk solving problems di UVA? ato di TopCoder tiap minggu (gak harus hari minggu loh yah)? - nah kalo ini kurang fasilitas. 3. sangat sedikit peminatnya Hanya geek yang suka. di binus sendiri aja peminatnya dikit sekali, padahal mahasiswa computer science nya ribuan. FYI, PC ini sebenarnya adalah mempertandingkan skills2 yang didapet dari courses yang ada di universitas: kayak course Data Structure Algorithms, course Artificial Intelligence, Number Theory, Numerical Methods, Linear Algebra
[teknologia] Re: Sharing tentang Programming Competition
On 5/21/06, Felix Halim [EMAIL PROTECTED] wrote: Untuk menentukan suatu program benar atau salah, Judge menggunakanTest Cases (just like how developers testing their program). Jadi juribiasanya punya Test Cases yang bisa mengeksploitasi bug di problemtersebut. Nah, jika peserta mengirim solusinya, si judge tinggal nge-run saja program dari si peserta, lalu dimasukkan input test casesdari juri. Jika semua test cases lolos, maka program peserta tersebutdianggap benar. Peserta mendapat nilai untuk problem tersebut. Bukan generate random cases yah? Hanya geek yang suka. di binus sendiri aja peminatnya dikit sekali, padahal mahasiswa computer science nya ribuan. FYI, PC ini sebenarnyaadalah mempertandingkan skills2 yang didapet dari courses yang ada diuniversitas: kayak course Data Structure Algorithms, courseArtificial Intelligence, Number Theory, Numerical Methods, Linear Algebra, C Programming, etc...Hehhe.. ga usah maksa common people untuk menyukai hal2 teknis.. hal2 teknis itu high barrier to entry, cuma utk beberapa orang dan sebagian (besar) orang universitas itu cuma mau cari nilai, mana ada yang suka ama numerical methods, calculus, algebra.. beberapa dari mereka mungkin dapet A, tapi 'A' nya itu yaa cuma buat ujian aja. Saya rasa ini berlaku global, ga cuma di Indo. Kalau suatu saat pemrograman menjadi populer di Indonesia, nanti tidak ada Indonesian Idol, adanya Indonesian Coder, yang jadi jurinya tokoh IT Indonesia kayak Pak BR, Pak Onno, dan mungkin kalo Pak Patriawan kalau sudah pulang dari SV.. :) Heran banget kenapa pada gak suka PC. pada sukanya main game CS, Dota,sekarang ada apa lagi tuh yang baru... pokoknya tembak tembakan gitulah, gebuk2an, serang sana serang sini.Jangan salah, seandainya ada orang yang kenal programming sejak kecil, alasannya pasti mau buat game. Dan game keluaran terbaru kayak Gears of War tentu saja menggunakan teknologi grafis terkini. Bermain game memang menyenangkan, but the effort to create a game is no picnic. Kayaknya butuh banyak seminar tentang PC agar masyarakat indomengerti apa itu PC, dan mulai menyukai PC seperti menyukai game tembak tembakan babi buta gitu. Kalao bisa seperti ini, semua hambatanhilang deh.Ada banyak orang suka PC, tapi belum tentu suka pemrograman, dan beberapa orang yang suka pemrograman belum tentu suka computer science. Cuma creame de la creame yang mengetahui dyamic programming, memoization, automata dan sebagainya. regards,Dicky Arinal --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---
[teknologia] Re: Sharing tentang Programming Competition
On 5/21/06, Dicky Arinal [EMAIL PROTECTED] wrote: ... Kalau suatu saat pemrograman menjadi populer di Indonesia, nanti tidak ada Indonesian Idol, adanya Indonesian Coder, yang jadi jurinya tokoh IT Indonesia kayak Pak BR, ... Coding itu binatang yang berbeda. Jadi belum tentu saya cocok untuk menjadi juri coding lho. Sekarang saja masih belajar coding lagi. :) Poin saya, jangan kita terpengaruh dengan publisitas yang menganggap IT itu sama semua. Selebriti IT seperti saya ini harus di-qualify dulu :) Jangan-jangan hanya ngomong doang. he he he. -- budi X-Google-Language: INDONESIAN,ASCII-7-bit Received: by 10.54.68.12 with SMTP id q12mr161347wra; Sat, 20 May 2006 22:29:23 -0700 (PDT) Return-Path: [EMAIL PROTECTED] Received: from py-out-1112.google.com ([64.233.166.178]) by mx.googlegroups.com with ESMTP id v23si572782cwb.2006.05.20.22.29.22; Sat, 20 May 2006 22:29:23 -0700 (PDT) Received-SPF: pass (googlegroups.com: domain of [EMAIL PROTECTED] designates 64.233.166.178 as permitted sender) DomainKey-Status: good (test mode) Received: by py-out-1112.google.com with SMTP id x66so787743pye for teknologia@googlegroups.com; Sat, 20 May 2006 22:29:22 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s¾ta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=trLTAnyrVDGlZwNc1foFkikYPFJ7YkvXJeFrAU/3H32XTKD1ierL7U4aUqP400ZVDoGjdsF/ekEcMGoMu4EiRBinQZTCezCBaZ+WhPYa1CIqPpPc+0ksdAPhOuoQ3oleqB1bY1twn2zA9wX23ze2DFcd65juNqJuTrZx63QmId8Received: by 10.35.127.7 with SMTP id e7mr2215626pyn; Sat, 20 May 2006 22:29:22 -0700 (PDT) Received: by 10.35.122.14 with HTTP; Sat, 20 May 2006 22:29:22 -0700 (PDT) Message-ID: [EMAIL PROTECTED] Date: Sun, 21 May 2006 12:29:22 +0700 From: Budi Rahardjo [EMAIL PROTECTED] To: teknologia@googlegroups.com Subject: Re: [teknologia] Re: Sharing tentang Programming Competition In-Reply-To: [EMAIL PROTECTED] Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable References: [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] On 5/21/06, Dicky Arinal [EMAIL PROTECTED] wrote: ... Kalau suatu saat pemrograman menjadi populer di Indonesia, nanti tidak ada Indonesian Idol, adanya Indonesian Coder, yang jadi jurinya tokoh IT Indonesia kayak Pak BR, ... Coding itu binatang yang berbeda. Jadi belum tentu saya cocok untuk menjadi juri coding lho. Sekarang saja masih belajar coding lagi. :) Poin saya, jangan kita terpengaruh dengan publisitas yang menganggap IT itu sama semua. Selebriti IT seperti saya ini harus di-qualify dulu :) Jangan-jangan hanya ngomong doang. he he he. -- budi --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---
[teknologia] Re: Sharing tentang Programming Competition
Sebenarnya saya pingin tau.. misalkan Alan Turing ikutan kompetisi kayak ginian, apa dia bisa menang? Masalahnya ada pada waktu sih.. sempit sekali. Kalau real world problem kan bisa di solve dengan waktu yang manusiawi CMIIW. Lix, kamu kalau baca buku kayak MIT Press' Intro to Algorithm atau Donald Knuth's Algorithm apakah definisi2 formal penuh dengan persamaan matematikanya juga dilahap? --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---
[teknologia] Re: Sharing tentang Programming Competition
On 5/16/06, Dicky Arinal [EMAIL PROTECTED] wrote: Sebenarnya saya pingin tau.. misalkan Alan Turing ikutan kompetisi kayak ginian, apa dia bisa menang? Masalahnya ada pada waktu sih.. sempit sekali. Kalau real world problem kan bisa di solve dengan waktu yang manusiawi CMIIW. Coba lihat perjalanan karir penyanyi atau musisi: - ada yang menjadi sohor lewat festival (dulu Harvey Maleiholo sampai dapat predikat penyanyi festival); - ada yang bakatnya ditemukan oleh produser; - ada yang berkesenian lewat petualangan dari panggung ke panggung (artis Kyai Kanjeng dan seniman pentas jalanan misalnya); - tidak kurang juga yang berkarir dalam sunyi jauh dari hiruk-pikuk industri massal musik seperti para jago gitar; - ... dan lain-lain masih banyak. Jadi tidak menjadi masalah jika Alan Turing gagal dalam kompetisi seperti ini, seperti halnya setiap pemrogram punya jalan masing-masing untuk menikmati dunianya. :) -- amal --~--~-~--~~~---~--~~ http://teknoblogia.blogspot.com/2005/02/tata-tertib-milis-v15.html -~--~~~~--~~--~--~---