强h辣文肉各种姿势h/久草免费福利视频/午夜精品福利在线观看/精品中文字幕不卡在线视频 - 成人看黄色大片

當前位置: 首頁>留學申請>其他國家

留學申請

在美國讀研期間的一些計算機課程作業

發布時間:2016-05-03

都說去美國讀研壓力大,很多學生凌晨兩三點還在完成老師布置的作業,非常辛苦,而去美國大學讀計算機的同學非常之多,下面我們一起來看看網友在美國讀研期間的一些計算機課程作業,頗有些值得學習和借鑒的地方。


  1.面向對象課程作業,通過完整項目學習應用面向對象和設計模式

  第一學期有門課叫《Object-OrientedSoftware Development》,主要是講面向對象和設計模式,為了幫助同學們更好的理解面向對象和設計模式,老師精心設計了一個股票交易的系統,用面向對象思想來設計實現,并且應用像Factory、FlyweightDataTransfer ObjectSingleton、Observer等設計模式。當然如果你以為老師只是一個簡單的需求,就指望學生們能設計出一個很好的架構并且還能應用各個設計模式,你就太高估學生們的水平了。考慮到同學們的水平參次不齊,所以老師采取了一些措施來保證最終作業質量:

  將學生分組,3個人一組,水平高的帶著水平低的

  將作業分成4期,以保證每個階段有檢查點,不至于到期末突擊還完不成任務。

  提供詳細設計文檔,細致到接口、類和方法,同學們只要按照說明實現方法即可,如下圖所示:

  既然分成了四個階段來完成,而且每個階段都需要依賴前一個階段的結果,那么怎么保證每個階段的結果正確呢?老師幫助寫了很多單元測試代碼,要確認代碼沒有問題,先保證單元測試都能測試通過。

  Tradable tradable1 =null;

  Quote quote1 = null;

  System.out.println("1)Create and print the content of a valid Order using Tradable reference:");

  try {

  tradable1 = newOrder("USER1", "GE",PriceFactory.makeLimitPrice("$21.59"), 250, "BUY");

  System.out.println("Tradable'stoString: " + tradable1 + "\n");

  } catch (Exception e){

  System.out.println("Anunexpected exception occurred: " + e.getMessage());

  e.printStackTrace();

  }

  System.out.println("2)Create and print the content of a TradableDTO:");

  TradableDTO tDTO =new TradableDTO(tradable1.getProduct(), tradable1.getPrice(),tradable1.getOriginalVolume(), tradable1.getRemainingVolume(),

  tradable1.getCancelledVolume(),tradable1.getUser(), tradable1.getSide(), tradable1.isQuote(),tradable1.getId());

  System.out.println("TradableDTO'stoString: " + tDTO + "\n");... ...

  這樣一個學期下來,一個股票交易系統就算是做好了,最終做出來效果還是挺不錯的。

  另外,為了避免有些同學編程能力不足,或者前期發揮不好,老師還提供了額外的附加作業,這些作業可以提供附加分數,這樣努力一點也能有個不錯的分數。

  2程序語言概念作業,通過Git提交作業,詳細的單元測試

  這學期選了一門課《PROGRAMLANGUAGE CONCEPTS》,講各種程序語言概念的,編程語言以Scala為主,作業也是Scala語言,這門作業有幾點設計的蠻好:

  統一使用git提交代碼,代碼托管在 Bitbucket 上面,開學初老師就讓每個同學注冊了一個Bitbucket賬號,然后給同學們初始化好作業相關的Repository,后面的作業都通過BitBucket來提交

  每道題提供了詳細的注釋說明,什么該用什么不該用都寫的很清楚

  提供完整單元測試代碼供測試。為了確保程序正確,老師針對每個方法寫了很多單元測試代碼,基本上單元測試能通過就表示程序沒什么問題。

  每節課開始前點評講解上一次的作業。實際上能這么做的老師很少,但是對學生來講,及時的反饋和點評上一次的作業非常有幫助,這樣可以知道標準的做法是什么,自己為什么會錯。

  3.iOS移動App開發,與時俱進,涵蓋各個知識點,考試是自主開發一個完整的App

  這學期還選了一門iOS的課程,作為一個已經有多年iOS開發經驗的人來說,這門課對我沒什么難度,從老師的課程內容和作業設置來看,老師對iOSswift語言的發展跟進非常及時,所有的內容都基于最新的iOS 9Swift2.0展開,作業設置也比較合理。從簡單的HelloWorld到稍微復雜一點的計算器,再到復雜的TableView,最后考試是自主開發一個完整的App,綜合運用前面所學的知識。

  每一次作業老師的要求都很明確,包括:

  ·截止日期和提交注意事項

  ·作業的目標

  ·詳細的需求說明

  ·難點提示

  在作業的設計上,比較注意難易度的梯度,前后作業的關系,一學期的作業安排如下:

  Hello World項目,沒什么難度,只要輸出一個HelloWorld即可,重點是搭建iOS開發所需要的環境

  使用Playground寫幾個簡單的Swift算法,熟悉Swift語言

  實現一個簡易的計算器,只要求實現加減法,進一步了解Swift語言,學會查文檔,使用基本控件

  簡易電視遙控器界面,相對復雜的界面,需要和數據進行綁定

  購物清單,學習文本輸入框的使用

  基于第四次作業升級,實現DVR播放器界面,還要能在兩個界面之間切換。主要是熟悉界面動畫,應用對話框

  實現對遙控器數據的配置,同時整合電視遙控器和DVR遙控器。熟悉UITabController的使用,以及多界面之間的數據共享

  實現一個列表詳情的App,應用動態列表和導航

  大作業,等于期末考試,自主命題,但是要求應用到所學的知識。

  如果要對這些作業做個簡單的總結,我覺得主要還是在以下幾個方面:

  1要求明確,目標清晰

  以iOS作業為例,每次作業都會清楚的說明提交的要求,作業的目標,詳細的需求,還有難點的提示。

  2難度適中

  比如面向對象作業,雖然是一個很復雜的系統,但是通過組隊和詳細設計文檔,還是能保證同學們一起完成這些項目。像iOS的期末大作業,也可以讓能力比較強的同學有發揮的機會。

  3及時反饋

  有些作業,老師會提供單元測試代碼,我覺得這是一個非常好的反饋方式,通過單元測試,同學們可以養成良好的喜歡,另外也不至于寫出來的代碼有太大偏差。另外像程序語言概念這門課老師,每節課都會講解點評上一堂課的作業,這樣可以及時的直到問題所在,及時改正。

  4嚴格要求

  在美國,對于抄襲是0容忍的,經常能聽到有同學作弊被開除的新聞,所以基本上大家都不會有這樣的想法。另外對于規定好的截止日期,如果沒有按時交,當次作業的分數就會是0分。

  同時,有些課程的老師還會提供一些附加題,讓犯了錯誤的同學也有彌補的機會。

 

在線咨詢