有關課程的一些信息參考2016-2017-2 《程序設計與數據結構》課程總結.html
爲了這學期的課程,我記錄了選教材的過程,參考兩個月選一本理想教材,上文提到:java
學習數據結構的概念不難,難點是:git
如何實現從數據結構概念到程序設計實現的跨越(即如何實現一個數據結構)程序員
如何實現從實際應用到數據結構抽象的跨越(即如何利用數據結構解決實際問題)web
《程序設計與數據結構》並非一學期講Java,一學期講數據結構這麼簡單,而是把編程和數據結構有機的結合起來,上學期重點解決「如何實現從實際應用到數據結構抽象的跨越(即如何利用數據結構解決實際問題)」的問題,這學期重點解決「如何實現從數據結構概念到程序設計實現的跨越(即如何實現一個數據結構)」的問題。 這種方法是 C+數據結構很差解決的,我相信使用C++,Java,Python等有類STL庫、Collection API的語言講授數據結構會更好。算法
翻轉課堂採用優秀的SPOC平臺藍墨雲班課和博客園的班級教育應用,咱們也使用博客園課程管理,兼顧封閉與開放。編程
咱們的課程主頁以下:小程序
翻轉課堂不是老師讓學生自學就完了,學生要自學,老師也要作大量的工做,付出巨大的努力。設計模式
首先要安排好每週的學習內容,咱們這學期的教學進程參見:2017-2018-1學期《程序設計與數據結構》教學進程:微信
每週都給出明確的學習目標,詳細的學習資源和有最後期限的學習任務:
雖然有些死板,但同窗們缺的就是這些死板嚴格的要求,要求不明確,學生根本沒法享受「靈活」帶來的好處,很多人隨便糊弄一下就過去了,這麼細緻的要求,也仍是有同窗糊弄的。
咱們的主要學習資源有教材,課程內容配套的微課。教材學習指導是同窗們學習的重要指導,至關於傳統課堂要講授的內容,用好了能大大減小學習時間,提升學習效率。教材學習指導初期幾乎是一頁一頁的指導,詳細到每段代碼如何閱讀,取得了良好的指導效果:
這樣還不夠,學生學習過程當中仍是會有問題的,多年實踐證實微信羣,QQ羣不適合答疑:問答很快被沖掉,一個問題要回答多遍,問答沒法積累。後來在博客園創建了課程答疑論壇進行答疑,承諾同窗們有問題24小時內回覆。
與以往答疑時間無人提問不一樣,從以老師教爲主轉變爲學生學爲主後,在每週的學習過程當中同窗們總能提出一些問題,有問題才說明學了。咱們的課程答疑論壇應用效率很高的一個證實是,開課期間在博客園的排名一直是首屈一指的。博客園承諾同窗們的問題24小時內解決。問題數量,質量有了大大的提升。但仍是不夠及時,同窗們之間的交流纔是最及時的。藍墨雲班課解決了這個問題,老師要作的大可能是給提問和解答的同窗都加分就能夠了,不多須要回答問題了,大大激發了同窗們學習的積極性:
我認爲以上措施解決了以往同窗們學習中的各類障礙,只要想學習的同窗,就沒有什麼學習上的障礙了,剩下的是本身的學習態度和努力程度的問題了。
過程化考覈對每週的教學效果進行檢測,老師能夠根據成績和出錯多的題目對教學內容,教學重點進行調整。若是沒有100分的限制,這學期學得好的同窗能夠拿150分,學得差的就只能50-60分。我常常讓同窗們體會「學過」和「學會」的差異,咱們老師也要體會「教過」和「教會」的差異。翻轉課堂之前我特別不理解,上課強調了那麼多遍的重點內容,甚至有些題目和答案都講了,考試爲何還有學生不會。過程化考試讓我瞭解到,因爲基礎和態度問題,不少同窗根本沒聽或聽不懂,因此學生的結論是老師沒教。過程化考試讓老師很早就知道學生有那些該掌握的知識沒有掌握,能夠經過反覆講解和反覆考覈來解決重點,難點的學習問題。
每週咱們都有考覈,檢測本週學習的效果,,這是學習中很是重要的反饋,我但願同窗們能對照答案,找出不足,查漏補缺,一些重點內容和錯得多的題目會屢次考覈。實踐中發現有了答案還有很多人看不懂,後面的課上增長了錯題講解的環節。我仍是認爲這必定程度上反映了學生的學習動力不足和學習積極性不高的問題。 使用了藍墨雲班課,效果更好,能夠實時反饋,瞭解學生的學習盲點,讓課上的講解更具針對性:
最終成績狀況:本學期30名同窗,4個100分,90分以上的3人,80-89分的7人,70-79分 的5人,60-69分的10人,不及格2人。平均分78分,基本符合正態分佈。
每週的排行榜對同窗們的學習促進做用仍是很明顯的,排在前面有獎勵,排在後面的有督促。
這學期繼續遊戲化,每週獎勵一下總分排第一的同窗,本學期獎勵有圖書和程序員茶杯:
一年的課程仍是引入了 《構建之法》的作法:結對學習、團隊項目,30個同窗分爲五個小組,設計一個Android遊戲:
有了藍墨雲班課這個SPOC平臺,翻轉課堂的控制更加方便了,解決了多年的平臺問題。不到一年經驗值就超過全國98.53%的老師。
這裏有人體會:學習一項技能,作一些事情,想超過90%的人,稍微努力一下就能夠鶴立雞羣了,可是想超過99%的人,那是要付出巨大努力的。那些考100分的同窗太了不得了!!
就本門課程而言,發佈博客教程,視頻,做業等資源91個,開展課堂提問,課堂考覈,實驗檢查,課堂實踐等學習活動73次,設計包含300多道試題的題庫(一年總計上千道題目了)。
教學週報能夠清晰地看到每週在教學上作的工做,包括爲學生提供線上學習的資源,爲學生在雲班課上設計的課堂活動。
翻轉課堂要給學生提供合適的線上學習資源,實現必要的課前預習,保證課前學習效果。
之前使用微信羣,QQ羣發送資源時,老師不知道學生看了沒有,如今有了詳細的數據,老師提供的學習資源仍是有30%左右的學生沒好好看,其實上課遇到的不少問題在學習資源裏都有了解答。
老師提供的微課資源就是等價於傳統課堂的上課講解。微課的內容含量是傳統課堂的三倍左右,同窗們能夠根據本身的狀況跳着聽,完整聽,屢次聽直到掌握,從而作到了因材施教。微課的一個要義是基礎好的能夠少聽或不聽,基礎差的要屢次聽,惋惜的是事實是基本上是基礎差的沒有好好看視頻學習,反而抱怨上課老師不講教材內容。固然也存在打開視頻不看的鑽空子現象。
課堂上的教學活動是我在教學中最爲關注的部分,也是要課堂效果的關鍵點,在每節課前我都會經過藍墨雲班課進行活動設計,雲班課的各類活動組件都能很好地知足個人活動設計要求,並且很是方便簡易,用手機開展活動的課堂效果也很好。
頭腦風暴活動讓全班同窗都參與到開放性問題的思考回答,隨堂測試能立刻獲得學生知識點學習狀況的數據反饋,點名簽到節省了傳統點名的時間,討論答疑突破了時間空間的限制讓我和學生隨時隨地交流學習問題,搖一搖選人增長了課堂的趣味性......
頭腦風暴活動是我用的最多的活動,我用它來向全班同窗提問,設置實驗的檢查點,提交課上實踐的截圖..., 這些頭腦風暴活動大大提升了學生的教學參與度。
教學活動的參與度都很高:
在過程性考覈中,經驗值的得到方式,也能夠從下圖中看出來,其中參與課堂活動是最爲關鍵的,課堂上是沒有逃課現象的,學生也基本沒有時間去玩手機了,由於手機被用來參與個人課堂活動了。
從下圖能夠分析出,大部分同窗很是努力,入門的3位有兩位是助教。學習感受任務重的是成績好的同窗,大約1/4的同窗下的功夫還不到。
對學習資源進行分類,分紅必學,選學是很是有必要的,這樣會提升學習效率。
學習過程當中能夠隨時查看學生的學習狀態,好比這名同窗比較不適應翻轉課堂,老師提供的學習資源資源一半沒有學習,視頻纔看了3個,瞭解了這些狀況,老師和班主任對其嚴格要求,在本人的努力下,最後也及格了。
藍墨雲班課上的答疑討論比較實用,對個人學習有促進,能夠隨時提出或者解決你們的問題,有時候參考你們的問題去學習也是一種不錯的方式,同時也方便了老師管理學生和教學,能夠及時地上傳一些視頻或文件供你們下載。固然,藍墨雲班課也是有缺陷的,好比說我要時時刻刻關注老師是否發佈了新的學習任務,由於只有打開了藍墨雲班課才知道,因此在一段時間裏,我看手機的頻率很高,然而有時只是頻繁地翻來翻去,感受有些不適應。
這個APP是很是好很是實用的,尤爲是對咱們樣的課程來講,由於全部的做業或是什麼都是在網上完成的,對於羣體信息的溝通來講這是很是方便的,老師每週下聽任務,指定時間而後咱們按時完成,既保證了速度也保證了效率,能夠繼續實行!
對學習有很大促進,拉近了師生的距離,可以很方便的獲得一些資源
在這個平臺上學習資料更加集中,便於咱們查找,並且學習經驗排名也能提升咱們的學習積極性。建議在這個平臺上上傳更多的學習資料和參考文獻,這樣也有助於咱們學習。
藍墨雲班課對個人學習頗有幫助,但願老師可以多加利用,而且加入更多的學習資料
藍墨雲班課有它獨特的教學管理系統,操做方便,相比較於博客園,藍墨雲班課可以上傳的資源類型更多,因此對個人學習有很大獲得促進做用。但願之後的課程也可以用藍墨雲班課做爲教學的輔助軟件。
計算機系很是重視課程改革,爲咱們這們課程配了助教王志強老師,我備課,設計安排教學進程和教學內容,設計試題,設計實驗,做業點評,答疑等工做,王志強老師負責了改卷,答疑,平常輔導等大量工做,爲教學效果的提高付出了不少。
王志強老師點評學生的博客以及交流了300屢次:
王志強老師對學生每週的做業都進行了總結,寫了很多教學博客:
感謝王老師!!
這幾年,從封閉的有道雲協做 全面開放走向博客園,老師和同窗們都經歷了不適應到習慣的過程,如今也都嚐到了開放的好處。
實驗樓課堂提供了學習環境,對學生的學習時間有統計,是個好工具。
學生實踐的代碼都在碼雲git@OSC託管。實踐狀況也都是公開的。
即便使用了藍墨雲班課這個SPOC平臺,做業的佈置,學習指導,學習進程也都是在博客園公開後再引用。
公開也就意味着更公正!
課程實踐性強,動手實踐就很是重要,雖然有「代碼驅動的程序設計學習」的這麼詳細的學習指導。學生踏踏實實使用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,所謂學而不思與思而不學,我班馬平川同窗的代碼行數是最少的,但他的編程能力是最強的,同理,代碼行數最多的同窗編程能力也不是最好的,敲代碼當然重要,但編程過程當中的學習和思考也是十分重要的,沒有總結反思,再多的代碼也是別人的,本身學不到什麼。
刻意練習,積極思考作的還不夠!!
這學期在動手上增強了很多,但促進同窗們深度學習的效果還不理想,這方面的努力永遠在路上!
本學期更多的使用了教學微信公衆號「rocedu」,發佈教學,讀書學習的相關信息,與同行,同窗們有了更多的交流。
也歡迎你們關注交流(手機上能夠長按下面的二維碼關注):
學生課程總結說明同窗們的收穫仍是很大的:
轉眼間一年過去了,在這一年間《程序設計與數據結構》這門課帶給咱們的有痛苦,也有歡樂,有疲憊,也有收穫。不論咱們收穫了多少,咱們都是在不斷嘗試,老師在不斷嘗試新的教學方法,咱們也在嘗試着不斷接受。這個學期咱們主要針對數據結構的內容進行學習。在結對互助的基礎上,還開設了團隊項目,雖然整體效果不太理想,可是不論怎樣咱們嘗試了一次團隊合做,留下了較爲深入的印象。總之,做爲信管專業的學生,可以有幸接觸瞭解到一些軟件工程的相關內容,也算是一筆額外的財富吧
首先談談課程收穫,學到了數據結構的知識,也瞭解了一些數據結構在各個領域的運用。數據結構的代碼實現是個體力活,更是個腦力活,不論怎樣我也掌握了一部分。對於本學期講到的各類算法,二分查找和線性查找和一些基礎的排序算法算是比較熟悉了,團隊的合做項目讓我瞭解到一個軟件的發佈流程原來這麼麻煩,卻又這麼充實。
其次說說其餘方面的收穫,由於團隊博客有涉及到一些工具軟件的使用,我在使用一些工具時也收穫了一些經驗和使用技巧,在和團隊協做的過程當中也有從團隊的其餘成員那裏學到一些優秀的品質。他們的那種作任何事都一氣呵成的氛圍感染了我,也偶爾帶動着整個團隊,不論咱們的項目作得怎麼樣,咱們都盡力了。而且我能夠保證咱們團隊是累積貢獻量和收穫量最多的團隊。
除此以外,我體驗了一年的「作中學」,在代碼上的感觸以前有說起, 泛型類-Bag 練習 這篇博客足以說明「作中學」的價值。在不斷查找資料的過程當中,個人「搜商」也有提升。除了將一些 作的時間 運用在代碼上以外,我還將較多的時間運用在了博客上,爲了使博客儘量地呈現出精美的效果而且要與選擇的模板相映託,每次有時間逛博客園時,我都會去額外地瞭解其餘的一些語言(比較基礎),並作出各類嘗試,每次看別人的博客時,老是不忘看看排版格式。如今,我能夠本身設計markdown三級標題的效果了。有的博客側邊欄也很豐富,個人側邊欄原來也挺豐富,如今以爲寫博客有時不該該太分心,因此只留下了一個,其餘的都去掉了。
這個課程比較大的收穫是老師提供了不少方向,可以讓我去接觸不少技術,這個是很是大的收穫。另一個是對設計模式和OOP原則的講解,可以初步地體會和理解大型軟件工程項目中的設計方法。
他的學習建議是很是有效的,你們應該多讀讀:
積極主動敲代碼。程序設計課若是連代碼都懶得敲,那這麼課程就是紙上談兵,什麼都學不會。積極主動的更進一步就是自我驅動地學習知識,由於程序設計課程的覆蓋面太廣,不少知識都是淺嘗輒止,能夠選取課上感興趣的、沒聽明白的地方去深刻。 遇到問題,先本身想辦法解決。能夠去百度、查書等等,推薦看stackoverflow上其餘優秀程序員的解決思路,或者用英文在這個平臺上提問,找同窗解決當然是一種方法,可是看看其餘業界程序員的解決方案可能會給你提供更多思路。 充分利用Git工具。利用Git不止能夠用於本身的項目的版本控制,也能夠去看其餘的優秀開源項目的代碼,去學習別人的編程思路。 最後一點,知易行難。不少人聽了不少道理,依然過很差這一輩子,上面三點建議,關鍵在於作的過程。
在上學期的課程總結中,我提到了本身比較遺憾學習中沒有作到積極主動敲代碼。這一學期,在本身比較主動的逼迫下,我以爲這個問題有所改善。第一學期以爲敲代碼是一件比較痛苦的事情,這學期慢慢感覺到了其中的樂趣,特別是本身解決了一個問題之後,那種成就感很強烈。咱們所用的教材上,每一章節的代碼比較詳細,例如不少排序算法都是已經有的,咱們只要會用就能夠了。雖然對咱們學習的時候以爲很方便很輕鬆,但我以爲少了一部分思考的過程。到了後面圖的那一部分,代碼再也不是完整的給出來,而是給了一部分思路讓本身寫,這個時候感受很痛苦。因此教訓就是,書上的代碼不能一味的抄過來,而是要嘗試本身還原,這樣效果更好,能學習到的東西也更多
說實話,這學期收穫蠻大的,我可以本身獨立編寫一些小程序,還自學了Android開發的基礎知識(做爲團隊開發的副代碼手)。這學期在Java方面的投入是巨大的,收穫能夠說是滿意的,效率相比上學期仍是有很大提高,但整體仍是不高。不過在大量的投入下效果仍是不錯的,能夠說是真正地是在認真搞學習。
但願結對學習這種方式繼續延續下去而不是結對編程,由於對於新人來講結對學習比直接進入結對編程要好得多,至少我是這麼認爲。結對編程太須要考慮結對對象的時間等各方面的需求,而且在提交代碼上有諸多不便。而結對學習則是兩人在學習方面的困惑共同解決共同提問,比較方便又有效率。
課程前幾周我和劉先潤的結對學習卻是很認真。在項目衝刺中,咱們小組其實衝刺了十天,天天晚上咱們四我的都很認真在一堆討論遊戲代碼,遊戲界面,BUG等。感受仍是很不錯的。
關於結對的建議:我以爲能夠講一次課堂實踐用做結對編程,在課堂上結對的兩人用一臺電腦編寫程序,一樣抽調部分同窗的代碼作示例來作分析和講解。(這個想一想如何作)
課程結束了你們都嘆了口氣說「噩夢終於結束了」,然而我並無這種感受,並非由於噩夢沒有結束,而是感受噩夢並無到來過,雖然每週的博客寫得很難受,每次的實踐感受很難,可是每次完成了它們所帶來的驚喜感是無可替代的,在這門課程中好像一切都很天然, 何時學什麼,何時作什麼,不知道接下來沒有了課程的約束咱們還會不會這麼有規律。
在這一學年的程序設計課程中我從一個對編程一無所知的小白,成長爲如今能夠獨立解決必定編程問題的編程菜鳥,雖然水平並不很高,但成長是巨大的,不只提升了個人編程能力,也提升了個人邏輯思惟能力和獨立思考的能力。
同窗們提出很多好建議,這些建議我在後面的課程中落實:
老師教學方法中獲得大多同窗承認的作法有: 0. 藍墨雲班課的引入,應用
同窗們提出來的問題有:
我本身感到要增強的地方有:
感謝北京航空航天大學 的羅傑老師(博客),福州大學的張棟老師(博客),東北師範大學的楊貴福老師(博客),教學中跟大家學了很多方法,有大家這些負責的老師作榜樣,我教學更有積極性了,看到大家的教學效果,也給我了很多壓力。但願後面能愈來愈好!
在此,對博客園表示衷心的感謝,特別感謝園主杜勇和工程師阿春,有什麼問題基本都是當天解決。
感謝賀利堅老師(博客園博客,CSDN博客,新浪博客)。賀老師向我推薦了藍墨雲班課讓個人教學有如虎添翼的感受!
感謝同窗們的大力配合,與大家一塊兒體會教學相長是一件幸福的事情!
歡迎關注**「rocedu」**微信公衆號(手機上長按二維碼)
作中教,作中學,實踐中共同進步!
版權聲明:自由轉載-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
若是你以爲本文對你有幫助,請點一下左下角的「好文要頂」和「收藏該文」