《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 為什么學計算機的學生應該向開源項目做貢獻?

為什么學計算機的學生應該向開源項目做貢獻?

2021-07-10
來源:CSDN
關鍵詞: 開源 編程

編程是所有計算機科學、信息學、軟件工程和計算機工程專業的必修課。幾十年來,這項技能成為了區分計算機專業的畢業生與其他學科的同齡人的關鍵。我認為21世紀,編程的熟練程度本身既不能代表市場對計算機畢業生的技術水平要求,也不能成為有分量的資格證書。因此,我建議應該鼓勵計算機專業的學生通過課程活動為開源軟件項目貢獻代碼。

微信圖片_20210710162842.jpg

我在軟件工程課程中實踐這種方法已經有15年了,向開源項目貢獻代碼是必做的作業。本文中將根據個人的經驗,說明為什么向開源項目貢獻代碼能夠體現出學生對編程技巧的掌握情況,學生可以從這些活動中學到什么,如何將向開源項目貢獻代碼嵌入到課程中,以及如何幫助學生完成這份作業。

  向開源項目貢獻代碼是編程的新概念

  如今,編程只是軟件開發人員必須掌握技能之一。出現這種情況的原因有兩個:

  首先,編程實踐的發展遠遠超出了Fred Brooks于20世紀70年代推廣的首席程序員模型,系統的規模擴大了幾個數量級、工具更加先進、流程的自動化也得到了普及,還有團隊合作、工作流程以及管理的日益復雜化。

  其次,行業最佳實踐與大型成功的開源軟件項目所遵循的實踐已經趨同。各個企業都吸收并貢獻了許多開源開發實踐。因此,相應的知識和技術力在志愿者項目與企業項目之間是通用的。

  因此,我們的教學必須從課程的教育實驗室走向實際的組織環境。學生可以通過為開源項目做貢獻,在實踐中獲得了廣泛的技能、知識和經驗,使他們成長為全面發展的現代開發人員,而不是好萊塢影片中的獨狼程序員。傳統的編程作業最難獲得的技能是以下社交與組織能力:

  熟悉背景:了解項目范圍、使命、合作開發團隊以及新的領導形式下實際的開發工作狀況;

  與項目的全球及多元化社區互動;

  協商功能的請求、要求以及實現方法;

  處理溝通問題,例如無人響應,這在志愿者運營的項目中很常見;

  通過問題分類和發布計劃等實踐,認識作為產品的軟件;

  接收、討論和處理代碼審查意見。

  與技術相關的學習成果包括分析、評估、應用和創建等,具體內容如下:

  瀏覽項目的資產,例如軟件代碼、議題、文檔和拉取請求;

  快速評估軟件系統或組件的產品和流程質量,這在現代軟件的重用中經常需要;

  配置、構建、運行和調試第三方代碼;

  設置和運行包含不同軟件和硬件要求的軟件密集型系統。我開設的課程中包含手機、汽車電子、應用服務器、數據庫、容器、物聯網設備和嵌入式設備;

  選擇實際的貢獻目標。(學生往往會在初期階段高估他們為項目做貢獻的能力。)這是敏捷開發沖刺中的一項關鍵活動;

  閱讀第三方代碼,找出需要添加的功能或修復的問題;

  通過添加新功能或修復錯誤來修改大型第三方系統;

  編寫測試來證明自己貢獻的代碼無論在當下還是將來都能夠按預期工作;

  學習使用多種編程語言和工具開發的軟件系統。學生經常驚訝地發現,掌握集成開發環境 (IDE) 的知識遠遠不足以為項目做貢獻;

  記錄自己的工作,一般都會使用聲明式標記語言,例如 Markdown 或文檔生成器代碼注釋;

  遵循復雜的配置管理(版本控制)工作流程,例如處理問題分支和重新提交代碼;

  通過預提交和持續集成的檢查和測試。

  從這些實踐中獲得的社交經驗和技術經驗都是現代辦公環境所必須的,這些超出了ACM/IEEE 提出的軟件工程課程大綱。同時,課程的實踐也與ACM/IEEE課程大綱中的許多內容息息相關。這主要包括:鍛煉個人技能,例如批判性判斷、有效溝通和認識到自己的局限;培養自主學習的技能;了解解決軟件工程問題的多個維度;使用適當的最新工具;建立現實世界的基礎;并通過各種教學和學習方法推進教育。

  在軟件工程課程中嵌入開源開發

  這門把“向開源軟件做貢獻”作為必做作業的課程名為“實踐中的軟件工程”,是大三課程的一部分。(該課程在 2019 年獲得了管理學院的卓越教學獎。)每年我們都會向20~50名雅典經濟與商業大學管理科學與技術系軟件和數據分析技術專業的學生教授這門課程。這門課程也是該大學信息學系的推薦選修課。

  該課程在某種程度上顛覆了傳統的課堂教學方法,最后的成績完全由課程作業決定。向開源軟件的貢獻度占總分的50%。學生可以單獨或結對完成作業。結對的目的是幫助沒有安全感的學生,但要求結對完成的工作量必須多于個人,而且貢獻必須來自個人的GitHub賬號。

  我們根據學生提供的在線開源項目工作(代碼提交和交互)、他們的最終書面報告以及課堂演示來評估學生的表現。一共需要三場演講,分別在第 4 周(描述所選項目)、第 8 周(概述提議的貢獻)和第 14 周(總結貢獻的實現)。貢獻的代碼是否被接受并不會作為作業的評判標準,但會得到積極的評估。其他評估要素包括,學生對自己選擇的項目的理解和文檔、貢獻的廣度、實現的質量、代碼與項目的集成、測試實施、與項目開發團隊的合作、口頭陳述、書面報告的質量,以及他們在版本控制、代碼審查、議題管理和文檔等活動中使用的工具。

  理論上,他們可以作弊(通過復制項目分支的貢獻等),這可能會成為一個問題,但我們要求學生在課堂上展示他們的成果,而且我們會讓學生們明白,他們貢獻的代碼會成為個人的一項戰績,而且將來還會被潛在雇主的詢問,這些措施可以杜絕作弊。

  成功地向開源項目做貢獻

  剛開始接觸這門課程的時候,學生們都懷著惶恐的心情,但在完成后都會非常高興。為了確保學生能夠為開源項目做出有意義的貢獻,我們需要考慮到他們的經驗不足與現代開源軟件開發的快節奏與復雜性。

  這些年來,通過我分配的作業可以看出,為開源項目做貢獻的難度越來越低。各個項目變得更具包容性。許多項目簡化了新手入門指導,團隊更加多樣化(包括女性領導),公開聯系方式很常見,回復通常都很有禮貌,而且支持Windows 構建(盡管一些學生采用 Linux 以避免出現故障)。由于拉取請求工作流程中的手動控制、持續集成的廣泛采用、多樣化的代碼檢查機器人、友好的代碼審查流程以及拉取請求草案的使用,做貢獻的難度已降低。

  盡管如此,學生們接觸的開源項目環境與傳統學術作業環境的體驗仍然相去甚遠。因此,小規模的貢獻才是比較現實的目標。為了讓這門課程的作業發揮作用,關鍵在于降低對學生所做貢獻度的期望。對于一個本科生來說,為開源做貢獻的門檻非常高,即便是向一個大型項目貢獻20行代碼也是值得慶賀的成就。我們給學生選擇項目的建議可以總結如下:

  選擇一個有多位活躍貢獻者的項目,這樣就有一個社區來指導并回答你的問題。

  選擇一個相對流行的項目(獲得了一些GitHub給星),證明這個項目提供了有用的功能,并且以相對合理的方式開發。你應該避免上傳到GitHub已久的廢棄論文項目。

  避免過于受歡迎的項目,因為你的貢獻會被其他競爭者、噪音和官僚主義淹沒。(盡管如此,我們的一些學生還是參與了轟動一時的項目,例如 Tensorflow 和 Visual Studio Code。)

  確認可以在自己的計算機上構建和運行項目。

  確保項目定期接受來自外部的拉取請求,保證自己也有機會。

  嘗試提供一個簡單的bug修復,作為熱身練習,測試一下自己是否有能力嚴格遵守項目的工作流程。

  查找帶有“Good first issue”標記的議題,這表明該項目對新貢獻者很友好。

  至于選擇貢獻怎樣的代碼,則完全由學生自己決定。他們可以從項目的議題列表中選擇一個開放的任務,或者提出自己的增強或修復意見。學生在與項目的核心團隊互動后也會經常改變策略。盡管讓他們自由選擇自己的貢獻似乎讓這個作業變得很容易,但我發現大約一半學生貢獻的代碼都被采納了。

  學生在作業中面臨的最常見問題包括無法構建項目(通常是由于缺乏經驗和平臺不兼容),以及項目團隊缺乏溝通(學生會過分焦慮,認為他們貢獻的代碼必須被采納)。另一方面,學生們最大的快樂在于,發現自己的代碼被某個全世界都在使用的生產軟件所采納。在課程評估中,學生都很開心,他們表示自己在向開源軟件做貢獻的過程中獲得了許多實踐技能,同時也更自信了。




