面向对象分析与设计(2014年秋季学期)
更新通知
2014/11/18
作业1的成绩已经通过电子邮件的方式发出。如果提交作业但没有收到成绩的同学请通过电子邮件和我联系。
2014/11/17
编程作业1的测试程序发布(需要用到ScalaTest)。
2014/11/10
编程作业2 发布,时间为一周,11/18提交电子版(只包含源代码文件即可)。
2014/10/28
编程作业1 发布,11/4提交电子版。
2014/10/13
课程调整:10/14日的课临时移到了10/22。
2014/10/5
课程展示的源代码,已被发布在 myScalaCourse 源代码
2014/9/22
欢迎来到这学期的课程!
请浏览以下网页以了解这门课程的信息。
课程信息
上课时间地点
第4至7周:周二,1-3节课,地点5-420;周五,1-3节课,地点5-220
第8至18周:周二,1-3节课,地点5-420。
课程形式:
以下安排可能会有变化。
- 讲课:计划18次(如下面的课程安排所列),每次3节课时
- 作业:可能有笔答和编程两种形式
- 考试:1次期末考试
* 编程设计:1个最终编程设计,以小组完成(1-3人一组),最后有一个答辩
评分标准:
以下安排可能会有变化。
课堂出勤和参与 | 10% |
课后作业 | 第一次作业10%;第二次作业选做,可额外加分10% |
期末考试 | 80% |
总共 | 100% |
课本参考:
Odersky, M., L. Spoon and B. Venners (2011). Programming in Scala: [a comprehensive step-by-step guide; updated for scala 2.8]. Walnut Creek, Calif, Artima Press.
Brady Booch, etc. (2007), Object-Oriented Analysis and Design with Applications (3rd ed.), Addison-Wesley Press.
课程交流:
我的电子邮件地址是:qqi@hainu.edu.cn
课程安排
随课程进展,以下安排可能会有变化。
学期周 | 日期 | 内容 | 幻灯片 | 作业 | 注释 |
---|---|---|---|---|---|
4 | 9/23 | 课程介绍;Scala简介;Scala安装和运行 | 课堂演示代码,请见这里 | ||
4 | 9/26 | Scala基础介绍; Scala基本构件浏览 | |||
5 | 9/30 | Scala语言的基本构件(继续);Scala语言基础 | |||
5 | 10/3 | 假期课取消,内容会被添加到其他课时里 | |||
6 | 10/7 | Scala的实例类和模式匹配;一般的类型和一般的方法 | 见lecture04的第25到40页 | 移到10月11日,同一时间和地点 | |
6 | 10/10 | Scala基础介绍继续;类和对象 | |||
7 | 10/14 | 一般类的实例(Tuples,Functions);列表集合 | 临时移到了10/22上 | ||
7 | 10/17 | 实例类和模式匹配;一般的类型和一般的方法 | |||
8 | 10/21 | 一般的类型和一般的方法;列表集合 | |||
9 | 10/28 | List的介绍;For包含;可变状态对象 | 编程作业1 | 编程作业1_测试程序 | |
10 | 11/4 | For包含;可变状态对象 | |||
11 | 11/11 | 作业1讲解;离散事件模拟器 | 编程作业2 | 演示程序 | |
12 | 11/18 | Stream; Iterators; Lazy values | |||
13 | 11/25 | 类和对象 I; 对象模型的演化 | |||
14 | 12/2 | 类和对象 II; 对象模型基础 | |||
15 | 12/9 | 类和对象 III;对象模型基础继续 | |||
16 | 12/16 | 类和对象 IV;对象模型的元素 I | |||
17 | 12/23 | 类和对象 V; 对象模型的元素 II | |||
18 | 12/30 | 对象模型的元素 III;复习 |
Scala问题解答帮助
Scala Libraries
- Bouncy Castle cryptography, website
- Breeze, a numerical processing library
- Scalalab, matlab like, scientific programming environment
- BIDMach, CPU and GPU-accelerated Machine Learning Library
- Lightweight Modular Staging (LMS)
- Scala.js
- Hands-on Scala.js
Scala 测试工具
参考
- Java And Scala: Former Competitors May Be BFFs Before Long
- Cross-Paradigm Programming with Scala, Stanford course
- Transitioning to Scala
- The Three Breakthroughs That Have Finally Unleashed AI on the World
- Three Reasons a Data Engineer Should Learn Scala
- The New Analytics Toolbox with Apache Spark — Going Beyond Hadoop
- Startup Crunches 100 Terabytes of Data in a Record 23 Minutes–>Spark
- Spark and the Typesafe Reactive Platform webminar
- Scala Best Practices
- What Global Warming, Energy Efficiency and Erlang Have in Common
- Scala Named a “Top 10 Technology for Modern Developers”
- The Evolution of Scala by Odersky
- Scala Days 2014 Presentations
- A curated list of Scala frameworks, libraries and software
- Dean Wampler blogs about the connections between Spark, Scala and Akka
- Scala - The Simple Parts, SFScala presentation by Odersky
- Parallel-lazy Performance: Java 8 vs Scala vs GS Collections
- Scala’s Modular roots in ML
- twitter/algebird
- Why Scala is Taking Over the Big Data World
- Interview with Typesafe: 4 answers about the past, present and future of Scala development
- Scala founder: Language due for ‘fundamental rethink’ - See more at: http://akamai.infoworld.com/t/java-programming/scala-founder-language-due-fundamental-rethink-249845?page=0,0#sthash.WGsjKu72.NngND9qv.dpuf
- 11 open source security tools catching fire on GitHub - See more at: http://akamai.infoworld.com/slideshow/163151/11-open-source-security-tools-catching-fire-github-249652#slide1
- Typesafe Puts Big Data to Work in Reactive Applications
- What is Reactive Programming?
- Apache Spark and the Typesafe Reactive Platform
- Scala 2.12 will only support Java 8
- First Steps to Scala, by Bill Venners, Martin Odersky, and Lex Spoon
- Solutions to the Exercises in the “Scala By Example” Manual
- S-99: Ninety-Nine Scala Problems
- Another Tour of Scala
- iRewind and Typesafe founder Martin Odersky among the winners of the Swiss ICT Award
- Genetic Algorithm in Scala