Kami memiliki kursus pemrograman universitas dan sesama mahasiswa mengajukan beberapa pertanyaan pemrograman dalam grup Facebook kami. Saya agak ragu untuk membagikan semua program saya, terutama jika itu adalah sesuatu yang keren untuk salah satu tugas, karena ini dilihat oleh TA dan mereka mungkin memperhatikan jika seseorang memiliki program yang sama dan mulai mengajukan pertanyaan tentang dari mana asalnya. dari. Meski begitu, kadang-kadang saya ingin membagikan kode saya untuk membantu orang lain, tetapi saya tidak ingin orang hanya mengambil pekerjaan saya. (Klarifikasi: Kami diizinkan untuk berkolaborasi dengan tugas-tugas) Ini tentu saja garis tipis. Walaupun saya ingin membantu beberapa orang, saya khawatir mereka mungkin tidak memiliki kejujuran akademis untuk menulis ulang kode sendiri.
Sebagian besar rekan siswa saya tidak terlalu mahir dalam keterampilan mereka, jadi saya akan pergi dengan mengatakan menyembunyikan nama saya di Base-64 string yang dikodekan dibuat menjadi tempat yang terpisah. Namun, mungkin terlalu jelas untuk string acak untuk duduk-duduk.
Opsi apa yang ada untuk menyembunyikan nama saya di suatu program tanpa terlihat mencurigakan?
Saya telah melihat di CodeGolf bahwa mereka telah membuat seni ascii berubah menjadi hal lain ketika dievaluasi. Apakah ada strategi serupa yang bisa saya manfaatkan? Solusi ideal adalah sesuatu yang terlihat seperti sesuatu yang cocok secara diam-diam tetapi pada kenyataannya memiliki fungsi untuk membuktikan bahwa saya mengkodekannya dari awal.
Klarifikasi: (Maaf, seharusnya mengatakan ini sebelumnya) Kami diizinkan untuk berkolaborasi tetapi harus menjelaskan program kami ke TA untuk mendapatkan poin. Ini hanya untuk kepuasan menyembunyikan beberapa Telur Paskah dalam kode orang lain jika bocor, terutama karena mungkin tergoda untuk bertukar program untuk memeriksa bahwa jawaban untuk masalah yang mereka hasilkan adalah setara dll atau untuk melihat bagaimana orang lain memecahkan masalah.
Jawaban:
Gunakan tanda tangan Anda tidak dalam kode Anda, tetapi dalam log pengembangan yang dapat diakses publik.
Publikasikan kode Anda di repo Github publik. Sertakan Docblock dengan nama Anda di bidang "Author". Dengan cara ini ada catatan publik bahwa Anda adalah penulis sebenarnya dari program tersebut.
Ini mungkin tidak memenuhi syarat sebagai "bersembunyi", tetapi menurut saya, itu memang benar. Jika seorang siswa memutuskan untuk menyalin kode Anda, mereka akan berpikir bahwa mereka hanya perlu menukar tanda tangan mereka dengan Anda. Bayangkan betapa terkejutnya mereka ketika Anda menunjukkan bukti publik atas kesalahan mereka. Untuk membuat keadaan menjadi lebih buruk bagi mereka, itu dapat diakses secara online. Anda bahkan dapat menggunakan alat online, seperti Diffchecker , untuk menunjukkan bagian mana dari kode Anda yang dicuri!
EDIT: Seperti yang ditunjukkan dalam komentar, pastikan sekolah Anda mengizinkan untuk membagikan pekerjaan Anda dengan cara ini! OP mengindikasikan bahwa lembaga mereka tidak masalah dengan ini, tetapi lembaga Anda mungkin tidak!
sumber
"Karena ini dilihat oleh TA dan mereka mungkin memperhatikan jika seseorang memiliki program yang sama"
Saya harap begitu, itu bagian dari tugas mereka untuk mendeteksi dan menghukum kecurangan, penjiplakan, dan penipuan lainnya.
Dan menduplikasi karya orang lain dan membagikannya sebagai milik Anda adalah hal itu, curang dan menjiplak.
Sangat sederhana: jangan membagikan pekerjaan Anda kepada orang lain. Bantu mereka menulis sendiri jika Anda mau dengan memberi mereka ide tentang cara mengatasi masalah, kemudian biarkan mereka melakukan pengkodean sendiri.
sumber
Seperti jawaban di atas saya sarankan menggunakan sesuatu seperti Github untuk mencatat pengembangan kode Anda, ada metode lain yang dapat Anda gunakan untuk menutupi punggung Anda seperti mengirim email sumber kepada diri Anda sendiri sebelum dibagikan, meskipun repositori yang dapat dilihat secara publik adalah apa yang saya sarankan.
Itu tentu saja jika berbagi kode sangat diperlukan. Bagaimana dengan pseudo-code? atau seperti "ratchet freak" yang disebutkan, bagikan ide bukan implementasinya. (ini lebih masuk akal untuk kode yang lebih kompleks)
sumber
Anda juga bisa menggunakan salah satu trik tertua dalam menyembunyikan pesan. Buat huruf pertama dari setiap variabel sembunyikan pesan. Sebagai contoh,
sumber
Saya pikir GitHub atau solusi serupa tidak masalah, TAPI ada dua hal yang perlu dipertimbangkan:
sumber
Kartografer memiliki masalah yang sama . Beberapa teknik:
Memperkenalkan penyimpangan yang tidak mungkin dari gaya tradisional bahasa Anda, mis. Selalu memiliki ruang yang tidak seimbang di sekitar operator
if (lefthand== righthand)
Sebarkan no-ops di seluruh kode Anda, jika itu bagian dari bahasa yang Anda gunakan.
lefthand = righthand;;
sumber
Mencegah plagiarisme di BUKAN pekerjaan Anda sebagai siswa, itu murni di tangan seorang instruktur / TA.
Secara umum memperlakukan sekolah seperti itu adalah bisnis sumber tertutup. Rekan siswa Anda adalah kolega untuk majikan lain. Anda tidak dapat membagikan kode lebih dari satu liner sederhana dan semacamnya, dan Anda TIDAK PERNAH berbagi seluruh kelas atau proyek.
Menyembunyikan "Telur Paskah" dalam kode umumnya dianggap tidak profesional. (Pendapat dapat bervariasi di sini)
Jangan membuat kode bau tanda tangan Anda
"Tanda tangan" Anda atau bagaimana Anda membedakan kode Anda dari orang lain harus enak, dan tidak menghalangi "bau" kode Anda dengan cara apa pun. Inilah sebabnya saya sangat tidak menyarankan hal berikut:
Lalu bagaimana cara melindungi kode saya ?!
Secara umum membatasi ketersediaan adalah cara terbaik Anda untuk melindungi kode Anda. Jika Anda tidak membuatnya publik dan tidak ada yang meretas komputer Anda, kode Anda umumnya aman. Tentu itu bisa didekompilasi, direkayasa ulang, dll. Pada titik itu tidak seperti itu akan cocok dengan kode yang dihasilkannya.
Saya ingin mempublikasikannya, tetapi mencegahnya agar tidak dijiplak
Hanya tidak ... Dengan segala cara sihir yang berantakan dalam kode Anda dapat membuat seorang penjiplak menonjol dengan asumsi mereka membuat kode mereka juga tersedia ... dan mereka tidak akan melakukannya .
Ini juga akan membuat Anda terlihat mengerikan ketika orang lain melihat kode Anda dan pergi. "Ada apa dengan semua kesalahan ketik dan larangan operasi?"
Tapi saya ingin tanda tangan kode, sesuatu yang saya bisa melihat kode dan mengatakan saya melakukan ini, itu saya, ini milik saya
Jujur jika Anda kode baik umumnya harus dibedakan dari kode lain dalam proyek yang Anda kerjakan. Tentu saja itu adalah nuansa yang memberi tahu Anda apa yang Anda kerjakan versus apa yang dilakukan Bob, tetapi ini seharusnya cukup ringan.
Satu-satunya kode waktu yang menonjol di antara rekan-rekan adalah jika ada sesuatu yang baru dan belum pernah dilakukan sebelumnya dalam lingkaran Anda, atau baunya dengan cara yang unik untuk lingkaran Anda.
sumber
Mengingat bahwa masalahnya adalah menyembunyikan tanda tangan di kode sumber di mana
Variasi yang menarik tentang Steganografi .
Anda tidak dapat menggunakan format atau spasi putih, karena itu dapat dengan mudah dihapus oleh IDE yang kompeten.
Itu benar-benar hanya menyisakan penamaan variabel dan fungsi. Anda tidak dapat menggunakan substring khusus yang umum, karena terlalu mudah dihapus oleh pencarian dan ganti. Yang meninggalkan penggunaan nama variabel yang khas dan asli yang harus dihapus secara individual. Kesalahan ejaan dan kata-kata bahasa asing adalah kandidat yang baik.
Peluang untuk kreativitas tidak terbatas!
Kemudian beberapa pemrosesan teks sederhana untuk mengekstraksi dan membandingkan token akan dengan cepat menemukan para penjiplak.
sumber
saran duozmo tentang noops mungkin akan menghasilkan nilai buruk untuk kecerobohan, tapi itu mungkin hal yang baik untuk dimasukkan dalam kode contoh yang tidak seharusnya digunakan kata demi kata.
Itu mengilhami saya untuk berpikir tentang pola tab dan spasi tanda tangan yang berganti-ganti di spasi putih terkemuka dan tertinggal.
sumber
Sesuatu yang serupa yang saya gunakan sebelumnya adalah untuk membuat variabel bernama sama dengan variabel penting lainnya tetapi leet nama mereka tergantung pada editor teks sehingga perubahan tidak mudah jelas, atau menggunakan huruf dengan aksen. Panggil beberapa fungsi, di mana Anda mengirim banyak variabel penting program dari pernyataan if, memanfaatkan variabel Anda, yang tidak akan pernah benar, misalnya jika (1eft == wrōng) Tetapkan beberapa variabel penting dalam fungsi yang tidak berguna ke tanda tangan Anda yang dikaburkan.
Anda harus dapat menemukan beberapa tutorial tentang 'Cara menulis kode yang tidak dapat dipelihara' yang dapat membantu.
sumber