Blog FOSS by Lê Trung Nghĩa

https://letrungnghia.mangvn.org

Các giáo sư đã nhúng sinh viên trực tiếp vào các cộng đồng nguồn mở

Professors embed students directly into open source communities

Posted 13 Aug 2014 by Bryan Behrenshausen

Theo: http://opensource.com/education/14/8/challenges-to-open-source-computer-science-education

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

letrungnghia.foss@gmail.com

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây