- 来自www.coursera.org
Effective Programming in Scala
- 自定进度
- 免费获取
- 免费证书
- 6 序列
- 等级 中级
- 字幕在 English
课程详情
教学大纲
WEEK 1 - Getting Started, Basics, Domain Modeling
First, get up and running with Scala on your computer. Then, learn how to write and evaluate basic expressions and definitions. Last, learn how to model a business domain by defining case classes and sealed traits.
WEEK 2 - Standard Library, Loops
Manipulate collections of values by using the generic List data type from the standard library. Then, learn about the other generic data structures provided by the standard library (sets, sequences, and maps), and their respective use cases. All the collection classes have a comprehensive set of high-level operations to transform, filter, and iterate over their elements. Last, you will learn a couple of techniques to implement loops in Scala, and their tradeoffs.
WEEK 3 - Build Tools, Modules
How to write Scala projects larger than a worksheet? Learn how to define an entry point for a Scala project, and discover the tools you can leverage to write, compile, run, and debug your code. Then, use object-oriented programming techniques to break down a complex project into small modular components. Finally, we discuss when to use case classes versus simple classes.
WEEK 4 - Reasoning About Code
The recommendation in Scala is to use immutable data types by default. Indeed, they have desirable properties such as being thread-safe and allowing local reasoning. However, in some cases, mutable variables lead to simpler code, as you will see in the lectures. We then dive into different testing techniques such as unit testing, property-based testing, integration testing, and mocking.
WEEK 5 - Type-Directed Programming
Programs automate repetitive tasks. Sometimes, writing a program is a repetitive task. We look into a unique feature of Scala that lets the compiler write some (repetitive) parts of your programs for you! Based on the expected type of a parameter, the compiler can provide a value for this parameter if it finds an unambiguous candidate value. This technique is often used to automatically generate the serializer and deserializer of a data type, solely based on its definition, for instance.
WEEK 6 - Error Handling, Concurrent Programming
Scala supports a simple low-level mechanism for error handling: exceptions. We discuss the pros and cons of this mechanism, and we show alternative approaches that you can apply when you want to make it explicit in a method signature that it can fail with an error. We then move to a similar topic, input data validation, where we want to construct nice-looking error messages listing all the errors that the user needs to fix. We conclude with a couple of lectures showing how to work with asynchronous computations, and how to leverage the multiple CPUs of a computer by running tasks in parallel. You will see that the same idioms we used for writing data validation rules can also be used to write graphs of parallel computations.
先决条件
讲师
Julien Richard-Foy
Computer Scientist - Scala Center
Julien Richard-Foy makes Scala developers life easier, at Scala Center.
Noel Welsh
Noel Welsh is an experienced technology professional with a deep knowledge of software development, and machine learning. He likes writing books and speaking at conferences about programming.
编辑
洛桑联邦理工学院(EPFL)是位于瑞士洛桑的一所研究型大学,专门从事物理科学和工程学研究。
洛桑联邦理工学院是瑞士两所联邦理工学院之一。它由瑞士联邦政府创办,其使命如下:
培养具有国际最高水平的工程师和科学家
成为国家科技卓越中心
成为科学界与工业界互动的中心。
EPFL 被认为是世界工程和科学领域最负盛名的大学之一。在 2015 年 QS 世界大学排名中,该校总排名第 17 位,工程学专业排名第 10 位;在 2015 年泰晤士高等教育世界大学排名中,该校总排名第 34 位,工程学专业排名第 12 位。
平台
Coursera是一家数字公司,提供由位于加利福尼亚州山景城的计算机教师Andrew Ng和达芙妮科勒斯坦福大学创建的大型开放式在线课程。
Coursera与顶尖大学和组织合作,在线提供一些课程,并提供许多科目的课程,包括:物理,工程,人文,医学,生物学,社会科学,数学,商业,计算机科学,数字营销,数据科学 和其他科目。