网友在美国读研期间的一些计算机课程作业
2016-07-25 14:16:51   来源:ms211中国艺术留学网   评论:0

都说去美国读研压力大,很多学生凌晨两三点还在完成老师布置的作业,非常辛苦,而去美国大学读计算机的同学非常之多,下面我们一起来看看网

 
都说去美国读研压力大,很多学生凌晨两三点还在完成老师布置的作业,非常辛苦,而去美国大学读计算机的同学非常之多,下面我们一起来看看网友在美国读研期间的一些计算机课程作业,颇有些值得学习和借鉴的地方。

1.面向对象课程作业,通过完整项目学习应用面向对象和设计模式

第一学期有门课叫《Object-Oriented Software Development》,主要是讲面向对象和设计模式,为了帮助同学们更好的理解面向对象和设计模式,老师精心设计了一个股票交易的系统,用面向对象思想来设计实现,并且应用像Factory、Flyweight、Data Transfer Object、Singleton、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 = new Order("USER1", "GE", PriceFactory.makeLimitPrice("$21.59"), 250, "BUY");

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

} catch (Exception e) {

System.out.println("An unexpected 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's toString: " + tDTO + "\n");... ...

这样一个学期下来,一个股票交易系统就算是做好了,最终做出来效果还是挺不错的。

另外,为了避免有些同学编程能力不足,或者前期发挥不好,老师还提供了额外的附加作业,这些作业可以提供附加分数,这样努力一点也能有个不错的分数。

2程序语言概念作业,通过Git提交作业,详细的单元测试

这学期选了一门课《PROGRAM LANGUAGE CONCEPTS》,讲各种程序语言概念的,编程语言以Scala为主,作业也是Scala语言,这门作业有几点设计的蛮好:

统一使用git提交代码,代码托管在 Bitbucket 上面,开学初老师就让每个同学注册了一个Bitbucket账号,然后给同学们初始化好作业相关的Repository,后面的作业都通过BitBucket来提交

每道题提供了详细的注释说明,什么该用什么不该用都写的很清楚

提供完整单元测试代码供测试。为了确保程序正确,老师针对每个方法写了很多单元测试代码,基本上单元测试能通过就表示程序没什么问题。

每节课开始前点评讲解上一次的作业。实际上能这么做的老师很少,但是对学生来讲,及时的反馈和点评上一次的作业非常有帮助,这样可以知道标准的做法是什么,自己为什么会错。

3.iOS移动App开发,与时俱进,涵盖各个知识点,考试是自主开发一个完整的App

这学期还选了一门iOS的课程,作为一个已经有多年iOS开发经验的人来说,这门课对我没什么难度,从老师的课程内容和作业设置来看,老师对iOS和swift语言的发展跟进非常及时,所有的内容都基于最新的iOS 9和Swift2.0展开,作业设置也比较合理。从简单的HelloWorld到稍微复杂一点的计算器,再到复杂的TableView,最后考试是自主开发一个完整的App,综合运用前面所学的知识。

每一次作业老师的要求都很明确,包括:

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

·作业的目标

·详细的需求说明

·难点提示

在作业的设计上,比较注意难易度的梯度,前后作业的关系,一学期的作业安排如下:

Hello World项目,没什么难度,只要输出一个HelloWorld即可,重点是搭建iOS开发所需要的环境

使用Playground写几个简单的Swift算法,熟悉Swift语言

实现一个简易的计算器,只要求实现加减法,进一步了解Swift语言,学会查文档,使用基本控件

简易电视遥控器界面,相对复杂的界面,需要和数据进行绑定

购物清单,学习文本输入框的使用

基于第四次作业升级,实现DVR播放器界面,还要能在两个界面之间切换。主要是熟悉界面动画,应用对话框

实现对遥控器数据的配置,同时整合电视遥控器和DVR遥控器。熟悉UITabController的使用,以及多界面之间的数据共享

实现一个列表详情的App,应用动态列表和导航

大作业,等于期末考试,自主命题,但是要求应用到所学的知识。

如果要对这些作业做个简单的总结,我觉得主要还是在以下几个方面:

1要求明确,目标清晰

以iOS作业为例,每次作业都会清楚的说明提交的要求,作业的目标,详细的需求,还有难点的提示。

2难度适中

比如面向对象作业,虽然是一个很复杂的系统,但是通过组队和详细设计文档,还是能保证同学们一起完成这些项目。像iOS的期末大作业,也可以让能力比较强的同学有发挥的机会。

3及时反馈

有些作业,老师会提供单元测试代码,我觉得这是一个非常好的反馈方式,通过单元测试,同学们可以养成良好的喜欢,另外也不至于写出来的代码有太大偏差。另外像程序语言概念这门课老师,每节课都会讲解点评上一堂课的作业,这样可以及时的直到问题所在,及时改正。

4严格要求

在美国,对于抄袭是0容忍的,经常能听到有同学作弊被开除的新闻,所以基本上大家都不会有这样的想法。另外对于规定好的截止日期,如果没有按时交,当次作业的分数就会是0分。

同时,有些课程的老师还会提供一些附加题,让犯了错误的同学也有弥补的机会。

作者:ifeve


(文章转载请标明:ms211中国美术高考网)

相关热词搜索:美国 课程 计算机

上一篇:美国留学面试禁忌
下一篇:美国学生的福利比中国学生证的待遇都好

分享到: 收藏
地方美术网:
网站简介 - 网站老师 - 网站声明 - 美术投稿须知 - 视频拍摄制作 - 招聘信息 - 联系方式 - 友情链接 - 网站地图
合作网站:

"ms211中国美术高考网" 链接代码:ms211中国美术高考网
"ms211中国美术高考网" LOGO:
"ms211中国美术高考网" LOGO地址:http://www.ms211.com/images/ms211logo.gif
申请加入画室大全的画室,请提前在您画室网站首页上,做好我们ms211的友情链接,然后将画室简介发送到ms211ms211#163.com(请用@替换#)。
京ICP备16044953号