2016-2017-2 《程序設計與數據結構》課程總結

2016-2017-2 《程序設計與數據結構》課程總結

《程序設計與數據結構》是爲北京電子科技學院計算機系「信息管理與信息系統專業」開設的專業基礎限選課程。html

課程做爲教學改革的一個試點,把傳統的《程序設計》和《數據結構》合併成一門課程,96課內學時,30個實踐學時。java

本課程的教學目標是讓學生理解程序設計的基礎知識、基本方法和基本技能,能用計算機分析和解決問題;培養行學生的抽象思惟能力以及數據結構和算法的應用和實現能力,初步具有大型程序的設計能力。課程要讓學生掌握Java和Android應用系統的開發方法、掌握Java和Android開發的工具、掌握優秀程序設計實踐、理解面向對象設計思想,併爲專業課的學習培養良好的編程基礎。本課程培養觸類旁通學習其餘面嚮對象語言和移動平臺開發的自學能力。git

課程內容涉及面向對象思想、Java程序設計語言、Android程序開發、UML系統建模、敏捷開發實踐、算法分析、數據結構的應用和實現。教學重點是面向對象思想與Java的結合,算法分析與數據結構的應用,同時也讓學生掌握實際軟件開發中經常使用的開發、設計、建模、敏捷工具,掌握軟件開發的基本過程。程序員

本課程實踐性很強,課程應注重理論聯繫實踐,培養學生的創新能力、自學能力。課程提倡學生「作中學」的學習理念,教師「作教練」的教學理念,以學生爲主體,以老師爲主導,提倡因材施教。採用教材和微課進行混合式教學,引入遊戲化理論,過程化考覈,博客驅動的做業,git驅動的代碼實踐等。課程保障同窗們不低於10000行代碼的實踐量和必定量的優秀代碼閱讀分析(工業級代碼Java Collection API的分析)。web

教學方法

很重要的一點是釐清「教是老師的責任,學是學生的責任」,也就是「老師當教練,學生作中學」。算法

有了SPOC平臺藍墨雲班課 ,教學工具上也基本完善了:編程

教學內容設計

  • 第一章 程序設計概論 4學時
  • 第二章 Java語言基礎 4學時
  • 第三章 Java程序控制:分支與循環 4學時
  • 第四章 類與方法 6學時:
  • 第五章 繼承、多態與接口 4學時
  • 第六章 異常與I/O 4學時
  • 第七章 網絡編程與安全 6學時
  • 第八章 軟件開發方法 2學時
  • 第九章 Android程序設計 14學時
  • 第十章 Java泛型與集合類 6學時
  • 第十一章 數據結構與算法分析基礎 2學時
  • 第十二章 線性結構 12學時
  • 第十三章 樹 12學時
  • 第十四章 圖 6學時
  • 第十五章 查找與排序 10學時

我在程序設計學習上有一個基本的體會是:設計模式

  • 開始不會編程,最好的學習方式是抄教材,敲代碼,還專門寫了一篇指導《積極主動敲代碼,使用Junit學習Java程序設計》,我認爲積極主動敲5000行左右的代碼,應該能解決基本語法的問題,基本程序設計的問題,基本工具(git,jdb,junit,idea...)的使用問題安全

  • 而後獨立編寫5000行左右的代碼,解決程序邏輯錯誤的調試,模塊分解,問題解決的通常過程等相關問題微信

  • 有了10000行代碼的基礎,後面的學習提升要依靠代碼閱讀了,好比JUnit的源碼,JHotdraw的源碼,Java Collection API的源碼,Java JCE的源碼等

教學中也是想經過這三個步驟進行訓練。基本上全部同窗都完成了一學期輸入很多於5000行代碼的目標。

看了範飛龍博士(博客微博)的「如何設計題目」和「近發展區/腳手架」,寫了「2016-2017-2 《Java 程序設計》課堂實踐項目」解決第二層次的問題,從Hello World經過一個個小練習不斷迭代,來一步一步提升你們使用Java來解決具體問題的能力。

代碼(Java Collection API)閱讀在下學期結合數據結構和算法的相關內容進行。

代碼學習經過問題驅動來說解,課程內容主要在Linux下完成,課上結合Java內容和Linux命令來進行:

  • Linux 命令能作什麼? 學習某個Linux命令的學習
  • 它是如何實現的? 推導出命令實現的僞代碼
  • 能不能本身用Java實現? 用Java實現該命令

好比講解棧的應用時,計算後綴表達式是典型的例子。咱們在上課是遵循上面的步驟:

  1. 經過dc命令的使用讓學生了解什麼是後綴表達式
  2. 講解如何使用棧來實現後綴表達式的求值的僞代碼,並讓學生上課動手驗證算法的正確性(與dc命令對比)
  • 設立一個棧,存放運算符,首先棧爲空;
  • 從左到右掃描中綴式,若遇到操做數,直接輸出,並輸出一個空格做爲兩個操做數的分隔符;
  • 若遇到運算符,則與棧頂比較,比棧頂級別高則進棧,不然退出棧頂元素並輸出,而後輸出一個空格做分隔符;
  • 若遇到左括號,進棧;若遇到右括號,則一直退棧輸出,直到退到左括號止。
  • 當棧變成空時,輸出的結果即爲後綴表達式。
  1. 在課上讓學生用Java完成dc命令的實現,考試課堂時間的限制,學生實際水平和學習重點,提供代碼腳手架,只讓學生實現核心僞代碼:

