Professors
embed students directly into open source communities
Posted
13 Aug 2014 by Bryan Behrenshausen
Bài
được đưa lên Internet ngày: 13/08/2014
Lời
người dịch: Sẽ
là tuyệt vời nếu các giáo viên và sinh viên các trường
đại học ở Việt Nam được nhúng trong môi trường làm
việc của các cộng đồng các dự án phần mềm tự do
nguồn mở, vì điều này mang lại cho họ, cả các giáo
viên và các sinh viên “những lợi ích tuyệt vời của
việc liên kết các sinh viên với các dự án nguồn mở”.
“Các
giáo sư nên khuyến khích các sinh viên của họ đi sâu
vào các kho mã nguồn mở và bắt đầu vá, tưởng tượng
cách mà họ có thể đóng góp có ý nghĩa cho một dự án.
Việc chơi với mã nguồn mở đối với các ứng dụng
của thế giới thực là một hoạt động học tập với
những lợi ích không song song...
Bằng việc tham gia vào các dự
án đó, các sinh viên không chỉ làm sắc nhọn cho các kỹ
năng lập trình của họ, mà còn học cách làm việc với
các đội nằm phân tán ở các địa điểm ở xa. Họ trở
thành quen thuộc hơn với các vấn đề cấp phép phần
mềm và sở hữu trí tuệ,...”.
Mặt
trời có thể đã từng chiếu sáng không thể sáng hơn ở
Philadelphia hôm 28/05/2014. Nhưng ở tầng hầm của tòa nhà
Rush của Đại học Drexel, ngôi nhà của trường Cao đẳng
Điện toán và Thông tin, các vấn đề từng hơi mù mờ
một chút.
Bên
trong, một đám gần 20 khoa từ các trường cao đẳng và
đại học khắp đất nước đã tranh luận về giá trị
của việc thiết kế các khóa học mà nhúng các sinh viên
trực tiếp vào các cộng đồng phần mềm tự do nguồn
mở (PMTDNM). Heidi
J. C. Ellis, Phụ trách và Giáo sư ở Phòng Khoa học Máy
tính và Công nghệ Thông tin ở Đại học Tây nước Anh
Mới ở Springfield, MA, và Gregory
W. Hislop, Trưởng khoa ở trường Cao đẳng Điện toán
và Thông tin ở Drexel, đã triệu tập nhóm như một phần
của Trải
nghiệm Mùa hè Nguồn Mở của Giáo sư năm nay, một
hội nghị dài 3 ngày cho khoa có mong muốn cải thiện các
kinh nghiệm học tập của các sinh viên của họ bằng
việc giới thiệu họ cho các công cụ, dự án và giá trị
của nguồn mở.
Ellis
và Hislop đã giải thích cho các đồng nghiệp của họ
những lợi ích tuyệt vời của việc liên kết các sinh
viên với các dự án nguồn mở. Nhưng quyết định
dạy các sinh viên cách thức nguồn mở chưa bao giờ là
rõ ràng, họ cảnh báo, vì sự giới thiệu một số thách
thức độc nhất trong lớp học.
Ví
dụ, các dự án nguồn mở là phức tạp - về cả các
kho mã và các công cụ của chúng mà các cộng đồng sử
dụng để cộng tác. Việc làm cho các sinh viên theo kịp
có lẽ mất nhiều tuần - thậm chí nhiều tháng - để
lại bọn họ ít thời gian theo nghĩa hàn lâm cho việc
thực hiện các đóng góp cụ thể cho một dự án. Các
cộng đồng cũng bao gồm những người đặc biệt: các
chỉ tiêu, các giá trị và các phương pháp luận được
ưu tiên mà một người có thể học chỉ qua sự tham gia
tăng cường trong chúng. Các lịch trình phát hành tương
ứng của các dự án có thể không gọn gàng chồng lên
với các lịch hàng lâm của các lớp học, làm cho công
việc chung thậm chí còn khó khăn hơn. Và, các sinh viên
vào các lớp khoa học máy tính của họ sở hữu các mức
độ hiểu biết khác nhau về các công cụ và các nền
tảng, nên việc thiết lập ra một môi trường phát triển
phù hợp cho mọi người có thể quả thực rắc rối.
Thú
vui của việc vá
Jim
Kiper từ Đại học Miami ở Oxford, Ohio, đã có một lo
lắng thêm: Các hậu quả là gì - đối với các sinh viên
của ông, phòng của ông, đại học của ông, và cộng
đồng nguồn mở được ông chọn - nếu sự tham gia lớp
học trong một dự án đem lại kết quả ngược với mong
muốn, thì việc giới thiệu rắc rối cực kỳ hoặc thậm
chí làm trệch hướng cả dự án chăng?
Các
trường cao đẳng như Cam MacDonald của Đại học MacEwan,
Canada, trường đã đưa các sinh viên vào với đám nguồn
mở của phần mềm bản đồ và ảo hóa Ushahidi,
từng nhanh chóng làm dịu bớt nỗi sợ hãi của Kiper. Sử
dụng tăng cường kiểm soát phiên bản của các cộng
đồng nguồn mở tạo nên một dự phòng để bảo đảm
an toàn cho dạng tàn phá các sai lầm mà một sinh viên có
thể chẳng may đưa vào trong mã của một dự án, họ
nói.
“Trong
bất kỳ dự án nào đáng giá, điều đó không thể xảy
ra”, MacDonald giải thích. “Điều đó có lẽ giống như
nhà máy điện hạt nhân để người trong cuộc quản lý
nhà máy vào dịp cuối tuần”.
Vì
thế các giáo sư nên khuyến khích các
sinh viên của họ đi sâu vào các kho mã nguồn mở và bắt
đầu vá, tưởng tượng cách mà họ có thể đóng góp có
ý nghĩa cho một dự án. Việc chơi với mã nguồn mở đối
với các ứng dụng của thế giới thực là một hoạt
động học tập với những lợi ích không song song,
các thành viên của POSSE nói.
Bằng
việc tham gia vào các dự án đó, các sinh viên không chỉ
làm sắc nhọn cho các kỹ năng lập trình của họ, mà
còn học cách làm việc với các đội nằm phân tán ở
các địa điểm ở xa. Họ trở thành quen thuộc hơn với
các vấn đề cấp phép phần mềm và sở hữu trí tuệ,
Ellis nói, và phải có được các lĩnh vực mới về tri
thức làm việc - như mật mã, các qui định về y
tế, hoặc môn sinh tin học - nếu họ có ý định nắm
bắt mục tiêu của một dự án (không nói tới những
ràng buộc của nó).
Đóng
góp ngoài mã
Nhưng
các sinh viên không đơn giản cần đệ trình mã cho các
dự án nguồn mở. Họ có thể khẳng định các lỗi, cập
nhật tài liệu, thiết kế các logo và các biểu tượng
mới, kiểm thử các tính năng mới, hoặc đơn giản đánh
giá các tính năng về khả năng truy cập của một ứng
dụng mới.
Ellis,
các sinh viên của ông đã đóng góp cho Caribou,
một bàn phím trên màn hình mà là một phần của môi
trường đồ họa GNOME, đã
giải thích rằng các sinh viên thời vụ thường thích đệ
trình các bản vá cho các dự án hơn, trong khi các sinh
viên mức khởi đầu quan tâm hơn tới việc phỏng vấn
những người đóng góp đang tồn tại, khai thác các công
nghệ cộng tác như Git hoặc
IRC,
và lao vào những gì mà Ellis gọi là “các cuộc ngao du
trên cánh đồng” nguồn mở - các cuộc đi chơi dạng
nhúng ngón chân cái vào các cộng đồng khác nhau, nơi mà
họ có thể lẩn đi một chút để có được cảm giác
về cách mà sự phát triển nguồn mở thực sự xảy ra.
Qua
tất cả điều này, Ellis và Hislop nhấn mạnh, các
giáo sư phải nhớ rằng các cộng đồng nguồn mở sẵn
sàng hỗ trợ các sinh viên của họ. Họ sẽ chỉ dẫn
cho các sinh viên qua mã đối với các dự án của họ,
trả lời các câu hỏi của sinh viên, hoặc gặp họ trên
IRC. Nhưng để tận dụng đầy đủ những lợi ích của
các cộng đồng đó, các giáo sư phải thấy thoải mái
với triển vọng các học sinh của họ tương tác với
các cá nhân bên ngoài mối quan hệ thầy - trò truyền
thống.
Làm
các khóa học khoa học máy tính theo cách nguồn mở mở
ra cho một lớp học tới dạng chưa từng có và sự mềm
dẻo mà nó là một phần và là mảnh đất của sự phát
triển nguồn mở. Và vâng những người tham dự POSSE đồng
ý: các giáo viên và học sinh có lợi tương tự từ việc
tham gia với các cộng đồng nguồn mở.
Một
số bài học chỉ không thể được phác thảo trong một
chương trình đào tạo.
The
sun could not have been shining any brighter in Philadelphia on May
28, 2014. But in the basement of Drexel University's Rush Building,
home to the school's College of Computing and Informatics, matters
were a bit more hazy.
Inside,
a cohort of nearly 20 faculty from colleges and universities across
the country debated the merits of designing courses that embed
students directly in free and open source software communities. Heidi
J. C. Ellis, Chair and Professor in the Department of Computer
Science and Information Technology at Western New England University
in Springfield, MA, and Gregory
W. Hislop, Associate Dean in the College of Computing and
Informatics at Drexel, convened the group as part of this
year's Professors' Open Source Summer Experience, a three-day
immersive conference for faculty wishing to enhance their students'
learning experiences by introducing them to open source tools,
projects, and values.
Ellis
and Hislop explained to their colleagues the wonderful benefits of
linking students with open source projects. But the decision to teach
students the open source way is never clear-cut, they cautioned, for
it introduces a number of unique challenges into the classroom.
For
example, open source projects are complex—in terms of both their
code bases and the tools their communities use to collaborate.
Getting students up to speed might take weeks—even months—leaving
them little time in an academic term for making concrete
contributions to a project. Communities also embody particular
characters: norms, values, and prefered methodologies that one can
learn only through extensive participation in them. Projects'
respective release schedules may not neatly overlap with the classes'
academic calendars, making joint work even more difficult. And,
students enter their computer science classes possessing varying
degrees of familiarity with tools and platforms, so setting up a
development environment suitable to everyone can be tricky indeed.
The
joy of tinkering
Jim
Kiper from Miami University in Oxford, Ohio, had an additional
concern: What were the consequences—for his students, his
department, his university, and his chosen open source community—if
class participation in a project backfired, introducing frustrating
complications or even derailing the project altogether?
Colleagues
like Cam MacDonald of MacEwan University, Canada, who has involved
students with open source crowd mapping and visualization software
Ushahidi, were quick to allay
Kiper's fears. Open source communities' extensive use of version
control forms a failsafe for the kind of devastating mistakes a
student might accidentally introduce into a project's code, they
said.
"In
any project worth its salt, that can't happen," MacDonald
explained. "That'd be like the nuclear power plant letting the
intern run the plant on the weekend."
So
professors should encourage their students to dive into open source
code repositories and begin to tinker, imagining how they might
meaningfully contribute to a project. Toying with open source code
for real-world applications is a learning activity with unparalleled
benefits, POSSE members said.
By
participating in these projects, students not only sharpen their
coding skills, but also learn how to work with teams distributed in
remote locations. They become more familiar with intellectual
property and software licensing issues, Ellis said, and must acquire
working knowledge new domains—like cryptography, health
regulations, or bioinformatics—if they intend to to grasp a
project's purpose (not to mention its constraints).
Contribution
beyond code
But
students needn't simply submit code to open source projects. They
might confirm bugs, update documentation, design new logos or icons,
test new features, or simply assess an application's accessibility
features.
Ellis,
whose students have contributed to Caribou,
an on-screen keyboard that's part of the GNOME
desktop, explained that seasoned students often prefer to submit
patches to projects, while beginner-level students are more content
to interview existing contributors, explore collaboration
technologies like Git or IRC,
and embark on what Ellis calls open source "field
trips"—toe-dipping excursions into various communities, where
they might lurk for a bit to get a sense of how open source
development really occurs.
Through
it all, Ellis and Hislop stressed, professors must remember that open
source communities are available to assist their students. They'll
guide students through the code for their projects, answer student
questions, or meet with them on IRC. But to completely leverage the
benefits of these communities, professors must get comfortable with
the prospect of their pupils interacting with individuals outside the
traditional teacher-student relationship.
"It's
a different style," Hislop told the POSSE cohort. "And some
people just aren't comfortable with that style."
Doing
computer science coursework the open source way does expose a class
to the kind of unpredictability and flexibility that's part and
parcel of open source development. And yet POSSE attendees agreed:
teachers and students alike benefit from engaging with open source
communities. Some lessons just can't be outlined in a syllabus.
Dịch:
Lê Trung Nghĩa