電子技術圖片.png

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          国产欧美高清| 午夜电影亚洲| 国产精品久久九九| 9国产精品视频| 欧美日韩国产三区| 午夜一区在线| 女同性一区二区三区人了人一| 先锋影音久久久| 欧美在线国产| 亚洲人体偷拍| 久久久久高清| 99精品视频免费观看| 久久久久国产精品一区二区| 欧美网站在线| 亚洲欧美网站| 亚洲性感美女99在线| 亚洲一区日韩| 亚洲黄色视屏| 欧美激情视频一区二区三区在线播放 | 日韩午夜免费| 久久精品日韩欧美| 在线免费高清一区二区三区| 国产精品尤物| 亚洲精品九九| 欧美日韩国产精品一卡| 国产精品久久久亚洲一区| 欧美精品一区二区三区在线看午夜 | 国产精品一区二区三区免费观看| 久久久久久九九九九| 久久精品123| 在线午夜精品| 9色国产精品| 亚洲欧洲精品一区二区| 久久亚洲国产精品一区二区 | 99精品国产在热久久| 欧美片第1页综合| 国产亚洲欧美一区二区三区| 国产在线精品二区| 欧美日本一区| 欧美韩日精品| 午夜精品免费| 欧美另类女人| 亚洲精品久久久久久一区二区| 欧美在线资源| 国产伦精品一区二区| 99亚洲视频| 99热精品在线观看| 国产日韩精品久久| 一区二区欧美日韩| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜欧美精品| 亚洲视频中文| 亚洲深爱激情| 美女91精品| 可以免费看不卡的av网站| 免费视频久久| 欧美日韩精品免费观看视频完整| 欧美日韩18| 最新亚洲一区| 香蕉视频成人在线观看| 免费亚洲一区二区| 欧美激情麻豆| 亚洲久久视频| 性色一区二区三区| 欧美日本不卡| 一本色道88久久加勒比精品| 国产偷自视频区视频一区二区| 亚洲欧美精品| 欧美午夜电影在线观看| 91久久夜色精品国产九色| 国产亚洲成人一区| 欧美精选一区| 在线一区日本视频| 欧美在线播放| 在线欧美福利| 亚洲欧美卡通另类91av| 久久一本综合频道| 国产一区自拍视频| 久久精品亚洲一区二区| 欧美日韩一区在线播放| 亚洲三级国产| 国产精品日韩一区二区三区| 久久国产主播精品| 好看的日韩av电影| 国产精品免费一区二区三区观看 | 99成人精品| 久久男女视频| 激情文学一区| 久久尤物视频| 韩国亚洲精品| 亚洲美女色禁图| 一区二区三区福利| 午夜视频久久久| 国产精品视频免费一区| 韩日视频一区| 久久久久久久久久码影片| 在线视频观看日韩| 欧美成人免费在线| 翔田千里一区二区| 亚洲全部视频| 国产一区观看| 欧美日韩一区在线视频| 久久久久久久久久久一区| 日韩亚洲一区在线播放| 欧美三日本三级少妇三99| 久久久久久穴| 夜夜爽99久久国产综合精品女不卡| 欧美激情91| 久久国产日韩欧美| 久久大逼视频| 性一交一乱一区二区洋洋av| 99精品欧美| 亚洲精品国产日韩| 亚洲激情偷拍| 9国产精品视频| 亚洲黄色天堂| 亚洲激情二区| 亚洲精品看片| 亚洲精品一区二区三| 影音先锋久久| 精品av久久久久电影| 国产精品分类| 亚洲婷婷在线| 亚洲三级影院| 亚洲最新在线| 国产精品乱码一区二区三区| 一区二区三区|亚洲午夜| 亚洲二区免费| 亚洲精品字幕| 亚洲专区在线| 久久深夜福利| 欧美午夜视频| 亚洲高清久久| 香蕉久久a毛片| 欧美成人首页| 亚洲国产精品123| 国产亚洲永久域名| 欧美~级网站不卡| 国产精品国产三级国产专区53| 国内精品福利| 国产精品久久久一区二区三区 | 免费视频一区| 欧美日本韩国在线| 亚洲国产婷婷| 久久香蕉精品| 精品1区2区| 国产亚洲毛片在线| 欧美+亚洲+精品+三区| 激情一区二区| 亚洲欧美日本国产专区一区| 欧美精品综合| 一本综合久久| 午夜日韩激情| 国产精品久久久一区二区三区 | 一本色道久久综合亚洲二区三区| 香蕉久久久久久久av网站| 欧美三级视频| 亚洲永久免费精品| 国产精品分类| 久久一区中文字幕| 亚洲国产欧美不卡在线观看| 久久不射网站| 国产欧美日韩综合精品二区| 午夜精品一区二区三区四区 | 欧美区高清在线| 亚洲精品一级| 欧美午夜不卡| 噜噜噜噜噜久久久久久91| 亚洲私人影院| 狂野欧美性猛交xxxx巴西| 99国产精品99久久久久久粉嫩| 久久精品日产第一区二区| 亚洲人成高清| 激情欧美日韩一区| 欧美日韩mv| 久久亚洲一区二区| 亚洲欧美日韩综合一区| 亚洲精品乱码久久久久久蜜桃91| 久久免费国产| 欧美亚洲一级| 国产精品一区免费观看| 亚洲乱码久久| 亚洲三级电影在线观看| 好看的亚洲午夜视频在线| 久久久久久色| 蜜桃久久av| 午夜在线视频观看日韩17c| 亚洲毛片播放| 亚洲精选一区| 国产一区二区三区奇米久涩| 亚洲激情影院| 宅男噜噜噜66国产日韩在线观看| 亚洲精品国产精品国自产观看| 国模精品娜娜一二三区| 欧美午夜国产| 亚洲国产精品第一区二区三区| 激情偷拍久久| 亚洲人体一区| 国产日韩综合| 久久精品网址| 欧美另类高清视频在线| 欧美日韩另类丝袜其他| 欧美日韩精品免费观看| 国产综合视频| 亚洲日韩视频| 免费视频久久| 欧美激情视频一区二区三区在线播放| 欧美96在线丨欧| 国产综合婷婷| 国产精品亚洲一区| 久久天堂精品| 亚洲午夜一区| 欧美专区在线| 好看不卡的中文字幕| 亚洲高清视频一区二区| 国产区欧美区日韩区| 久久精选视频| 在线精品在线| 久久激情中文| 亚洲国产精品毛片| 免费亚洲视频| 伊人久久大香线蕉av超碰演员| 亚洲欧洲三级| 久久五月激情| 精品动漫一区| 久久免费高清| 99riav1国产精品视频| 蜜桃av综合| 99国产精品久久久久久久| 久久xxxx| 99国产精品视频免费观看一公开| 亚洲综合激情| 影音欧美亚洲| 米奇777在线欧美播放| 激情国产一区| 久热综合在线亚洲精品| 91久久黄色| 欧美精品九九| 噜噜噜久久亚洲精品国产品小说| 伊人蜜桃色噜噜激情综合| 免费亚洲网站| 亚洲少妇自拍| 亚洲国产精品久久久久久女王| 久久一区视频| 亚洲一区二区三区精品在线观看 | 国产精品xvideos88| 国产欧美日韩亚洲| 合欧美一区二区三区| 久久国产欧美精品| 99伊人成综合| 激情视频一区| 国产精品多人| 欧美精品麻豆| 久久亚洲精品伦理| 国产精品一页| 国产视频一区三区| 亚洲国产一区在线| 激情五月***国产精品| 欧美1区视频| 欧美96在线丨欧| 欧美 亚欧 日韩视频在线| 男人的天堂亚洲| 久久电影一区| 美日韩精品免费| 久久国产手机看片| 麻豆精品网站| 久久精品日韩欧美| 久久国产手机看片| 久久人人97超碰国产公开结果| 欧美中文字幕| 久久午夜影视| 欧美精品二区| 久久电影一区| 狠狠爱综合网| 亚洲日本欧美| 伊人成人网在线看| 伊人精品视频| 18成人免费观看视频| 激情视频一区| 亚洲高清资源| 亚洲专区一区| 久久久水蜜桃| 亚洲欧美影院| 国产综合激情| av不卡免费看| 亚洲一区精品视频| 欧美国产先锋| 亚洲人妖在线| 久久精品国产综合精品| 午夜免费电影一区在线观看| 国语对白精品一区二区| 日韩香蕉视频| 久久男女视频| 亚洲国产精品毛片| 免费在线一区二区| 国产一区二区三区四区hd| 99国内精品| 欧美在线播放| 99av国产精品欲麻豆| 久久精品日产第一区二区| 狠色狠色综合久久| 国产精品免费看| 韩国av一区| 亚洲综合好骚| 午夜精品免费| 久久字幕精品一区| 国产麻豆日韩| 国产欧美午夜| 蜜桃av综合| 伊人天天综合| 久久黄色网页| 亚洲毛片播放| 欧美激情四色| 亚洲一区二区在| 亚洲网站视频| 久久综合婷婷| 一本色道久久综合亚洲精品不 | 欧美精品综合| 国产精品久久久免费| 欧美1级日本1级| 国产精品久久久久久久久久妞妞| 欧美日韩1区2区3区| 国产视频一区免费看| 欧美日韩一区在线播放| 美女爽到呻吟久久久久| 中国成人在线视频| 亚洲激情一区二区| 欧美日韩国产色综合一二三四| 国产亚洲一级| 日韩午夜精品| 亚洲三级色网| 最新国产乱人伦偷精品免费网站| 午夜视频久久久| 欧美成人国产| 欧美伊人影院| 美女尤物久久精品| 翔田千里一区二区| 亚洲视频导航| 亚洲作爱视频| 国产日韩欧美综合精品| 日韩视频中文| 9国产精品视频| 99热这里只有精品8| 亚洲国产专区| 亚洲开发第一视频在线播放| 悠悠资源网久久精品| 伊人久久大香线蕉av超碰演员| 国产精品theporn| 黄色成人在线网址| 91久久夜色精品国产九色| 久久精品国产第一区二区三区最新章节 | 可以看av的网站久久看| 亚洲欧美卡通另类91av | 国产精品jizz在线观看美国| 欧美二区不卡| 国产综合精品| 1024日韩| 亚洲在线免费| 欧美.www| 黄页网站一区| 一区二区欧美日韩| 欧美中文日韩| 欧美日本亚洲| 亚洲二区在线| 亚洲免费婷婷| 欧美午夜精品| 中文一区二区| 亚洲国产精品一区制服丝袜| 一区二区自拍| 国产日韩免费| 牛夜精品久久久久久久99黑人| 欧美日韩喷水| 国产欧美三级| 欧美日韩综合网| 一本色道久久精品| 你懂的国产精品| 亚洲国产一区二区三区在线播 | 在线综合欧美| 午夜日韩电影| 日韩视频在线播放| 狂野欧美性猛交xxxx巴西| 伊人精品在线| 久久一二三四| 99精品热视频只有精品10| 欧美一区1区三区3区公司 | 欧美资源在线| 欧美a级片网站| 国产精品日本欧美一区二区三区| 国产一区91| 国内一区二区三区在线视频| 亚洲青色在线| 午夜天堂精品久久久久| 国产视频一区免费看| 国产精品99免费看| 亚洲影音一区| 日韩亚洲一区在线播放| 欧美三级不卡| 老司机免费视频久久| 妖精视频成人观看www| 国产精品播放|