這樣同窗們對學習編程是爲了解決實際問題有了深入的認識。好比String類的講解就不用羅列API了,咱們上課經過實現Linux的sort,comm等命令來讓學生掌握相應知識點。

學生的反饋:

雖然很懼怕這種形式的課堂檢查,但我不得不認可這種方式對於咱們應用能力有較大的提升做用。之前我很懼怕本身寫代碼,連書上的PP都得藉助其餘同窗的幫助。這樣的課堂實踐環節解決了這個問題,讓咱們換一個方式來主動敲代碼。

好比像這個MySort的測試,增強了對於sort方法的理解。學習了一學期後我明白了,Java的學習不能僅僅限於理論知識,更多的應該在於實際應用。用代碼解決問題纔是編程的核心,不將理論知識應用到代碼上,那一切理論都是浮雲。

課堂上在必定的時間段內要求本身獨立動手完成一個項目,對本身的編程能力的提升頗有幫助,也能提升咱們編程的效率。

實踐是對所學知識的考察和鞏固。能夠幫助咱們更好理解教材上的知識點,對咱們的總結和臨場使用能力有幫助。

課堂上多練習,有助於咱們更快的掌握知識,並且訓練了咱們的思惟能力。

過程化考覈

課程採用過程化考覈,經過翻轉課堂考覈,實驗考覈,知識深化和實踐考覈促進同窗們加大平時的學習投入,提升學習效率。
成績計算方式:8 * 5 + 5 * 5 + 35 = 100,具體計算過程以下:

  • 翻轉課堂隨堂考試共8次,每次考試卷面成績20-30分,實際成績除以4-6進行規格化,滿分計5分,共計40分;不論什麼緣由缺考的都不提供補考機會,但能夠作最多兩次至多十分的附加題(附加題目通常爲實踐類題目)。對要求的學習內容及時學習,按時提交學習筆記的不扣分,不及時學習、不按時發佈學習筆記的扣1分,超過三分之一不交的取消考試資格。

  • 五次實驗每次實驗5分共計25分。實驗過程和問答等驗收環節佔3分,實驗報告及問題解決方案佔2分;對實驗過程一無所知、不能正確回答老師提出問題的得0分,實驗報告及解決方案抄襲得0分,實驗成績每人總計不超過25分。
  • 知識深化類和綜合實踐類題目35分;每節課學習提供深刻學習題目,每道題目根據難度分爲I級、II級、III級難度,每道題目能夠由一個同窗獨立完成,或者一個小組(兩名同窗)合做完成,合做完成的二人成績要有不一樣,而且必需要有答辯。難度I級、II級、II級的正確完成分別得1分,3分,5分;知識深化類題目考慮平衡,每節課單個學生最多不能超過5分,該類題目總分不能超過25分。綜合實踐類題目,每題10分,實踐類題目要有答辯過程,須要包含完整的設計、編碼實現、單元測試等過程;每一個小組的分數根據具體的分工以及貢獻大小打分;知識深化類和實踐類題目每人總計不超過35分。
  • 須要答辯的,同一問題一次經過給滿分,第二次經過給一半分數,最多兩次答辯機會。
  • 附加分:附加題、研究性題目,本學期信息安全學科競賽等增長最多10分的加分,爲生病等緣由請假不能所有參加考覈的同窗一個補救機會。

翻轉課堂

翻轉課堂採用優秀的SPOC平臺藍墨雲班課博客園的班級教育應用,咱們也使用博客園課程管理,兼顧封閉與開放。

咱們的課程主頁以下

翻轉課堂不是老師讓學生自學就完了,學生要自學,老師也要作大量的工做,付出巨大的努力。

首先要安排好每週的學習內容,咱們這學期的教學進程參見:2016-2017-2學期《程序設計與數據結構》教學進程

每週都給出明確的學習目標,詳細的學習資源和有最後期限的學習任務

雖然有些死板,但同窗們缺的就是這些死板嚴格的要求,要求不明確,學生根本沒法享受「靈活」帶來的好處,很多人隨便糊弄一下就過去了,這麼細緻的要求,也仍是有同窗糊弄的。

咱們的主要學習資源有教材,課程內容配套的微課。教材學習指導是同窗們學習的重要指導,至關於傳統課堂要講授的內容,用好了能大大減小學習時間,提升學習效率。教材學習指導初期幾乎是一頁一頁的指導,詳細到每段代碼如何閱讀,取得了良好的指導效果:

這樣還不夠,學生學習過程當中仍是會有問題的,多年實踐證實微信羣,QQ羣不適合答疑:問答很快被沖掉,一個問題要回答多遍,問答沒法積累。後來在博客園創建了課程答疑論壇進行答疑,承諾同窗們有問題24小時內回覆。

課程答疑論壇

與以往答疑時間無人提問不一樣,從以老師教爲主轉變爲學生學爲主後,在每週的學習過程當中同窗們總能提出一些問題,有問題才說明學了。咱們的課程答疑論壇應用效率很高的一個證實是,開課期間在博客園的排名一直是首屈一指的。博客園承諾同窗們的問題24小時內解決。問題數量,質量有了大大的提升。但仍是不夠及時,同窗們之間的交流纔是最及時的。藍墨雲班課解決了這個問題,老師要作的大可能是給提問和解答的同窗都加分就能夠了,不多須要回答問題了,大大激發了同窗們學習的積極性:

我認爲以上措施解決了以往同窗們學習中的各類障礙,只要想學習的同窗,就沒有什麼學習上的障礙了,剩下的是本身的學習態度和努力程度的問題了

過程化考覈對每週的教學效果進行檢測,老師能夠根據成績和出錯多的題目對教學內容,教學重點進行調整。若是沒有100分的限制,這學期學得好的同窗能夠拿150分,學得差的就只能50-60分。我常常讓同窗們體會「學過」和「學會」的差異,咱們老師也要體會「教過」和「教會」的差異。翻轉課堂之前我特別不理解,上課強調了那麼多遍的重點內容,甚至有些題目和答案都講了,考試爲何還有學生不會。過程化考試讓我瞭解到,因爲基礎和態度問題,不少同窗根本沒聽或聽不懂,因此學生的結論是老師沒教。過程化考試讓老師很早就知道學生有那些該掌握的知識沒有掌握,能夠經過反覆講解和反覆考覈來解決重點,難點的學習問題。

學習完每週內容後,同窗們要發學習博客。體會到寫博客的好處的同窗的學習熱情很高,有經驗和心得就經過寫博客分享。

同窗們寫的博客,我每篇都閱讀了,而且對絕大多數博客都有點評,甚至屢次點評,這是經過博客交做業的好處。我幾乎天天都要花幾個小時點評博客,本學期很多同窗的學習積極高,有的博客點評與老師,同窗互動十幾回,一學期來共點評學生2400屢次。博客點評是因才施教的一個重要方面,願意好好學的老師就多指導,學習中很是重要的一點是反饋,老師的點評是很重要的反饋,與老師互動多的同窗都是學習態度好,學習積極性高的,他們進步都很是大。一週花十幾個小時用來點評博客,回答問題,與同窗們互動,累但值得。學是認認真真的學,教是實實在在的教

每週咱們都有考覈,檢測本週學習的效果,考覈後會公佈試題和答案,這是學習中很是重要的反饋,我但願同窗們能對照答案,找出不足,查漏補缺,一些重點內容和錯得多的題目會屢次考覈。實踐中發現有了答案還有很多人看不懂,後面的課上增長了錯題講解的環節。我仍是認爲這必定程度上反映了學生的學習動力不足和學習積極性不高的問題。
使用了藍墨雲班課,效果更好,能夠實時反饋,瞭解學生的學習盲點,讓課上的講解更具針對性:

考試後會公佈成績和排名

最終成績狀況:本學期30名同窗,4個100分,90分以上的11人,80-89分的9人,70-79分 的6人,60-69分的4人。平均分86分,基本符合正態分佈。大一的學生相對學習更努力些,成績也比較好。

每週的排行榜對同窗們的學習促進做用仍是很明顯的,排在前面有獎勵,排在後面的有督促。

這學期繼續遊戲化,每週獎勵一下總分排第一的同窗,本學期獎勵範圍從T恤擴大到圖書和程序員茶杯:

獲獎同窗以下,他們的博客值得你們好好學習:

平時考覈圖書獲獎學生:

和助教謝濤老師王志強老師協商後,如下同窗做爲動手能力的表明各獎一件"作中學"T恤衫:

新經驗

藍墨雲班課

有了藍墨雲班課這個SPOC平臺,翻轉課堂的控制更加方便了,解決了多年的平臺問題。用了三個月經驗值就超過全國96%的老師。

就本門課程而言,發佈博客教程,視頻,做業等資源87個,開展課堂提問,課堂考覈,實驗檢查,課堂實踐等學習活動63次,設計包含500多道試題的題庫(其中部分爲以)。

教學週報能夠清晰地看到每週在教學上作的工做,包括爲學生提供線上學習的資源,爲學生在雲班課上設計的課堂活動。

教學資源分析

翻轉課堂要給學生提供合適的線上學習資源,實現必要的課前預習,保證課前學習效果。

之前使用微信羣,QQ羣發送資源時,老師不知道學生看了沒有,如今有了詳細的數據,老師提供的學習資源仍是有30%左右的學生沒好好看,其實上課遇到的不少問題在學習資源裏都有了解答。

老師提供的微課資源就是等價於傳統課堂的上課講解。微課的內容含量是傳統課堂的三倍左右,同窗們能夠根據本身的狀況跳着聽,完整聽,屢次聽直到掌握,從而作到了因材施教。微課的一個要義是基礎好的能夠少聽或不聽,基礎差的要屢次聽,惋惜的是事實是基本上是基礎差的沒有好好看視頻學習,反而抱怨上課老師不講教材內容。固然也存在打開視頻不看的鑽空子現象。

教學活動分析

課堂上的教學活動是我在教學中最爲關注的部分,也是要課堂效果的關鍵點,在每節課前我都會經過藍墨雲班課進行活動設計,雲班課的各類活動組件都能很好地知足個人活動設計要求,並且很是方便簡易,用手機開展活動的課堂效果也很好。

頭腦風暴活動讓全班同窗都參與到開放性問題的思考回答,隨堂測試能立刻獲得學生知識點學習狀況的數據反饋,點名簽到節省了傳統點名的時間,討論答疑突破了時間空間的限制讓我和學生隨時隨地交流學習問題,搖一搖選人增長了課堂的趣味性......

頭腦風暴活動是我用的最多的活動,我用它來向全班同窗提問,設置實驗的檢查點,提交課上實踐的截圖..., 這些頭腦風暴活動大大提升了學生的教學參與度。

