《Java程序設計》教學進程


《Java程序設計》教學進程

目錄

考核方式

參考「《Java程序設計》 課程教學」中的考核方式。

返回目錄

課前准備

課程基礎

預備作業

  • 預備作業01:你期望的師生關系是什么?: 讓同學們了解「Trainer/Trainee」是最好的師生關系,讓同學們對即將到來的翻轉課堂有個心理准備,讓同學們對即將到來學習任務,學習壓力有個心理准備,副作用是讓同學們學會了Markdown。

  • 預備作業02 : 體會做中學(Learning By Doing):讓同學們了解「做中學(Learing By Doing)」的學習方法與刻意訓練在技能獲取中的重要性,進一步理解有學習壓力的必要性,副作用是讓同學們展示自己,老師了解學生,同學們之間加深交流了解。

  • 預備作業03:課程基礎:利用搜商,打下課程的Linux基礎,初步體會什么叫學習上的舉一反三,融會貫通。老師教十個你會六個就及格了?不,應該是老師教十個,你會一百個個乃至更多,至少具備這樣的潛能。

返回目錄

教學進程

學習方法

  1. 進度很重要:注意前緊后松,必須跟上每周的進度,教材閱讀與總結,教材上的練習,問答小組,項目。我和助教們會認真對待每一位同學,請你不要因為困難而放棄,堅持下來,會發現自己的不可思議。

  2. 問答很重要:遇到知識難點請多多提問,這是你的權利更是您對自己負責的義務。問答到課程討論小組,提問請閱讀一下「如何提問」,答疑注意事項.

  3. 實踐很重要:解決書中習題,實踐教材中實例,完成個人和團隊項目,才算真的消化了課程內容。可以通過實驗樓課程配套環境或自己安裝的虛擬機在實踐中進行學習.實踐時參考「積極主動敲代碼,使用Junit學習Java程序設計」。

  4. 學習總結、實驗報告很重要:總結學習與實踐中的問題,得到老師和同學們的反饋,是進步的捷徑。學習完成后在博客園中把學習過程通過博客(隨筆)發表,博客標題「學號 2016-2017-2 《Java程序設計》第x周學習總結」

總結模板(Markdown)如下:


# 學號 2016-2017-2 《Java程序設計》第X周學習總結

## 教材學習內容總結

盡量簡單的總結一下本周學習內容
盡量不要抄書,浪費時間
看懂就過,看不懂,學習有心得的記一下

## 教材學習中的問題和解決過程

