ELENA L.
GLASSMAN, JEREMY SCOTT, and RISHABH SINGH, MIT CSAIL, MIT CSAIL
PHILIP J.
GUO, MIT CSAIL and University of Rochester
ROBERT C. MILLER,
MIT CSAIL
URL = http://dl.acm.org/citation.cfm?doid=2744768.2699760
Pengkaji = Atikah Rahayu Mandasari
Abstrak
In
MOOCs, a single programming exercise may produce thousands of solutions from
learners.Understanding
solution
variation is important for providing appropriate feedback to students at scale.
The wide variation
among
these solutions can be a source of pedagogically valuable examples and can be
used to refine the
autograder
for the exercise by exposing corner cases. We present OverCode, a system for
visualizing and
exploring
thousands of programming solutions. OverCode uses both static and dynamic
analysis to cluster
similar
solutions, and lets teachers further filter and cluster solutions based on
different criteria. We evaluated
OverCode
against a nonclustering baseline in a within-subjects study with 24 teaching
assistants and
found
that the OverCode interface allows teachers to more quickly develop a
high-level view of students’
understanding
and misconceptions, and to provide feedback that is relevant to more students’
solutions.
Categories
and Subject Descriptors: H.5.m. [Information Interfaces and Presentation
(e.g., HCI)]:
Miscellaneous
General
Terms: Design, Algorithms
Additional Key Words and Phrases: Programming education, learning
at scale
Pengkaji : Atikah Rahayu Mandasari
Ulasan
Pada
kajian ini mengkaji tentang bagai mana masiswa dengan mudah memahami kode dalam
pemograman. Pada kesempatan ada cara untuk menvisualisasi solusi permasalahan
mahasiswa adalah OverCode, sebuah
sistem untuk memvisualisasikan dan mendalami variasi dalam ribuan solusi
pemrograman. OverCode dirancang untuk membayangkan solusi yang benar dalam
pengertian bahwa mereka sudah berlalu perataan otomatis biasanya sebuah tes
kelas pemrograman di skala. Autograder yang tidak dapat memberikan umpan balik
lebih lanjut pada solusi yang benar, dan ini namun ada mungkin masih baik dan
variasi buruk pada solusi yang benar
Implementasi
Antarmuka
pengguna OverCode-implementasi tergantung pada sebuah analisis pipa-solusi
canonicalizes dengan cara-cara yang dirancang untuk agar pembacaannya manusia,
yang disebutkan di sini sebagai cleaning
-
Analisa Pipeline :OverCode saat ini
diimplementasikan untuk Python, namun langkah-langkah pipeline digambarkan berikutnya siap menjenderalisasi untuk
bahasa-bahasa lain yang umumnya digunakan untuk mengajar programming.
ü Solusi
memformat ulang. Untuk penampilan yang konsisten, solusi yang memformat kembali
untuk memiliki baris konsisten indentasi token dan spasi.
| Kode 1 solusi memformat Ulang |
ü Menjalankan solusi. Masing program dijalankan sekali, menggunakan kasus tes yang sama.
Selama setiap langkah eksekusi, nama-nama dan nilai-nilai variabel global dan
lokal, serta kembali
nilai-nilai dari fungsi, dicatatkan sebagai sebuah trace
program .
| Kode 2 Menjalankan Solusi |
ü Mengekstrak
urutan variabel. Selama langkah sebelumnya, Python
eksekusi mencatat nilai-nilai semua dalam lingkupsetelah
setiap eksekusi pernyataan variabel dalam program Python. Log yang dihasilkan adalah dirujuk
sebagai trace program
| Kode3 Mengekstrak Urutan Variabel |
ü Mengidentifikasi
variabel umum. Kita menganalisis semua jejak program, mengidentifikasi variabel
yang identik urutan.
| Kode 4.Mengidentifikasi variabel umum |
ü Mengganti
nama variabel yang unik dan umum. Variabel yang sama mungkin memiliki
nama yang berbeda
di setiap trace program. Nama yang
diberikan untuk setiap variabel umum adalah nama variabel yang diberikan paling
sering variabel yang umum di semua trace program.
ü ü Membuat tumpukan/Stack. Kita iteraterasi
melalui solusi , membuat solusi tumpukan/stack
yang
sama-sama set baris kode.Kita membandingkan set baris kode karena
solusi
kemudian dengan otomatis memerintahkan baris yang tidak tergantung pada satu
sama lain masih dapat masuk ke stack
yang sama.
Kesimpulan
Sistem
OverCode untuk memvisualisasikan ribuan Python .solusi pemrograman untuk
membantu guru mendalami variasi di didalamnya. OverCode menggunakan ringan
analisis statis dan dinamis untuk menghasilkan kumpulan solusi serupa dan
menggunakan mengganti nama variabel untuk mempresentasikan solusi
-