教學活動的參與度都很高:

學情分析

在過程性考覈中,經驗值的得到方式,也能夠從下圖中看出來,其中參與課堂活動是最爲關鍵的,課堂上是沒有逃課現象的,學生也基本沒有時間去玩手機了,由於手機被用來參與個人課堂活動了。

從下圖能夠分析出,大部分同窗很是努力,入門的3位有兩位是助教。學習感受任務重的是成績好的同窗,大約1/4的同窗下的功夫還不到。

對學習資源進行分類,分紅必學,選學是很是有必要的,這樣會提升學習效率。

學習過程當中能夠隨時查看學生的學習狀態,好比這名同窗比較不適應翻轉課堂,老師提供的學習資源資源一半沒有學習,視頻纔看了3個,瞭解了這些狀況,老師和班主任對其嚴格要求,在本人的努力下,最後也及格了。

同窗們的反饋

藍墨雲班課上的答疑討論比較實用,對個人學習有促進,能夠隨時提出或者解決你們的問題,有時候參考你們的問題去學習也是一種不錯的方式,同時也方便了老師管理學生和教學,能夠及時地上傳一些視頻或文件供你們下載。固然,藍墨雲班課也是有缺陷的,好比說我要時時刻刻關注老師是否發佈了新的學習任務,由於只有打開了藍墨雲班課才知道,因此在一段時間裏,我看手機的頻率很高,然而有時只是頻繁地翻來翻去,感受有些不適應。

這個APP是很是好很是實用的,尤爲是對咱們樣的課程來講,由於全部的做業或是什麼都是在網上完成的,對於羣體信息的溝通來講這是很是方便的,老師每週下聽任務,指定時間而後咱們按時完成,既保證了速度也保證了效率,能夠繼續實行!

對學習有很大促進,拉近了師生的距離,可以很方便的獲得一些資源

在這個平臺上學習資料更加集中,便於咱們查找,並且學習經驗排名也能提升咱們的學習積極性。建議在這個平臺上上傳更多的學習資料和參考文獻,這樣也有助於咱們學習。

藍墨雲班課對個人學習頗有幫助,但願老師可以多加利用,而且加入更多的學習資料

藍墨雲班課有它獨特的教學管理系統,操做方便,相比較於博客園,藍墨雲班課可以上傳的資源類型更多,因此對個人學習有很大獲得促進做用。但願之後的課程也可以用藍墨雲班課做爲教學的輔助軟件。

助教機制

計算機系很是重視課程改革,爲咱們這們課程配了助教王志強老師,我備課,設計安排教學進程和教學內容,設計試題,設計實驗,做業點評,答疑等工做,王志強老師負責了改卷,答疑,平常輔導等大量工做,爲教學效果的提高付出了不少。

咱們課上使用了《構建之法》的教學方法,鄒欣老師(博客,微博,豆瓣)、周筠老師(知乎,微博,豆瓣)出資給咱們請了謝濤老師給咱們作助教.謝濤老師彌補了教師工業經驗不足的問題,讓同窗們一開始就能體會到業界是怎麼開發軟件的。謝濤老師經驗豐富,善於學習,工做認真細緻,贏得了師生一致的好評。

業界助教謝濤老師

謝濤老師助教總結中說,助教工做對做業博客總共評論約870條,評論互動約260條,平均和每名同窗交互30多條,除去一些不與老師互動的同窗,大概平均與每名同窗交互50多條,這些反饋對同窗們來講是很是有益,很是可貴的,值得你們倍加珍惜。

謝濤老師寫了十多篇教學相關的博客:

謝濤老師主導了兩次有意義的結對編程事件:

我自認是一名認真負責的老師,謝濤老師做業打分的認真細緻程度讓我自嘆弗如:

咱們的做業同窗們作了,國內一些頂尖程序員也作了,謝濤老師知乎三軟狗之一的輪子哥的交流記錄下來,寫出了四則運算(挑戰出題)解答之輪子哥版,同窗們好好看看,能學到很多課堂上學不到的知識,固然還有學習態度,工做態度。

謝濤老師說:

本次助教工做使得我更加敬佩盡職盡責的老師,由於每個細小的問題累積起來都是幾十倍甚至上百倍的量,同窗們都是思惟及其活躍的個體,每一個人都有着不一樣的狀況,老師都得一一處理,沒有親自經歷,是難以體會老師的這種用心良苦。

我很羨慕咱們的同窗有這樣的學習機會,也爲有的同窗不珍惜這種學習機會感到可惜。謝濤老師:

一學期下來,不多有同窗主動找老師溝通本身遇到的困難和疑惑(至少不多找我),反卻是成績公佈以後發現問題,有同窗跑來糾結成績。這裏但願同窗們能本身多思考,多提問,保持主動。

這必定程度上反應了咱們的學風問題,有的同窗喊累,有的同窗打着老師要求學習的幌子爭取時間,爭取資源玩遊戲,甚至上課在老師的眼皮底下還玩遊戲。

同窗們表達了對謝濤老師的感謝和敬佩:

儘管咱們在平時的做業或者結對編程中犯了不少重複的錯誤,但老師老是耐心的提醒咱們。咱們的每一篇博客幾乎都有老師的建議或者鼓勵,而這些評論經常在老師本該休息的時間。真心感謝謝濤老師的辛勤付出。