教材學習有問題先去[https://shimo.im/doc/1i1gldfsojIFH8Ip/](https://shimo.im/doc/1i1gldfsojIFH8Ip/)看看,如果別人沒有提出相同問題,可以編輯文檔添加,然后把自己提出的問題復制到下面:

- 問題1:XXXXXX
- 問題1解決方案:XXXXXX
- 問題2:XXXXXX
- 問題2解決方案:XXXXXX
- ...

## 代碼調試中的問題和解決過程

教材中代碼調試有問題先去[https://shimo.im/doc/1i1gldfsojIFH8Ip/](https://shimo.im/doc/1i1gldfsojIFH8Ip/)看看,如果別人沒有提出相同問題,可以編輯文檔添加,然后把自己提出的問題復制到下面:

- 問題1:XXXXXX
- 問題1解決方案:XXXXXX
- 問題2:XXXXXX
- 問題2解決方案:XXXXXX
- ...

## [代碼托管](碼雲學習項目鏈接)

(statistics.sh腳本的運行結果截圖)

## 上周考試錯題總結
- 錯題1及原因,理解情況
- 錯題2及原因,理解情況
- ... 

## 結對及互評

### 評分標准

1. 正確使用Markdown語法(加1分):
    - 不使用Markdown不加分
    - 有語法錯誤的不加分(鏈接打不開,表格不對,列表不正確...)
    - 排版混亂的不加分
2. 模板中的要素齊全(加1分)
    - 缺少“教材學習中的問題和解決過程”的不加分
    - 缺少“代碼調試中的問題和解決過程”的不加分
    - [代碼托管](鏈接)不能打開的不加分
    - 缺少“結對及互評”的不能打開的不加分
    - 缺少“上周考試錯題總結”的不能加分
    - 缺少“進度條”的不能加分
    - 缺少“參考資料”的不能加分

3. 教材學習中的問題和解決過程, 一個問題加1分

4. 代碼調試中的問題和解決過程, 一個問題加1分

5. 本周有效代碼超過300分行的(加2分)
    - 一周提交次數少於20次的不加分
    
6. 其他加分:
    - 周五前發博客的加1分
    - 感想,體會不假大空的加1分
    - 排版精美的加一分
    - 進度條中記錄學習時間與改進情況的加1分
    - 有動手寫新代碼的加1分
    - 課后選擇題有驗證的加1分
    - 代碼Commit Message規范的加1分
    - 錯題學習深入的加1分
    - 點評認真,能指出博客和代碼中的問題的加1分
    - 結對學習情況真實可信的加1分
    
7. 扣分:
    - 有抄襲的扣至0分
    - 代碼作弊的扣至0分
    - 遲交作業的扣至0分

### 點評模板:

- 博客中值得學習的或問題:
    - xxx
    - xxx
    - ...
- 代碼中值得學習的或問題:
    - xxx
    - xxx
    - ...
    
- 基於評分標准,我給本博客打分:XX分。得分情況如下:xxx

- [參考示例](http://www.cnblogs.com/haoliberale/p/6580822.html#3650972) 

### 點評過的同學博客和代碼

- 本周結對學習情況 
    - [結對同學學號1](博客鏈接)
    - 結對照片
    - 結對學習內容
        - XXXX
        - XXXX
        - ...
- 上周博客互評情況(只要鏈接,具體點評放相應博客下)

    - [學號1](博客鏈接)
    - [學號2](博客鏈接)
    - [學號3](博客鏈接)
    - [學號4](博客鏈接)
    - ...
    
## 其他(感悟、思考等,可選)

xxx
xxx

## 學習進度條

|            | 代碼行數(新增/累積)| 博客量(新增/累積)|學習時間(新增/累積)|重要成長|
| --------   | :----------------:|:----------------:|:---------------:  |:-----:|
| 目標        | 5000行            |   30篇           | 400小時            |       |
| 第一周      | 200/200           |   2/2            | 20/20             |       |
| 第二周      | 300/500           |   2/4            | 18/38             |       |
| 第三周      | 500/1000          |   3/7            | 22/60             |       |
| 第四周      | 300/1300          |   2/9            | 30/90             |       |


嘗試一下記錄「計划學習時間」和「實際學習時間」,到期末看看能不能改進自己的計划能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:[軟件工程軟件的估計為什么這么難](http://www.cnblogs.com/xinz/archive/2011/04/05/2005978.html),[軟件工程 估計方法](http://www.cnblogs.com/xinz/archive/2011/04/06/2007294.html)

- 計划學習時間:XX小時

- 實際學習時間:XX小時

- 改進情況:

(有空多看看[現代軟件工程 課件 
軟件工程師能力自我評價表](http://www.cnblogs.com/xinz/p/3852177.html))


## 參考資料

-  [Java學習筆記(第8版)](http://book.douban.com/subject/26371167/) 

-  [《Java學習筆記(第8版)》學習指導](http://www.cnblogs.com/rocedu/p/5182332.html)
-  ...
 

上面模板中用Markdown寫的總結的渲染效果如下:

xr

返回目錄

第0周學習指導

學習目標

  1. 了解課程上課方式
  2. 做好心理預期

學習資源

  1. 現代軟件工程講義 0 課程概述

    • 師生關系:trainer/trainee
    • 負擔與壓力:現在辛苦是因為欠帳,現在的努力可以發現自己的不可思議
  2. 現代軟件工程 習而學的軟件工程教育

    • 編程也一樣
    • 學習科學日益主流的觀念:從「情景學習」出發,當一名「認知學徒」,它的要點有:
      • 找到學習共同體:因為大量知識存在於學習共同體的實踐中,不是書本中,所以有效的學習不是關門苦練,而是找到屬於自己的學習小團體。如程序員在類似於github這樣的網站練習編程。
      • 隱性知識顯性化:隱性知識是使人們有能力利用概念、事實以及程序來解決現實問題的知識。
      • 模仿榜樣:榜樣可以是現實生活中的導師,也可以是網上的導師;
      • 培養多樣性:在多種情境中實踐,以此強調學習廣闊的應用范圍。如裁縫出師並不是已經練習了一萬小時,而是能夠縫制出足夠好的,各種各樣的衣服。
  3. 現代軟件工程講義 1 軟件工程概論: 程序和軟件的不同

  4. 為什么一定要自學?:善於自學的人,最終會形成一個重要的能力:融會貫通。

  5. 做中學

學習任務

  • 閱讀以上博客

返回目錄

第一周學習指導(2.20-2.26)

學習目標

  • 了解Java基礎知識
  • 了解JVM、JRE與JDK,並下載、安裝、測試JDK
  • 了解PATH、CLASSPATH、SOURCEPATH的作用並會設置
  • 初步使用IDE(推薦IDEA),會編譯、運行、調試簡單的Java程序

學習資源

學習任務

  • 瀏覽教材,根據自己的理解每章提出一個問題
  • 認真學習教材第一章、第二章
  • 代碼托管到git@OSC, 這樣老師和助教才能看到,參考一下使用開源中國托管代碼
  • 參考上面的學習總結模板,把學習過程通過博客(隨筆)發表,博客標題“學號 2016-2017-2 《Java程序設計》第一周學習總結

返回目錄

第二周(2.27-3.05)

學習目標

  1. 了解Java編程風格
  2. 認識Java的類型與變量
  3. 掌握Java流程控制的方法(分支、循環)

學習資源

學習任務

返回目錄

第三周(3.06-3.12)

學習目標

  • 區分基本類型與類類型
  • 理解對象的生成與引用的關系
  • 掌握String類和數組
  • 理解封裝的概念
  • 掌握構造方法的定義
  • 理解重載的概念
  • 掌握static的應用

學習資源

學習任務

返回目錄

第四周(3.13-3.19)

學習目標

  • 理解封裝、繼承、多態的關系
  • 理解抽象類與接口的區別
  • 掌握S.O.L.I.D原則
  • 了解模式和設計模式
  • 能正確覆蓋方法
  • 了解垃圾回收機制
  • 掌握Object類
  • 掌握enum

學習資源

學習任務

返回目錄

第五周(3.20 - 3.26)

學習目標

  • 理解異常架構
  • 牚握try...catch...finally處理異常的方法
  • 會用throw,throws
  • 理解Collection和Map架構
  • 會用常見的數據結構和算法
  • 了解Lambada和泛型

學習資源

學習任務

返回目錄

第六周(3.27 - 4.02)

學習目標

  • 理解流與IO
  • 理解InputStream/OutPutStream的繼承架構
  • 理解Reader/Writer繼承架構
  • 會使用裝飾類
  • 會使用多線程進行並發程序設計

學習資源

學習任務

返回目錄

第七周(4.03 - 4.09)

學習目標

  • 了解Lambda語法
  • 了解方法引用
  • 了解Fucntional與Stream API
  • 掌握Date與Calendar的應用
  • 會使用JDK8新的時間API

學習資源

學習任務

返回目錄

第八周(4.10 - 4.16)

學習目標

  • 了解NIO
  • 會使用Channel、Buffer與NIO2
  • 會使用日志API、國際化
  • 會使用正則表達式
  • 了解JDK8增強功能

學習資源

學習任務

返回目錄

第九周(4.17 - 4.23)

學習目標

  • 了解JDBC架構
  • 掌握JDBC架構
  • 掌握反射與ClassLoader
  • 了解自定義泛型和自定義枚舉
  • 會使用標准注解

學習資源

學習任務

返回目錄

第十周(4.24 - 4.30)

學習目標

  • 了解計算機網絡基礎
  • 掌握Java Socket編程
  • 理解混合密碼系統
  • 掌握Java 密碼技術相關API的使用

學習資源

學習任務

  • 完成學習資源中相關內容的學習

  • 參考上面的學習總結模板,把學習過程通過博客(隨筆)發表,博客標題“學號 2016-2017-2 《Java程序設計》第十周學習總結

返回目錄

第十一周(5.01 - 5.07)

學習任務

返回目錄

第十二周(5.08 - 5.14)

學習任務

  • 團隊項目
    • 在本周日(5.22) 24:00前發博客介紹項目進展、成員貢獻、與計划相符情況、改進措施等

返回目錄

第十三周(5.15 - 5.21)

學習目標

學習資源

學習任務

  • 參考實驗四 Andoid開發基礎 完成實驗並在本周日 24:00前發實驗報告博客
    • 基於Android Studio開發簡單的Android應用並部署測試;
    • 了解Android組件、布局管理器的使用;
    • 掌握Android中事件處理機制。
    • AndroidStudio安裝
  • 團隊項目

返回目錄

第十四周(5.22 - 5.28)

學習目標

學習資源

學習任務

返回目錄

第十五周(5.29 - 6.04)

學習目標

學習資源

學習任務

課程總結要求

  • 課程總結:這個總結寫的好的會被選出來出成一本博客書,大家認真寫一下,被選中的會送你一本。
  • 文中的鏈接都要配上二維碼,可以使用草料二維碼工具或博客園的功能,點擊自己每篇文章的最下面的微信圖標就有二維碼:

發表一篇博客

  • 學號 2017-2018-2《Java程序設計》課程總結

    • (按順序)每周作業鏈接匯總

    • 自認為寫得最好一篇博客是?為什么?

    • 作業中閱讀量最高的一篇博客是?談談經驗

    • 作業中與師生交互最多的一篇博客是?談談收獲

    • (按順序)實驗報告鏈接匯總

    • 代碼托管鏈接:

      • 給出statistic.sh的運行結果,說明本學期的代碼量目標達到沒有?
      • 加點代碼,改點代碼是理解的最好方式,參考編程的智慧,談談你的心得
      • 積極主動敲代碼做到沒?教材實踐上有什么經驗教訓?
    • 課堂項目實踐

    • 你有什么項目被加分,談談你的經驗

      • 優秀作業(給出鏈接)
      • 總結(給出鏈接)
      • 項目(給出鏈接)
      • 教程(給出鏈接)
      • ...
    • 你有什么項目被扣分,談談你的教訓

      • 不動手實踐
      • 遲交作業
      • 不驗收代碼
      • ...
    • 課程收獲與不足

      • 自己的收獲(投入,效率,效果等)
      • 自己需要改進的地方
      • 結對學習是不是真正貫徹了?寫一下你提供的幫助或接受了什么幫助,並對老師提供參考建議
    • 給開學初的你和學弟學妹們的學習建議

      • 如果重新學習這門課,怎么做才可以學的更好
      • 下學期有什么可行的計划提升學習效果?
    • 問卷調查

      • 你平均每周投入到本課程有效學習時間有多少?
      • 每周的學習效率有提高嗎?你是怎么衡量的?
      • 藍墨雲班課的使用對你的學習有促進嗎?有什么建議和意見嗎?
      • 你覺得這門課老師應該繼續做哪一件事情?
      • 你覺得這門課老師應該停止做哪一件事情?
      • 你覺得這門課老師應該開始做什么新的事情?
    • 其他任意發揮

    • 給出你的總結中涉及到的鏈接的二維碼

返回目錄

第十六周(6.05 - 6.11)

學習目標

學習資源

學習任務

返回目錄

個人項目

四則運算

詞頻統計

  • 收集近二十年CET-4(or CET-6)的試題
  • 統計最常用的1000詞匯
  • 調用詞典API制作電子書

其他

返回目錄

團隊項目

基本要求

  • 單元測試要不少於產品代碼的行數
  • git 提交在函數級別上
  • 對系統進行UML建模
  • 團隊合作要有代碼規范,風格要一致

逆向Android項目

要求:

  • 至少兩人一個團隊(總分25*人數)

移動學習之網站(做的好有開發費用支持)

移動學習之Android App(做的好有開發費用支持)

博客園客戶端

返回目錄

課程學習資源

教材與參考資料

Java API

MOOC & 視頻

其他

返回目錄


歡迎關注“rocedu”微信公眾號(手機上長按二維碼)

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

rocedu



如果你覺得本文對你有幫助,請點一下左下角的“好文要頂”和“收藏該文



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM