اسکالا یکی از برترین بسترهای برنامهنویسی تابعی و شیءگرا میباشد که به کاربران امکان خلق برنامههای کارآمد را در یک پروسهی سریع و غنی میدهد. برنامهنویسی تابعی که در دنیا تحت عنوان Functional Programming شناخته میشود بطور فزایندهای در صنعت برنامهسازی در حال گسترش است؛ هر کسی نیز مهارت خلق اپلیکیشنهای استاندارد با آن را ندارد چرا که این مهم حتماً نیازمند آموزشهای زیربنایی میباشد. با توجه کافی و پرداخت عملی به مهارتهای تدریس شده در این دورهی آموزشی تصویری، بطور مفصل تکنیکها و اصول برنامهنویسی تابعی در Scala را یاد خواهید گرفت.
محتوای آموزش:
1- درک اصول برنامهنویسی تابعی
2- نوشتن برنامههای تابعی با استفاده از توابع بازگشتی
3- تطابق الگو و توابع "مرتبه بالاتر"
4- ترکیب برنامهنویسی تابعی با آبجکتها و کلاسها
5- مباحث مربوط به Design Immutable Data Structures
6- مباحث مربوط به خواص توابع
7- درک انواع عمومی برای برنامههای کاربردی و تابعی
تولید کننده: Coursera
زبان: انگلیسی
سطح: متوسط
تعداد ویدئوها: 40 ویدئوی آموزشی بصورت جداگانه
مدرس: Martin Odersky, Professor
فهرست کامل سرفصلها و عناوین آموزش:
Getting Started + Functions & Evaluation
Get up and running with Scala on your computer. Complete an example assignment to familiarize yourself with our unique way of submitting assignments. In this week, we'll learn the difference between functional imperative programming. We step through the basics of Scala; covering expressions, evaluation, conditionals, functions, and recursion
Video · Course Introduction
Video · Tools Setup for Linux
Video · Tools Setup for Mac OS X
Video · Tools Setup for Windows
Practice Programming Assignment · Example Assignment
Reading · Tools Setup (Please read)
Reading · Cheat Sheet
Reading · IntelliJ IDEA Tutorial
Reading · Eclipse Tutorial
Reading · SBT tutorial and Submission of Assignments (Please read)
Reading · Learning Resources
Reading · Scala Tutorial
Reading · Scala Style Guide
Video · Lecture 1.1 - Programming Paradigms
Video · Lecture 1.2 - Elements of Programming
Video · Lecture 1.3 - Evaluation Strategies and Termination
Video · Lecture 1.4 - Conditionals and Value Definitions
Video · Lecture 1.5 - Example: square roots with Newton's method
Video · Lecture 1.6 - Blocks and Lexical Scope
Video · Lecture 1.7 - Tail Recursion
Programming Assignment · Recursion
Higher Order Functions
This week, we'll learn about functions as first-class values, and higher order functions. We'll also learn about Scala's syntax and how it's formally defined. Finally, we'll learn about methods, classes, and data abstraction through the design of a data structure for rational numbers
Video · Lecture 2.1 - Higher-Order Functions
Video · Lecture 2.2 - Currying
Video · Lecture 2.3 - Example: Finding Fixed Points
Video · Lecture 2.4 - Scala Syntax Summary
Video · Lecture 2.5 - Functions and Data
Video · Lecture 2.6 - More Fun With Rationals
Video · Lecture 2.7 - Evaluation and Operators
Programming Assignment · Functional Sets
Data and Abstraction
This week, we'll cover traits, and we'll learn how to organize classes into hierarchies. We'll cover the hierarchy of standard Scala types, and see how to organize classes and traits into packages. Finally, we'll touch upon the different sorts of polymorphism in Scala
Video · Lecture 3.1 - Class Hierarchies
Video · Lecture 3.2 - How Classes Are Organized
Video · Lecture 3.3 - Polymorphism
Programming Assignment · Object-Oriented Sets
Types and Pattern Matching
This week we'll learn about the relationship between functions and objects in Scala; functions *are* objects! We'll zoom in on Scala's type system, covering subtyping and generics, and moving on to more advanced aspects of Scala's type system like variance. Finally, we'll cover Scala's most widely used data structure, Lists, and one of Scala's most powerful tools, pattern matching
Video · Lecture 4.1 - Objects Everywhere
Video · Lecture 4.2 - Functions as Objects
Video · Lecture 4.3 - Subtyping and Generics
Video · Lecture 4.4 - Variance (Optional)
Video · Lecture 4.5 - Decomposition
Video · Lecture 4.6 - Pattern Matching
Video · Lecture 4.7 - Lists
Programming Assignment · Huffman Coding
Lists
This week we dive into Lists, the most commonly-used data structure in Scala.
Video · Lecture 5.1 - More Functions on Lists
Video · Lecture 5.2 - Pairs and Tuples
Video · Lecture 5.3 - Implicit Parameters
Video · Lecture 5.4 - Higher-Order List Functions
Video · Lecture 5.5 - Reduction of Lists
Video · Lecture 5.6 - Reasoning About Concat
Video · Lecture 5.7 - A Larger Equational Proof on Lists
Collections
After a deep-dive into Lists, this week we'll explore other data structures; vectors, maps, ranges, arrays, and more. We'll dive into Scala's powerful and flexible for-comprehensions for querying data
Video · Lecture 6.1 - Other Collections
Video · Lecture 6.2 - Combinatorial Search and For-Expressions
Video · Lecture 6.3 - Combinatorial Search Example
Video · Lecture 6.4 - Maps
Video · Lecture 6.5 - Putting the Pieces Together
Video · Conclusion
Programming Assignment · Anagrams