很是感謝謝濤老師的辛勤付出,上文中提到謝濤老師可讓我在週末晚上保持學習的動力,除此以外,謝濤老師是一個很是敬業的老師,雖然至今沒有見過咱們,不太瞭解咱們每一個人的性格,可是依然按時評價着咱們的博客,對於每一個人的博客又能夠提出不一樣程度的問題。我看到一些同窗的commit提交一直有問題,謝濤老師就一直提醒,直到最後一週的總結博客他也沒有放過。

從謝濤老師每次發佈的做業中也能看出他的良苦用心,每次都會及時與婁老師、鄒欣老師、範飛龍老師等共同討論發佈這樣的做業合不合適,同窗們能不能接受,同窗們須要多少時間完成,確保合理以後才發出來。在成績總結的博客中,他的分數分配很是精細,在檢查咱們代碼時很認真,能測試的一個都不放過,固然有時候也不免會出現一些錯誤。

首先先要感謝謝濤老師,他在咱們本學期的課程中也付出了不少,尤爲是對咱們博客中所提到的問題對咱們深刻的追問,使得咱們進一步學習,雖然咱們認爲老師有時候有些死板,可是畢竟老師也沒有見過咱們,並不瞭解咱們每一個人的狀況,只是從博客來了解咱們仍是有些片面的。綜上對於謝濤老師在本學期作的工做,我深表感謝!

謝濤老師十分的負責,是結對編程的大魔王,大BOSS。每次的結對編程實驗謝老師總會很仔細到找出問題,並不留餘力的讓你改正。嘿嘿,總之,謝老師人仍是很好的,加油!

謝濤老師在工做上很是負責,基本上在熬夜在每週日博客提交截止後及時給各個同窗指出不足並進行互動。並且還會耗費精力在咱們的結對項目上,逐一編譯並給咱們指出問題。在打分的方面也很是仔細,可讓每個同窗均可以拿到相對公平的成績。

我以爲謝濤老師是個很是認真負責的老師,在結對編程中他提出了不少咱們沒有發現的細節問題,在結束後也對咱們組的問題提供瞭解決方案。最後打分時的分數點比較清晰明確,可以從中看出本身還存在什麼不足之處作到及時改進。

我要給這位良心助教點個贊,在咱們學習的過程當中給了咱們不少幫助,每一個同窗的問題他都認真指出,十分具備責任心。建議謝濤老師在往後能給咱們提出更多的指導。

謝老師很是的認真,爲咱們的學習提供了許多幫助。在咱們學習遇到困難的時候,老師很耐心的點撥咱們。

謝濤老師真的是一個十分負責的老師,他總會在第一時間給咱們評論。而且在四則運算的項目上花那麼多時間,單單給我就在低下評論了十幾回,十分感謝謝濤老師一學期的教導。

感謝老師的辛勤付出。每篇博客都看,認真評論,給出意見。提醒老師注意休息。

謝濤老師嚴謹慎重,對提升咱們的代碼質量作出了不可磨滅的貢獻,他提出的不少建議都十分的新穎實用,他的嚴格要求也讓咱們意識到當一名合格的程序員並無想象中的那麼簡單,也激發了咱們向上的鬥志。

第一次接觸謝老師即是那次老師幫忙修個人虛擬機,遠程操控個人電腦,在幫忙以後還給我相關博客連接,讓我學會處理相似狀況。在個人博客中有不少老師的評論,很是謝謝老師可以提出許多有價值的建議,幫助我成長。謝老師佈置的四則運算相關做業,讓咱們收穫很多,老師的評價工做特別認真客觀,感謝老師的付出。

很感謝老師一學期以來認真負責地幫咱們每一位同窗批閱試卷,評論博客,驗收代碼,遇到有困難的問題,老師也總能熱心地指導解決,給出建議,對這門課的學習起到實質性的幫助。

首先要感謝謝濤老師,我對謝濤老師給予很高的評價。他的認真、仔細、負責值得咱們的欽佩,謝濤老師對代碼的細節很是關注,同時,謝老師仍是一位頗有原則的老師,同窗的做業必須按要求來完成,加分減分也嚴格按照標準來執行。感謝謝老師!

謝老師很是的負責任,咱們的每篇博客他都會認真的去看,給咱們提出問題並幫助咱們解決。一開始內心是很是恨謝老師的,就想着,你怎們又提問題?這麼多事等等,而如今卻有着徹底不一樣見解,隨着心智的成熟以及知識的進步,我也學會了感謝老師,謝老師付出了那麼多,值得咱們點贊!

即便成績很差,學生也能意識到本身的問題:

謝濤老師是一個很負責任的老師,同窗們發的博客他都會第一時間做出評論。但個人態度沒有對得起謝濤老師的負責。

學校助教王志強老師

王志強老師點評學生的博客以及交流了300屢次:

王志強老師對學生每週的做業都進行了總結,寫了十多博客:

王志強老師每次都指出同窗們學習中的突出問題,而且給做業打出細緻的分數:

爲了支持個人遊戲化學習理念,王志強老師利用本身的科研經費購買十多本《浪潮之巔》做爲成績優秀的同窗的獎品來激勵同窗們努力學習。

使用藍墨雲班課前,咱們打印試卷進行隨堂考試,爲了讓實驗驗收更加公平,咱們也出試題進行考覈,王志強老師批改了300多份做業和實驗的試卷,還查看了同窗們的每一行代碼。付出巨多。

感謝王老師!!

預備做業

爲了增進師生了解,在開課前我佈置了三次預備做業:

這些預備做業獲得國內很多高校的老師的贊同和效仿。我也把收穫總結在 學生的頭腦是容器仍是火把?這篇博客中。

三次預備做業讓我認識到了同窗們的優秀,認爲「同窗們掌握了作好一件事情的正確方法,學好專業課中的程序設計不是一件難事。」

事實上,他們的確是至今我教過的班級中最認真,真正投入最多的一個。

三次預備做業的一個問題是大大增長了我對同窗們的指望,致使提的學習要求稍有點高,至關一部分同窗也不能或者說不肯把「掌握了作好一件事情的正確方法遷移到學好專業課中的程序設計」中來。

班主任深度參與

教好學生是教師的責任仍是學生工做老師的責任?我一直認爲是共同的責任。

劉瑾老師是位認真負責的老師,參與了咱們課程學生博客的點評,軍心的維護,前期聽課,落後學生的督促等工做。爲咱們課程改革的推動和教學效果的提高提供了很大的幫助。

我認爲張旭升同窗的進步是班主任深度參與教學促進教學效果的一個案例。在課程總結中,張旭升同窗說:

  • 學習方法上:這門課程的學習打破了以前全部學習共用的方法——「先理解後實踐」,咱們實在實踐中理解,實踐中學習,從最基礎的學起。
  • 學習能容上:班主任在班會上也告訴過咱們,大學的高等教育與高中的初等教育最大的不一樣就在於學習內容的廣度和寬度,之前的學習中咱們所學的基本上都是一些狹義的知識,並不會展開來說,而如今就好比咱們學的計算機方面的知識,它本就是許多的人通過多少年的研究造成的,本就是一個很大的體系,因此咱們並不能直接從哪一塊去理論的學習,最好的方法也就是這樣的先用後懂。
  • 學習心態上:在課程學習中,咱們每週都會遇到無數的問題,而後咱們先嚐試着本身解決,若是不行再去向別人求助,最後將這些問題都呈如今本身的每週的總結博客中。就是在這種編譯->出錯->改正->編譯->出錯->···->編譯->運行->異常->修改->···->成功一步步中咱們纔開始成長。

張旭升同窗其餘課程基礎比較薄弱,劉老師鼓勵他從你們都沒接觸過的編程努力學好,加強學習的自信心。張旭升同窗的動手能力如今是首屈一指的。

感謝劉老師!

全面走向開放

這幾年,從封閉的有道雲協做 全面開放走向博客園,老師和同窗們都經歷了不適應到習慣的過程,如今也都嚐到了開放的好處。

實驗樓課堂提供了學習環境,對學生的學習時間有統計,是個好工具。

學生實踐的代碼都在碼雲git@OSC託管。實踐狀況也都是公開的。

即便使用了藍墨雲班課這個SPOC平臺,做業的佈置,學習指導,學習進程也都是在博客園公開後再引用。

公開也就意味着更公正!

Git與代碼託管

課程實踐性強,動手實踐就很是重要,雖然有「代碼驅動的程序設計學習」的這麼詳細的學習指導。學生踏踏實實使用GDB進行反饋,加點代碼,改點代碼的仍是很少,排名前三分之一的同窗問題不大,後面的仍是要增強控制,若是老師一個一個的檢查,花費時間會很是多,經過git log --pretty=format:"%h - %an, %ar : %s截圖的結果,和`wc -l 'find src -name *.c``代碼量統計截圖,能夠自動化檢查學生的實踐狀況,而後重點抽查。

經過git log --pretty=format:"%h - %an, %ar : %s的截圖,誰在何時提交了代碼清清楚楚。

經過`wc -l 'find src -name *.java``的截圖,一學期的代碼量明明白白。

這學期同窗們有了3000至10000行的代碼訓練,大多數同窗超過了5000行的目標,使用git的好處顯現。

但是這樣有的同窗仍是沒有達到掌握Java基本編程技巧,用來解決簡單問題的目標,緣由同窗們的總結說的好:

經過這一學期的學習真的不難看出代碼行數與編程水平真的有必定關係,但也存在bug,所謂學而不思與思而不學,我班馬平川同窗的代碼行數是最少的,但他的編程能力是最強的,同理,代碼行數最多的同窗編程能力也不是最好的,敲代碼當然重要,但編程過程當中的學習和思考也是十分重要的,沒有總結反思,再多的代碼也是別人的,本身學不到什麼。

刻意練習,積極思考作的還不夠!!

下學期必定增強用「僞代碼,產品代碼,測試代碼」解決問題,構建代碼框架的訓練。

代碼託管還體現了開放的好處,咱們在課堂上明確反對用漢字命名標識符,咱們學生的實踐引起國內很多高校老師和程序員的爭論:

http://www.cnblogs.com/yangjingdian/p/6852380.html 用中文做類名、變量名、方法名通常只停留在討論上,這位同窗在做業中這麼作了。你們有什麼見解?

對學習吃力學生增強管理

本學期待及格同窗的管理辦法:

  1. 查看http://www.cnblogs.com/rocedu/p/5826175.html,學習考覈方法,瞭解本學期100分的構成
  2. 每週考試總分5分,平均分低於3分的爲待及格同窗。
  3. 待及格同窗必定關注老師博客,這樣才能及時看到老師點評,不會的學習一下http://www.cnblogs.com/rocedu/p/5145864.html
  4. 從本週起,待及格同窗每週至少發兩篇學習博客,週四前一篇,週日前一篇。鼓勵你們每天發學習博客。週四前不發的扣一分,認真學習寫得好的加一分。
  5. 待及格同窗每週至少找老師驗收一次學習狀況,主要是代碼、教程習題的完成狀況
  6. 鼓勵學的好的和成績差的結對學習,對成績好的有必定的加分。

微信公衆號

本學期更多的使用了教學微信公衆號「rocedu」,發佈教學,讀書學習的相關信息,與同行,同窗們有了更多的交流。

也歡迎你們關注交流(手機上能夠長按下面的二維碼關注):

rocedu

課程總結

學生課程總結基本要求見這.

同窗們的收穫仍是很大的:

本學期的《程序設計與數據結構》課程即將告一段落,在本學期的「作中學」演練中,個人收穫頗多。從第一週的迷茫到第十六週的冷靜,我如今正處於新手向高級新手過渡的階段。相比起新手,我再也不那麼急於求成了,我遇到問題時再也不那麼焦慮了,漸漸地我開始學着去深刻思考,並儘量本身解決遇到的問題。而相比起高級新手,思考程度又顯得有些膚淺,代碼理解程度也不夠
最大的收穫就是了解了如何用「作中學」的方式學習,這種方式雖然耗時,雖然有爭議,可是再怎麼說你也會受益不淺,畢竟這個問題是經過你本身獨立思考解決的,你會頗有成就感。其次,我經過「作中學」逐漸學會了應該如何深刻思考,雖然如今個人一些問題還很基礎,可是這都是在爲之後作鋪墊。
還有就是寫博客的收穫,上文中以提到,個人markdown技術也隨着博客的數量一塊兒進步,從預備做業01到這篇博客,我能夠感覺到個人收穫愈來愈多,雖然有些之前博客中提到的知識有遺忘,可是當我再次複習時,我會有很深入的印象,包括當時我是怎麼解決這個問題的,當時我是怎麼想的。另外,我常常在焦慮的時候翻看一些博客園上IT精英們的神級博客,博客園自己就是一個面向開發者的知識分享社區,這麼多高質量的博客,雖然大部分看不懂,可是有的博客卻能夠調動你學習的興趣,因此看博客的收穫也很大。除此以外,及時回覆老師的問題也使我學到了不少。

  • 20162308馬平川同窗方法得當,是學得至關明白的同窗,基本可以觸類旁通了,代碼量並很少,有效代碼量應該是首屈一指的了:

這個課程比較大的收穫是老師提供了不少方向,可以讓我去接觸不少技術,這個是很是大的收穫。另一個是對設計模式和OOP原則的講解,可以初步地體會和理解大型軟件工程項目中的設計方法。

他的學習建議是很是有效的,你們應該多讀讀:

積極主動敲代碼。程序設計課若是連代碼都懶得敲,那這麼課程就是紙上談兵,什麼都學不會。積極主動的更進一步就是自我驅動地學習知識,由於程序設計課程的覆蓋面太廣,不少知識都是淺嘗輒止,能夠選取課上感興趣的、沒聽明白的地方去深刻。
遇到問題,先本身想辦法解決。能夠去百度、查書等等,推薦看stackoverflow上其餘優秀程序員的解決思路,或者用英文在這個平臺上提問,找同窗解決當然是一種方法,可是看看其餘業界程序員的解決方案可能會給你提供更多思路。
充分利用Git工具。利用Git不止能夠用於本身的項目的版本控制,也能夠去看其餘的優秀開源項目的代碼,去學習別人的編程思路。
最後一點,知易行難。不少人聽了不少道理,依然過很差這一輩子,上面三點建議,關鍵在於作的過程。

首先在學習方法上。咱們曾經習慣着老師將重要的知識點傳授給咱們,這樣省時不費力。而這學期Java的學習則徹底顛覆了傳統的學習方法,大部分都是經過自學或者藉助網絡來得到知識。這種教學方式一開始讓咱們難以接受,由於這樣的學習太耗精力了。但這樣的方法在運用了半個學期後,同窗們的抱怨也漸漸變少,咱們也習慣了遇到問題上百度的解決方式,靠本身得到知識和技能。其實在不少課程的學習上,大學與初高中的教學方式都不同。提升本身的自學方式讓咱們在其餘科目中也能更加遊刃有餘。我相信即便離開大學的學習氛圍,咱們也可以經過本身掌握須要或想要學習的內容。

在效率問題上也得到了不小的進步。還記得剛開始寫博客的時候得花上週六一成天,後來寫着寫着熟悉之後,寫博客仍是挺快的。在平時學習過程當中,將遇到的問題該記下的立刻就記下,週六寫博客直接將這些問題和解決方法總結一下就行。

還有碰到問題時的心態。之前我很怕碰到問題而後讓我去解決,習慣性的逃避來處理。就像剛開始裝虛擬機,碰到問題就重裝,用粗暴的方式解決。可是如今慢慢的開始欣喜於碰到問題,每次git出現問題或者教材上有看不懂的地方,我就會主動停下來解決它,而不是逃避。而且將問題記錄下來,給碰到一樣問題的人提供解決方法。

收穫最大的莫過於結隊編程的好處。當我與個人搭檔馬軍結隊編程時,咱們對問題會有更多的看法,除了個人想法以及他的想法外,經過取其長,補自短,咱們還能想到兩我的都想不到的方法。這也爲咱們對問題有區別於其餘人更爲獨特的看法。另外,結隊編程能夠提升編程的速度,各自負責相應的部分後,咱們每一個人編的代碼也要少了點,從而減輕了代碼負擔,也提升了效率。最重要的是:當兩我的把代碼給編出來時,心裏深處涌上的我的以及自豪以及集體成就感更是無可比擬的,這是一我的的時候體驗不到的。

  • 20162318 2016-2017-2《程序設計與數據結構》課程總結中說:

    學習方法上,從之前的傳統教學模式轉變爲如今的翻轉課堂,在一開始的學習中並非十分的適應這種教學模式可是到了後期才愈來愈發覺這種教學模式是適合咱們這種實驗課的,只有作中學才能培養我本身的動手能力,而不是隻會理論。編程須要的是思考與實踐,而不是單純的理論學習。
    懂得遇到問題去本身查找答案,而不是像之前那樣,什麼問題都去找老師。學會了如何把問題丟到百度上,學會了如何去查API文檔

  • 20162311 2016-2017-2《程序設計與數據結構》課程總結也很是認真,學會了使用目錄:

最大的收穫是學會了自學。學會了經過看博客、查百度、查API文檔來解決問題,而不是一碰到問題就去問老師,問同窗。固然這也要投入大量的時間,如今看來,這些投入是值得的。

收穫最大的莫過於結隊編程的好處。當我與個人搭檔馬軍結隊編程時,咱們對問題會有更多的看法,除了個人想法以及他的想法外,經過取其長,補自短,咱們還能想到兩我的都想不到的方法。這也爲咱們對問題有區別於其餘人更爲獨特的看法。另外,結隊編程能夠提升編程的速度,各自負責相應的部分後,咱們每一個人編的代碼也要少了點,從而減輕了代碼負擔,也提升了效率。最重要的是:當兩我的把代碼給編出來時,心裏深處涌上的我的以及自豪以及集體成就感更是無可比擬的,這是一我的的時候體驗不到的。

對改進教學提出的建議

同窗們提出很多好建議,這些建議我在後面的課程中落實:

  1. 增強課堂時間
  2. 課後PP的講解
  3. 內容拓展,內容深化上能夠多作工做
  4. 進行小組項目的實踐
  5. 待及格定在70分,好多及格的同窗其實作的並很差而只是剛剛及格,並不見得好好學了
  6. 每週選5篇同窗博客要求全部人點評,促進學習交流,對交流多的同窗獎勵
  7. 督促學生作課堂筆記,結合有道雲筆記電子化,並做爲一個考覈點
  8. 學習博客中加入每週考試錯題更正狀況
  9. 實踐考覈這塊要求代碼加註

教學過程當中的好措施

老師教學方法中獲得大多同窗承認的作法有:

  1. 藍墨雲班課的引入,應用
  2. 結對學習
  3. 經過博客,git交做業
  4. 內容串講,錯題講解
  5. 課堂實踐
  6. 寫學習指導,督促同窗們多理解、運行代碼
  7. 各類學習資料的提供
  8. 作中學
  9. 過程化考覈

教學反思

同窗們提出來的問題有:

  1. 增強課堂控制,利用好課堂時間:後面要充分安排好每一節的內容
  2. 博客互評的參與度不高: 採納前面學生的建議,試驗了並很差,後面只讓結對互評
  3. 英語出題: 工具安裝錯誤,編譯器錯誤即便很簡單,很多同窗還不看,後面增強英語的學習指導和應用
  4. 代碼量與有效代碼量:繼續刻意練習的指導

我本身感到要增強的地方有:

  • 進度條的做用沒發揮好: 時間管理,效率提高,學習過程效率提升的過程參考《構建之法》監控
  • 項目,應用上多下功夫,引入大課建設內容:吸取其餘學校項目管理經驗
  • 指導學生掌握學習方法,提升學習效率,引入PSP的作法
  • 增強英語的應用:基礎試題,解答使用英語
  • 刻意練習
  • 鼓勵多思考
  • 教學視頻的學習指導
  • 致謝

特別感謝鄒欣老師(博客,微博,豆瓣)、周筠老師(知乎,微博,豆瓣),範飛龍博士(博客微博)以及人民郵電出版社的陳冀康編輯。鄒老師,周老師,龍博士點評咱們學生的博客,鼓勵咱們的同窗,激發了很多同窗的學習興趣;感謝人民郵電出版社贊助的T恤。

感謝北京航空航天大學 的羅傑老師(博客),福州大學的張棟老師(博客),東北師範大學的楊貴福老師(博客),教學中跟大家學了很多方法,有大家這些負責的老師作榜樣,我教學更有積極性了,看到大家的教學效果,也給我了很多壓力。但願後面能愈來愈好!

在此,對博客園表示衷心的感謝,特別感謝園主杜勇和工程師阿春,有什麼問題基本都是當天解決。

感謝賀利堅老師(博客園博客,CSDN博客,新浪博客)。賀老師向我推薦了藍墨雲班課讓個人教學有如虎添翼的感受!

感謝藍墨雲班課原總耐心細緻的回答,藍墨還邀請我向全國的老師分享翻轉課堂和作中學的經驗:

感謝同窗們的大力配合,與大家一塊兒體會教學相長是一件幸福的事情!


歡迎關注「rocedu」微信公衆號(手機上長按二維碼)

作中教,作中學,實踐中共同進步!

rocedu



若是你以爲本文對你有幫助,請點一下左下角的「好文要頂」和「收藏該文

相關文章
相關標籤/搜索